R API
MLflow 的 R API 允许你使用 MLflow 追踪、项目 和 模型。
先决条件
要使用 MLflow R API,您必须安装 MLflow Python 包。
pip install mlflow
使用可用的 Conda 环境进行安装示例:
conda create -n mlflow-env python
conda activate mlflow-env
pip install mlflow
上述提供的命令创建了一个名为 mlflow-env 的新 Conda 环境,并指定了默认的 Python 版本。然后激活这个环境,使其成为活动的工作环境。最后,使用 pip 安装 MLflow 包,确保 MLflow 在这个环境中被隔离,允许为与 MLflow 相关的任务进行独立的 Python 和包管理。
可选地,您可以设置 MLFLOW_PYTHON_BIN
和 MLFLOW_BIN
环境变量来指定要使用的 Python 和 MLflow 二进制文件。默认情况下,R 客户端会使用 Sys.which('python')
和 Sys.which('mlflow')
自动查找它们。
export MLFLOW_PYTHON_BIN=/path/to/bin/python
export MLFLOW_BIN=/path/to/bin/mlflow
你可以使用 R API 来启动 用户界面 、 创建实验 和 搜索实验 、 保存模型 、 运行项目 以及 服务模型 ,以及其他许多在 R API 中可用的功能。
mlflow_client
初始化一个 MLflow 客户端
初始化并返回一个与指定URI的跟踪服务器或存储通信的MLflow客户端。
mlflow_client(tracking_uri = NULL)
参数
参数 |
描述 |
---|---|
|
跟踪URI。如果未提供,默认为由 |
mlflow_create_experiment
创建实验
创建一个MLflow实验并返回其ID。
mlflow_create_experiment(
name,
artifact_location = NULL,
client = NULL,
tags = NULL
)
参数
参数 |
描述 |
---|---|
|
要创建的实验名称。 |
|
存储此实验所有工件的位置。如果未提供,远程服务器将选择适当的默认值。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
|
实验标签,在实验创建时设置。 |
mlflow_create_model_version
创建模型版本
创建模型版本
mlflow_create_model_version(
name,
source,
run_id = NULL,
tags = NULL,
run_link = NULL,
description = NULL,
client = NULL
)
参数
参数 |
描述 |
---|---|
|
在此名称下注册模型。 |
|
指示模型工件位置的URI。 |
|
用于关联的 MLflow 运行 ID,如果 |
|
附加元数据。 |
|
MLflow 运行链接 - 这是生成此模型版本的运行的确切链接。 |
|
模型版本的描述。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_create_registered_model
创建注册模型
在模型注册表中创建一个新的注册模型
mlflow_create_registered_model(
name,
tags = NULL,
description = NULL,
client = NULL
)
参数
参数 |
描述 |
---|---|
|
要创建的模型的名称。 |
|
注册模型的附加元数据(可选)。 |
|
注册模型的描述(可选)。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_delete_experiment
删除实验
标记一个实验及其相关的运行、参数、指标等以进行删除。如果实验使用 FileStore,与实验相关的工件也会被删除。
mlflow_delete_experiment(experiment_id, client = NULL)
参数
参数 |
描述 |
---|---|
|
关联实验的ID。此字段是必需的。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_delete_model_version
删除模型版本
删除模型版本
mlflow_delete_model_version(name, version, client = NULL)
参数
参数 |
描述 |
---|---|
|
已注册模型的名称。 |
|
模型版本号。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_delete_registered_model
删除已注册的模型
通过名称删除一个已注册的模型
mlflow_delete_registered_model(name, client = NULL)
参数
参数 |
描述 |
---|---|
|
要删除的模型名称 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_delete_run
删除运行
删除具有指定ID的运行。
mlflow_delete_run(run_id, client = NULL)
参数
参数 |
描述 |
---|---|
|
运行 ID。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_delete_tag
删除标签
删除运行中的标签。这是不可逆的。标签是运行元数据,可以在运行期间和运行完成后更新。
mlflow_delete_tag(key, run_id = NULL, client = NULL)
参数
参数 |
描述 |
---|---|
|
标签的名称。最大长度为255字节。此字段是必需的。 |
|
运行 ID。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_download_artifacts
下载工件
如果适用,从运行中下载一个工件文件或目录到本地目录,并返回其本地路径。
mlflow_download_artifacts(path, run_id = NULL, client = NULL)
参数
参数 |
描述 |
---|---|
|
所需工件的相对源路径。 |
|
运行 ID。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_end_run
结束运行
终止一个运行。如果没有指定 run_id
,尝试结束当前活动的运行。
mlflow_end_run(
status = c("FINISHED", "FAILED", "KILLED"),
end_time = NULL,
run_id = NULL,
client = NULL
)
参数
参数 |
描述 |
---|---|
|
运行状态已更新。默认为 |
|
运行结束时的Unix时间戳,以毫秒为单位。 |
|
运行 ID。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_get_experiment
获取实验
获取一个实验的元数据和该实验的运行列表。如果未指定 experiment_id
和 name
,则尝试获取活动实验。
mlflow_get_experiment(experiment_id = NULL, name = NULL, client = NULL)
参数
参数 |
描述 |
---|---|
|
实验的ID。 |
|
实验名称。只能指定 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_get_latest_versions
获取最新模型版本
获取给定模型的最新模型版本列表。
mlflow_get_latest_versions(name, stages = list(), client = NULL)
参数
参数 |
描述 |
---|---|
|
模型的名称。 |
|
所需阶段的列表。如果输入列表为 NULL,则返回所有阶段的最新版本。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_get_metric_history
获取指标历史
获取指定运行中指定指标的所有值列表。
mlflow_get_metric_history(metric_key, run_id = NULL, client = NULL)
参数
参数 |
描述 |
---|---|
|
指标的名称。 |
|
运行 ID。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_get_model_version
获取模型版本
获取模型版本
mlflow_get_model_version(name, version, client = NULL)
参数
参数 |
描述 |
---|---|
|
已注册模型的名称。 |
|
模型版本号。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_get_registered_model
获取已注册的模型
从模型注册表中检索已注册的模型。
mlflow_get_registered_model(name, client = NULL)
参数
参数 |
描述 |
---|---|
|
要检索的模型的名称。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_get_run
获取运行
获取运行的元数据、参数、标签和指标。对于每个指标键,返回一个单一值:在最大步数时记录的最新指标值。
mlflow_get_run(run_id = NULL, client = NULL)
参数
参数 |
描述 |
---|---|
|
运行 ID。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_get_tracking_uri
获取远程跟踪URI
获取远程跟踪URI。
mlflow_get_tracking_uri()
mlflow_id
获取运行或实验ID
提取运行或实验的ID。
mlflow_id(object)
list(list("mlflow_id"), list("mlflow_run"))(object)
list(list("mlflow_id"), list("mlflow_experiment"))(object)
参数
参数 |
描述 |
---|---|
|
一个 |
mlflow_list_artifacts
列出工件
获取工件列表。
mlflow_list_artifacts(path = NULL, run_id = NULL, client = NULL)
参数
参数 |
描述 |
---|---|
|
要列出的运行相对工件路径。如果未指定,则设置为根工件路径。 |
|
运行 ID。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_load_flavor
加载 MLflow 模型风格
使用特定风格加载一个 MLflow 模型。此方法由 mlflow_load_model 内部调用,但对外暴露以便包作者扩展支持的 MLflow 模型。更多关于 MLflow 模型风格的信息,请参见 https://mlflow.org/docs/latest/models.html#storage-format。
mlflow_load_flavor(flavor, model_path)
参数
参数 |
描述 |
---|---|
|
通过 mlflow_load_model 加载的 MLflow 风格对象,其类从 MLmodel 文件的风格字段中加载。 |
|
封装在正确类中的 MLflow 模型的路径。 |
mlflow_load_model
加载 MLflow 模型
加载一个 MLflow 模型。MLflow 模型可以有多种模型风格。并非所有风格/模型都可以在 R 中加载。此方法默认搜索 R/MLflow 支持的风格。
mlflow_load_model(model_uri, flavor = NULL, client = mlflow_client())
参数
参数 |
描述 |
---|---|
|
MLflow 模型的位置,采用 URI 格式。 |
|
可选的口味规范(字符串)。在有多种口味可用的情况下,可以用来加载特定口味。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
详情
URI 方案必须被 MLflow 支持 - 即必须有一个与 URI 方案相对应的 MLflow 工件仓库。内容应指向包含 MLmodel 的目录。以下是有效模型 URI 的示例:
file:///absolute/path/to/local/model
file:relative/path/to/local/model
s3://my_bucket/path/to/model
runs:/<mlflow_run_id>/run-relative/path/to/model
models:/<model_name>/<model_version>
models:/<model_name>/<stage>
有关支持的URI方案的更多信息,请参阅 https://www.mlflow.org/docs/latest/tracking.html#artifact-stores 上的Artifacts文档。
mlflow_log_artifact
日志工件
将特定文件或目录记录为运行的工件。
mlflow_log_artifact(path, artifact_path = NULL, run_id = NULL, client = NULL)
参数
参数 |
描述 |
---|---|
|
要记录为工件的文件或目录。 |
|
运行工件URI中的目标路径。 |
|
运行 ID。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
详情
当记录到 Amazon S3 时,确保您在存储桶上拥有 s3:PutObject、s3:GetObject、s3:ListBucket 和 s3:GetBucketLocation 权限。
此外,至少必须将 AWS_ACCESS_KEY_ID
和 AWS_SECRET_ACCESS_KEY
环境变量设置为 Amazon IAM 提供的相应密钥和秘密。
mlflow_log_batch
日志批次
记录一批指标、参数和/或标签用于运行。如果任何数据未能持久化,服务器将返回错误(非200状态码)。在错误情况下(由于内部服务器错误或无效请求),可能会写入部分数据。
mlflow_log_batch(
metrics = NULL,
params = NULL,
tags = NULL,
run_id = NULL,
client = NULL
)
参数
参数 |
描述 |
---|---|
|
一个包含以下列的指标日志数据框:“key”、“value”、“step”、“timestamp”。该数据框不能包含任何缺失(‘NA’)条目。 |
|
一个用于记录参数的数据框,包含以下列:“key”,“value”。该数据框不能包含任何缺失(‘NA’)条目。 |
|
一个用于记录的标签数据框,包含以下列:“key”、“value”。该数据框不能包含任何缺失(‘NA’)条目。 |
|
运行 ID。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_log_metric
日志指标
记录一个运行的指标。指标键值对记录了一个单一的浮点测量值。在单次运行执行期间,可以多次记录特定指标。MLflow 后端沿着时间戳和步骤两个轴跟踪历史指标值。
mlflow_log_metric(
key,
value,
timestamp = NULL,
step = NULL,
run_id = NULL,
client = NULL
)
参数
参数 |
描述 |
---|---|
|
指标的名称。 |
|
正在记录的指标的浮点数值。 |
|
记录指标的时间戳。时间戳四舍五入到最接近的整数。如果未指定,则使用自Unix纪元以来的毫秒数。 |
|
记录指标的步骤。步骤会四舍五入到最近的整数。如果未指定,则使用默认值零。 |
|
运行 ID。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_log_model
日志模型
记录此运行的模型。类似于 mlflow_save_model()
,但将模型作为活动运行中的工件存储。
mlflow_log_model(model, artifact_path, ...)
参数
参数 |
描述 |
---|---|
|
将执行预测的模型。 |
|
此 MLflow 兼容模型将被保存的目标路径。 |
|
在持久化模型时传递给 |
mlflow_log_param
日志参数
记录一个运行的参数。例如,用于机器学习训练的参数和超参数,或用于ETL管道中的常量日期和值。参数是一个字符串键值对。对于一个运行,单个参数只允许记录一次。
mlflow_log_param(key, value, run_id = NULL, client = NULL)
参数
参数 |
描述 |
---|---|
|
参数的名称。 |
|
参数的字符串值。 |
|
运行 ID。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_param
读取命令行参数
读取传递给 MLflow 项目的命令行参数 MLflow 允许你通过 mlflow_param API 为你的 R 脚本定义命名、类型化的输入参数。这对于实验非常有用,例如,跟踪使用不同参数的相同脚本的多次调用。
mlflow_param(name, default = NULL, type = NULL, description = NULL)
参数
参数 |
描述 |
---|---|
|
参数的名称。 |
|
参数的默认值。 |
|
此参数的类型。如果未设置 |
|
参数的可选描述。 |
示例
# This parametrized script trains a GBM model on the Iris dataset and can be run as an MLflow
# project. You can run this script (assuming it's saved at /some/directory/params_example.R)
# with custom parameters via:
# mlflow_run(entry_point = "params_example.R", uri = "/some/directory",
# parameters = list(num_trees = 200, learning_rate = 0.1))
install.packages("gbm")
library(mlflow)
library(gbm)
# define and read input parameters
num_trees <- mlflow_param(name = "num_trees", default = 200, type = "integer")
lr <- mlflow_param(name = "learning_rate", default = 0.1, type = "numeric")
# use params to fit a model
ir.adaboost <- gbm(Species ~., data=iris, n.trees=num_trees, shrinkage=lr)
mlflow_predict
使用 MLflow 模型生成预测
使用 mlflow_load_model()
加载的模型进行预测,供包作者扩展支持的 MLflow 模型使用。
mlflow_predict(model, data, ...)
参数
参数 |
描述 |
---|---|
|
加载的 MLflow 模型风格。 |
|
用于执行评分的数据框。 |
|
传递给底层预测方法的可选附加参数。 |
mlflow_register_external_observer
注册一个外部 MLflow 观察者
注册一个外部 MLflow 观察者,该观察者将在任何模型跟踪事件(如“create_run”、“delete_run”或“log_metric”)上接收 register_tracking_event(event_name, data)
回调。每个观察者应有一个 register_tracking_event(event_name, data)
回调,接受一个字符向量 event_name
指定跟踪事件的名称,以及包含事件属性的列表 data
。回调应为非阻塞的,理想情况下应立即完成。任何从回调中抛出的异常都将被忽略。
mlflow_register_external_observer(observer)
参数
参数 |
描述 |
---|---|
|
观察者对象(见示例) |
示例
library(mlflow)
observer <- structure(list())
observer$register_tracking_event <- function(event_name, data) {
print(event_name)
print(data)
}
mlflow_register_external_observer(observer)
mlflow_rename_experiment
重命名实验
重命名一个实验。
mlflow_rename_experiment(new_name, experiment_id = NULL, client = NULL)
参数
参数 |
描述 |
---|---|
|
实验的名称将被更改为这个。新名称必须是唯一的。 |
|
关联实验的ID。此字段是必需的。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_rename_registered_model
重命名已注册的模型
在模型注册表中重命名一个模型。
mlflow_rename_registered_model(name, new_name, client = NULL)
参数
参数 |
描述 |
---|---|
|
模型的当前名称。 |
|
模型的新名称。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_restore_experiment
恢复实验
恢复一个标记为删除的实验。这也会恢复相关的元数据、运行、指标和参数。如果实验使用 FileStore,与实验相关的底层工件也会被恢复。
mlflow_restore_experiment(experiment_id, client = NULL)
参数
参数 |
描述 |
---|---|
|
关联实验的ID。此字段是必需的。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
详情
如果实验从未创建或已被永久删除,则抛出 RESOURCE_DOES_NOT_EXIST
。
mlflow_restore_run
恢复运行
恢复具有指定ID的运行。
mlflow_restore_run(run_id, client = NULL)
参数
参数 |
描述 |
---|---|
|
运行 ID。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_rfunc_serve
提供一个 RFunc MLflow 模型
将 RFunc MLflow 模型作为本地 REST API 服务器提供。此接口提供了与 mlflow models serve
cli 命令类似的功能,但是,它只能用于部署包含 RFunc 风格的模型。部署的服务器支持带有 /ping 和 /invocation 端点的标准 mlflow 模型接口。此外,R 函数模型还支持已弃用的 /predict 端点以生成预测。/predict 端点将在 mlflow 的未来版本中移除。
mlflow_rfunc_serve(
model_uri,
host = "127.0.0.1",
port = 8090,
daemonized = FALSE,
browse = !daemonized,
...
)
参数
参数 |
描述 |
---|---|
|
MLflow 模型的位置,采用 URI 格式。 |
|
用于提供模型的地址,作为字符串。 |
|
用于服务模型的端口,以数字表示。 |
|
使 |
|
启动浏览器并显示着陆页? |
|
传递给 |
详情
URI 方案必须被 MLflow 支持 - 即必须有一个与 URI 方案相对应的 MLflow 工件仓库。内容应指向包含 MLmodel 的目录。以下是有效模型 URI 的示例:
file:///absolute/path/to/local/model
file:relative/path/to/local/model
s3://my_bucket/path/to/model
runs:/<mlflow_run_id>/run-relative/path/to/model
models:/<model_name>/<model_version>
models:/<model_name>/<stage>
有关支持的URI方案的更多信息,请参阅 https://www.mlflow.org/docs/latest/tracking.html#artifact-stores 上的Artifacts文档。
示例
library(mlflow)
# save simple model with constant prediction
mlflow_save_model(function(df) 1, "mlflow_constant")
# serve an existing model over a web interface
mlflow_rfunc_serve("mlflow_constant")
# request prediction from server
httr::POST("http://127.0.0.1:8090/predict/")
mlflow_run
运行一个 MLflow 项目
mlflow run
CLI 命令的包装器。更多信息请参见 https://www.mlflow.org/docs/latest/cli.html#mlflow-run。
mlflow_run(
uri = ".",
entry_point = NULL,
version = NULL,
parameters = NULL,
experiment_id = NULL,
experiment_name = NULL,
backend = NULL,
backend_config = NULL,
env_manager = NULL,
storage_dir = NULL
)
参数
参数 |
描述 |
---|---|
|
包含建模脚本的目录,默认为当前目录。 |
|
项目内的入口点,如果未指定,默认为 |
|
要运行的项目版本,作为 Git 项目的 Git 提交引用。 |
|
参数列表。 |
|
要启动运行的实验ID。 |
|
在哪个实验名称下启动运行。 |
|
用于运行的执行后端。 |
|
传递给后端的 JSON 文件路径。对于 Databricks 后端,它应描述在 Databricks 上启动运行时要使用的集群。 |
|
如果指定,使用指定的环境管理器为项目创建一个环境。可用的选项有‘local’、‘virtualenv’和‘conda’。 |
|
仅当 |
值
与此运行相关联的运行。
示例
# This parametrized script trains a GBM model on the Iris dataset and can be run as an MLflow
# project. You can run this script (assuming it's saved at /some/directory/params_example.R)
# with custom parameters via:
# mlflow_run(entry_point = "params_example.R", uri = "/some/directory",
# parameters = list(num_trees = 200, learning_rate = 0.1))
install.packages("gbm")
library(mlflow)
library(gbm)
# define and read input parameters
num_trees <- mlflow_param(name = "num_trees", default = 200, type = "integer")
lr <- mlflow_param(name = "learning_rate", default = 0.1, type = "numeric")
# use params to fit a model
ir.adaboost <- gbm(Species ~., data=iris, n.trees=num_trees, shrinkage=lr)
mlflow_save_model.crate
保存模型到 MLflow
以MLflow格式保存模型,该格式可用于后续的预测和服务。此方法是通用的,允许包作者保存自定义模型类型。
list(list("mlflow_save_model"), list("crate"))(model, path, model_spec = list(), ...)
mlflow_save_model(model, path, model_spec = list(), ...)
list(list("mlflow_save_model"), list("H2OModel"))(model, path, model_spec = list(), conda_env = NULL, ...)
list(list("mlflow_save_model"), list("keras.engine.training.Model"))(model, path, model_spec = list(), conda_env = NULL, ...)
list(list("mlflow_save_model"), list("xgb.Booster"))(model, path, model_spec = list(), conda_env = NULL, ...)
参数
参数 |
描述 |
---|---|
|
将执行预测的模型。 |
|
此 MLflow 兼容模型将被保存的目标路径。 |
|
MLflow 模型配置 正在将此模型风格添加到其中。 |
|
可选的附加参数。 |
|
Conda 依赖文件的路径。 |
mlflow_search_experiments
搜索实验
搜索满足指定条件的实验。
mlflow_search_experiments(
filter = NULL,
experiment_view_type = c("ACTIVE_ONLY", "DELETED_ONLY", "ALL"),
max_results = 1000,
order_by = list(),
page_token = NULL,
client = NULL
)
参数
参数 |
描述 |
---|---|
|
用于识别特定实验的过滤表达式。语法是SQL的一个子集,仅允许将二元操作通过AND连接起来。例如:“attribute.name = ‘MyExperiment’”,“tags.problem_type = ‘iris_regression’” |
|
实验视图类型。仅返回与此视图类型匹配的实验。 |
|
要检索的实验的最大数量。 |
|
要排序的属性列表。示例:“attribute.name”。 |
|
基于先前查询的翻页令牌,用于转到下一页。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_search_registered_models
列出已注册的模型
获取已注册模型的列表。
mlflow_search_registered_models(
filter = NULL,
max_results = 100,
order_by = list(),
page_token = NULL,
client = NULL
)
参数
参数 |
描述 |
---|---|
|
用于识别特定注册模型的过滤表达式。语法是SQL的一个子集,仅允许将二元操作通过AND连接起来。示例:“name = ‘my_model_name’ and tag.key = ‘value1’” |
|
要检索的已注册模型最大数量。 |
|
要排序的已注册模型属性列表。示例:“name”。 |
|
基于先前查询的翻页令牌,用于转到下一页。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_search_runs
搜索运行
搜索满足表达式的运行。搜索表达式可以使用指标和参数键。
mlflow_search_runs(
filter = NULL,
run_view_type = c("ACTIVE_ONLY", "DELETED_ONLY", "ALL"),
experiment_ids = NULL,
order_by = list(),
client = NULL
)
参数
参数 |
描述 |
---|---|
|
一个对参数、指标和标签的过滤表达式,允许返回运行的一个子集。语法是SQL的一个子集,只允许在参数/指标/标签和常量之间进行二元操作的AND连接。 |
|
运行视图类型。 |
|
要搜索的字符串实验ID列表(或单个字符串实验ID)。如果未指定,则尝试使用活动实验。 |
|
按顺序排列的属性列表。示例:“metrics.acc DESC”。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_server
运行 MLflow 跟踪服务器
mlflow server
的封装。
mlflow_server(
file_store = "mlruns",
default_artifact_root = NULL,
host = "127.0.0.1",
port = 5000,
workers = NULL,
static_prefix = NULL,
serve_artifacts = FALSE
)
参数
参数 |
描述 |
---|---|
|
实验和运行数据的后备文件存储的根目录。 |
|
用于存储新创建实验的工件的本地或S3 URI。 |
|
要监听的网络地址(默认:127.0.0.1)。 |
|
要监听的端口(默认:5000)。 |
|
处理请求的gunicorn工作进程数量(默认:4)。 |
|
一个前缀,将添加到所有静态路径的路径之前。 |
|
一个标志,指定是否启用工件服务(默认:FALSE)。 |
mlflow_set_experiment_tag
设置实验标签
为具有指定ID的实验设置标签。标签是可更新的实验元数据。
mlflow_set_experiment_tag(key, value, experiment_id = NULL, client = NULL)
参数
参数 |
描述 |
---|---|
|
标签的名称。所有存储后端都保证支持大小不超过250字节的键值。此字段是必需的。 |
|
被记录的标签的字符串值。所有存储后端都保证支持大小不超过5000字节的关键值。此字段是必需的。 |
|
实验的ID。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_set_experiment
设置实验
将一个实验设置为活动实验。可以提供实验的名称或ID。如果提供了名称但实验不存在,此函数将使用提供的名称创建一个实验。返回活动实验的ID。
mlflow_set_experiment(
experiment_name = NULL,
experiment_id = NULL,
artifact_location = NULL
)
参数
参数 |
描述 |
---|---|
|
要激活的实验名称。 |
|
要激活的实验ID。 |
|
存储此实验所有工件的位置。如果未提供,远程服务器将选择适当的默认值。 |
mlflow_set_model_version_tag
设置模型版本标签
为模型版本设置标签。当设置了阶段时,标签将为该阶段的最新模型版本设置。同时设置版本和阶段参数将导致错误。
mlflow_set_model_version_tag(
name,
version = NULL,
key = NULL,
value = NULL,
stage = NULL,
client = NULL
)
参数
参数 |
描述 |
---|---|
|
注册的模型名称。 |
|
已注册模型的版本。 |
|
标记键以记录。键是必需的。 |
|
要记录的标签值。值是必需的。 |
|
已注册模型阶段。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_set_tag
设置标签
为一个运行设置标签。标签是运行元数据,可以在运行期间和运行完成后进行更新。
mlflow_set_tag(key, value, run_id = NULL, client = NULL)
参数
参数 |
描述 |
---|---|
|
标签的名称。最大长度为255字节。此字段是必需的。 |
|
被记录的标签的字符串值。最大大小为500字节。此字段是必需的。 |
|
运行 ID。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_set_tracking_uri
设置远程跟踪URI
指定用于跟踪实验的远程 MLflow 服务器的 URI。
mlflow_set_tracking_uri(uri)
参数
参数 |
描述 |
---|---|
|
远程 MLflow 服务器的 URI。 |
mlflow_source
使用 MLflow 参数源脚本
此函数不应在交互式环境中使用。它设计为由终端中的 Rscript
调用,或通过 MLflow CLI 调用。
mlflow_source(uri)
参数
参数 |
描述 |
---|---|
|
R 脚本的路径,可以是带引号或不带引号的字符串。 |
mlflow_start_run
开始运行
开始一个新的运行。如果未提供 client
,此函数会推断上下文信息,如源名称和版本,并将创建的运行注册为活动运行。如果提供了 client
,则不会进行推断,并且可以提供 start_time
等额外参数。
mlflow_start_run(
run_id = NULL,
experiment_id = NULL,
start_time = NULL,
tags = NULL,
client = NULL,
nested = FALSE
)
参数
参数 |
描述 |
---|---|
|
如果指定,获取具有指定UUID的运行,并在该运行下记录指标和参数。运行的结束时间未设置,其状态设置为运行中,但运行的其他属性保持不变。 |
|
仅在 |
|
运行开始时的Unix时间戳(以毫秒为单位)。仅在指定 |
|
运行时的附加元数据,以键值对形式提供。仅在指定 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
|
控制是否在父运行中启动嵌套运行。 |
示例
with(mlflow_start_run(), {
mlflow_log_metric("test", 10)
})
mlflow_transition_model_version_stage
过渡模型版本阶段
将模型版本过渡到不同的阶段。
mlflow_transition_model_version_stage(
name,
version,
stage,
archive_existing_versions = FALSE,
client = NULL
)
参数
参数 |
描述 |
---|---|
|
已注册模型的名称。 |
|
模型版本号。 |
|
过渡 |
|
(可选) |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_ui
运行 MLflow 用户界面
启动 MLflow 用户界面。
mlflow_ui(client, ...)
参数
参数 |
描述 |
---|---|
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
|
当 |
示例
library(mlflow)
# launch mlflow ui locally
mlflow_ui()
# launch mlflow ui for existing mlflow server
mlflow_set_tracking_uri("http://tracking-server:5000")
mlflow_ui()
mlflow_update_model_version
更新模型版本
更新模型版本
mlflow_update_model_version(name, version, description, client = NULL)
参数
参数 |
描述 |
---|---|
|
已注册模型的名称。 |
|
模型版本号。 |
|
此模型版本的描述。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |
mlflow_update_registered_model
更新已注册的模型
更新模型注册表中的模型。
mlflow_update_registered_model(name, description, client = NULL)
参数
参数 |
描述 |
---|---|
|
已注册模型的名称。 |
|
此注册模型的更新描述。 |
|
(可选)从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。 |