R API

MLflow 的 R API 允许你使用 MLflow 的 TrackingProjectsModels

先决条件

要使用 MLflow R API,你必须安装 the MLflow Python package

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_BINMLFLOW_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 来启动 user interfacecreate experimentsearch experimentssave modelsrun projects 以及 serve models 等 R API 中可用的许多其他功能。

build_context_tags_from_databricks_job_info

从 Databricks 作业执行上下文获取信息

在 Databricks 上以非交互式模式运行时,解析来自作业执行上下文的数据。此函数提取 MLflow 需要的相关数据,以便能够从该上下文正确使用 MLflow APIs。

build_context_tags_from_databricks_job_info(job_info)

参数

参数

描述

job_info

正在运行的 Databricks 作业的相关元数据

在当前 Databricks Job 环境中创建 MLflow 运行时,由运行上下文设置的一组标签

build_context_tags_from_databricks_notebook_info

从 Databricks Notebook 环境获取信息

从 Databricks 笔记本执行环境检索 notebook id、path、url、name、version 和 type,并将它们设置为一个列表,以用于设置在 Databricks 中以 R 执行 MLflow 运行时的已配置环境。

build_context_tags_from_databricks_notebook_info(notebook_info)

参数

参数

描述

notebook_info

来自 Databricks Notebook 环境的配置数据

在当前 Databricks Notebook 环境中创建 MLflow 运行时,由运行上下文设置的标签列表

mlflow_client

初始化一个 MLflow 客户端

初始化并返回一个与指定 URI 的跟踪服务器或存储进行通信的 MLflow 客户端。

mlflow_client(tracking_uri = NULL)

参数

参数

描述

tracking_uri

跟踪 URI。若未提供,则默认为由 mlflow_set_tracking_uri() 设置的服务。

mlflow_create_experiment

创建实验

创建一个 MLflow 实验并返回其 id。

mlflow_create_experiment(
  name,
  artifact_location = NULL,
  client = NULL,
  tags = NULL
)

参数

参数

描述

name

要创建的实验的名称。

artifact_location

存放该实验所有工件的位置。如果未提供,远程服务器将选择一个合适的默认值。

client

(可选) 一个从 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
)

参数

参数

描述

name

在此名称下注册模型。

source

指示模型工件位置的 URI。

run_id

用于关联的 MLflow 运行 ID,如果 source 是由 MLflow Tracking 中的实验运行生成的。

标签

附加元数据。

run_link

MLflow 运行链接 - 这是生成此模型版本的运行的确切链接。

描述

模型版本的描述。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_create_registered_model

创建注册模型

在模型注册表中创建一个新的已注册模型

mlflow_create_registered_model(
  name,
  tags = NULL,
  description = NULL,
  client = NULL
)

参数

参数

描述

name

要创建的模型的名称。

标签

注册模型的附加元数据(可选)。

描述

已注册模型的描述(可选)。

client

(可选) 一个从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。

mlflow_delete_experiment

删除实验

将一个实验及其关联的 runs、params、metrics 等标记为待删除。如果该实验使用 FileStore,与该实验关联的 artifacts 也会被删除。

mlflow_delete_experiment(experiment_id, client = NULL)

参数

参数

说明

experiment_id

关联实验的 ID。此字段为必填项。

client

(可选) 一个从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。

mlflow_delete_model_version

删除模型版本

删除模型版本

mlflow_delete_model_version(name, version, client = NULL)

参数

参数

说明

name

已注册模型的名称。

版本

模型版本号。

client

(可选) 一个从 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前跟踪 URI 关联的跟踪服务器。

mlflow_delete_registered_model

删除已注册的模型

删除指定名称的已注册模型

mlflow_delete_registered_model(name, client = NULL)

参数

参数

描述

name

要删除的模型名称

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_delete_run

删除运行

删除具有指定 ID 的运行。

mlflow_delete_run(run_id, client = NULL)

参数

参数

描述

run_id

运行 ID。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_delete_tag

删除标签

删除运行上的标签。此操作不可撤销。标签是运行的元数据,可在运行期间及运行完成后更新。

mlflow_delete_tag(key, run_id = NULL, client = NULL)

参数

参数

描述

key

标签名称。最大大小为255字节。此字段为必填项。

run_id

运行 ID。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_download_artifacts

下载工件

将运行的 artifact 文件或目录下载到本地目录(如适用),并返回其本地路径。

mlflow_download_artifacts(path, run_id = NULL, client = NULL)

参数

参数

描述

路径

到所需 artifact 的相对源路径。

run_id

运行 ID。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_end_run

结束运行

终止一次运行。如果未指定 run_id,则尝试结束当前活动的运行。

mlflow_end_run(
  status = c("FINISHED", "FAILED", "KILLED"),
  end_time = NULL,
  run_id = NULL,
  client = NULL
)

参数

参数

说明

status

运行的更新状态。默认值为 FINISHED。也可以设置为 “FAILED” 或 “KILLED”。

end_time

运行结束时的 Unix 时间戳(以毫秒为单位)。

run_id

运行 ID。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_get_experiment

获取实验

获取某个实验的元数据以及该实验的运行列表。 尝试在既未指定 experiment_id 又未指定 name 的情况下获取活动实验。

mlflow_get_experiment(experiment_id = NULL, name = NULL, client = NULL)

参数

参数

描述

experiment_id

实验的 ID。

name

实验名称。只能指定 nameexperiment_id 中的一个。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_get_latest_versions

获取最新模型版本

检索指定模型的最新模型版本列表。

mlflow_get_latest_versions(name, stages = list(), client = NULL)

参数

参数

描述

name

模型的名称。

stages

所需阶段的列表。如果输入列表为 NULL,则返回 ALL_STAGES 的最新版本。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_get_metric_history

获取指标历史

获取给定运行中指定指标的所有值的列表。

mlflow_get_metric_history(metric_key, run_id = NULL, client = NULL)

参数

参数

描述

metric_key

指标的名称。

run_id

运行 ID。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_get_model_version

获取模型版本

获取模型版本

mlflow_get_model_version(name, version, client = NULL)

参数

参数

描述

name

已注册模型的名称。

版本

模型版本号。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_get_registered_model

获取已注册的模型

从模型注册表检索已注册的模型。

mlflow_get_registered_model(name, client = NULL)

参数

参数

描述

name

要检索的模型的名称。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_get_run

获取运行

获取某次运行的元数据、参数、标签和指标。对于每个指标键返回单个值:在最大 step 上最近记录的指标值。

mlflow_get_run(run_id = NULL, client = NULL)

参数

参数

描述

run_id

运行 ID。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_get_tracking_uri

获取远程跟踪 URI

获取远程跟踪 URI。

mlflow_get_tracking_uri()

mlflow_id

获取 Run 或 Experiment ID

提取运行或实验的 ID。

mlflow_id(object)
list(list("mlflow_id"), list("mlflow_run"))(object)
list(list("mlflow_id"), list("mlflow_experiment"))(object)

参数

参数

描述

object

一个 mlflow_runmlflow_experiment 对象。

mlflow_list_artifacts

列出工件

获取工件列表。

mlflow_list_artifacts(path = NULL, run_id = NULL, client = NULL)

参数

参数

描述

路径

要列出的运行的相对工件路径。如果未指定,则将其设置为根工件路径。

run_id

运行 ID。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_load_flavor

加载 MLflow 模型 Flavor

使用特定的 flavor 加载 MLflow 模型。此方法由 mlflow_load_model 在内部调用,但对包作者开放以扩展受支持的 MLflow 模型。有关 MLflow 模型 flavors 的更多信息,请参见 https://mlflow.org/docs/latest/models.html#storage-format

mlflow_load_flavor(flavor, model_path)

参数

参数

描述

flavor

一个由 mlflo w_load_model 加载的 MLflow flavor 对象,其类从 MLmodel 文件中的 flavor 字段加载。

model_path

指向以正确类封装的 MLflow 模型的路径。

mlflow_load_model

加载 MLflow 模型

加载一个 MLflow 模型。MLflow 模型可以有多个模型 flavor。并非所有 flavor / 模型 都可以在 R 中加载。此方法默认搜索 R/MLflow 支持的 flavor。

mlflow_load_model(model_uri, flavor = NULL, client = mlflow_client())

参数

参数

描述

model_uri

MLflow 模型的位置(URI 格式)。

flavor

可选的 flavor 指定 (string)。当有多个可用的 flavor 时,可用于加载特定的 flavor。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

详细信息

URI 方案必须被 MLflow 支持——即必须存在与该 URI 方案相对应的 MLflow artifact 存储库。内容应指向包含 MLmodel 的目录。下面是有效模型 URI 的示例:

  • file:///absolute/path/to/local/model

  • file:relative/path/to/local/model

  • s3://my_bucket/path/to/model

  • runs://run-relative/path/to/model

  • models://

  • models://

有关受支持的 URI 方案的更多信息,请参阅 Artifacts 文档: https://www.mlflow.org/docs/latest/tracking.html#artifact-stores

mlflow_log_artifact

记录工件

将特定文件或目录作为运行的工件记录。

mlflow_log_artifact(path, artifact_path = NULL, run_id = NULL, client = NULL)

参数

参数

描述

路径

要记录为工件的文件或目录。

artifact_path

run 的 artifact URI 中的目标路径。

run_id

运行 ID。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

详细信息

在将日志记录到 Amazon S3 时,请确保您在存储桶上具有 s3:PutObject、s3:GetObject、s3:ListBucket 和 s3:GetBucketLocation 权限。

此外,至少必须将 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 环境变量设置为 Amazon IAM 提供的相应密钥和密钥值。

mlflow_log_batch

日志批次

记录一批 metrics、params 和/或 tags 到一次运行。服务器会在任何数据未被持久化时返回错误(非200 状态码)。在发生错误(由于内部服务器错误或无效请求)时,可能会写入部分数据。

mlflow_log_batch(
  metrics = NULL,
  params = NULL,
  tags = NULL,
  run_id = NULL,
  client = NULL
)

参数

参数

描述

指标

要记录的指标数据框, 包含以下列: “key”、“value”、“step”、“timestamp”。 该数据框不能包含任何缺失(‘NA’)条目。

params

要记录的 params 的 dataframe,包含以下列: “key”、“value”。该 dataframe 不能包含任何缺失(‘NA’)条目。

标签

一个用于记录标签的数据框,包含以下列:“key”、“value”。该数据框不能包含任何缺失('NA')项。

run_id

运行 ID。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_log_metric

记录指标

为一次运行记录一个度量。度量是记录单个浮点值的键值对。在一次运行的单次执行期间,特定的度量可以被多次记录。MLflow Backend 沿两个轴跟踪历史度量值:timestamp 和 step。

mlflow_log_metric(
  key,
  value,
  timestamp = NULL,
  step = NULL,
  run_id = NULL,
  client = NULL
)

参数

参数

描述

key

指标的名称。

被记录的指标的浮点值。

timestamp

记录该指标的时间戳。时间戳会四舍五入到最接近的整数。如果未指定,则使用自 Unix 纪元以来的毫秒数。

step

用于记录指标的 Step。 Step 会被四舍五入到最接近的整数。如果未指定,则使用默认值 0。

run_id

运行 ID。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_log_model

记录模型

为此运行记录一个模型。类似于 mlflow_save_model(),但将模型作为工件存储在活动运行中。

mlflow_log_model(model, artifact_path, ...)

参数

参数

描述

model

将执行预测的模型。

artifact_path

此与 MLflow 兼容的模型将被保存到的目标路径。

...

可选的额外参数,传递给 mlflow_save_model() 在持久化模型时。例如,conda_env = /path/to/conda.yaml 可用于为支持 conda 环境的 flavors(例如 keras)指定 conda 依赖文件。

mlflow_log_param

记录参数

为一次运行记录一个参数。示例包括用于 ML 训练的 params 和 hyperparams,或用于 ETL pipeline 的常量日期和值。param 是一个 STRING 键值对。对于一次运行,同一参数只允许记录一次。

mlflow_log_param(key, value, run_id = NULL, client = NULL)

参数

参数

描述

key

参数的名称。

value

参数的字符串值。

run_id

运行 ID。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_param

读取命令行参数

读取传递给 MLflow 项目的命令行参数。MLflow 允许你通过 mlflow_param API 为你的 R 脚本定义命名的、有类型的输入参数。这对于实验非常有用,例如跟踪使用不同参数对同一脚本的多次调用。

mlflow_param(name, default = NULL, type = NULL, description = NULL)

参数

参数

描述

name

参数的名称。

default

The default value of the parameter.

type

此参数的类型。如果未设置default,则为必需。如果指定,必须是“numeric”、“integer”或“string”之一。

描述

Optional description for the parameter.

示例

# 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, ...)

参数

参数

描述

model

已加载的 MLflow 模型类型。

data

用于执行评分的数据框。

...

可选的附加参数传递给底层 predict 方法。

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)

参数

参数

描述

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)

参数

参数

描述

new_name

实验名称将更改为此。新名称必须唯一。

experiment_id

关联实验的 ID。此字段为必填项。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_rename_registered_model

重命名已注册的模型

在模型注册表中重命名模型。

mlflow_rename_registered_model(name, new_name, client = NULL)

参数

参数

描述

name

模型的当前名称。

new_name

模型的新名称。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_restore_experiment

恢复实验

恢复已标记为删除的实验。 这也会恢复相关的元数据、runs、metrics 和 params。如果实验使用 FileStore,与实验关联的底层 artifacts 也会被恢复。

mlflow_restore_experiment(experiment_id, client = NULL)

参数

参数

描述

experiment_id

关联实验的 ID。此字段为必填项。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

详细信息

如果该实验从未创建或已被永久删除,则抛出 RESOURCE_DOES_NOT_EXIST

mlflow_restore_run

恢复一个 Run

恢复具有指定 ID 的运行。

mlflow_restore_run(run_id, client = NULL)

参数

参数

描述

run_id

运行 ID。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_rfunc_serve

为 RFunc MLflow 模型提供服务

将 RFunc mlflow 模型作为本地 REST API 服务器来提供服务。该接口提供与 mlflow models serve cli 命令类似的功能,但它只能用于部署包含 RFunc flavor 的模型。部署的服务器支持标准 mlflow 模型接口,带有 /ping 和 /invocation 端点。此外,R 函数模型还支持已弃用的 /predict 端点以生成预测。/predict 端点将在未来的 mlflow 版本中移除。

mlflow_rfunc_serve(
  model_uri,
  host = "127.0.0.1",
  port = 8090,
  daemonized = FALSE,
  browse = !daemonized,
  ...
)

参数

参数

描述

model_uri

MLflow 模型的位置(URI 格式)。

host

作为字符串,用于为模型提供服务的地址。

port

用于为模型提供服务的端口,数值类型。

daemonized

使 httpuv 服务器以守护进程方式运行,这样 R 交互会话在处理请求时不会被阻塞。要终止守护进程化的服务器,请使用本次调用返回的句柄调用 httpuv::stopDaemonizedServer()

浏览

是否在浏览器中打开服务着陆页?

...

传递给 mlflow_predict() 的可选参数。

详细信息

URI 方案必须被 MLflow 支持——即必须存在与该 URI 方案相对应的 MLflow artifact 存储库。内容应指向包含 MLmodel 的目录。下面是有效模型 URI 的示例:

  • file:///absolute/path/to/local/model

  • file:relative/path/to/local/model

  • s3://my_bucket/path/to/model

  • runs://run-relative/path/to/model

  • models://

  • models://

有关受支持的 URI 方案的更多信息,请参阅 Artifacts 文档: https://www.mlflow.org/docs/latest/tracking.html#artifact-stores

示例

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
)

参数

参数

描述

uri

包含建模脚本的目录,默认为当前目录。

entry_point

项目内的入口点,若未指定则默认为 main

版本

要运行的项目版本,作为 Git 项目的 Git 提交引用。

parameters

参数列表。

experiment_id

要在其下启动运行的实验的 ID。

experiment_name

要在其下启动运行的实验名称。

backend

用于运行的执行后端。

backend_config

将传递给后端的 JSON 文件的路径。对于 Databricks 后端,它应描述在在 Databricks 上启动运行时要使用的集群。

env_manager

如果指定,则使用所指定的环境管理器为项目创建环境。可用选项是 ‘local’、‘virtualenv’ 和 ‘conda’。

storage_dir

仅在 backend 为 local 时有效。MLflow 会将工件从传递给类型为 path 的参数的分布式 URI 下载到 storage_dir 的子目录中。

与此运行关联的运行。

示例

# 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, ...)

参数

参数

描述

model

将用于执行预测的模型。

路径

将保存此与 MLflow 兼容的模型的目标路径。

model_spec

该模型风格将被添加到的 MLflow 模型配置。

...

可选的额外参数。

conda_env

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
)

参数

参数

描述

filter

用于识别特定实验的过滤表达式。语法是 SQL 的一个子集,仅允许将二元操作用 AND 连接在一起。示例:“attribute.name = ‘MyExperiment’”, “tags.problem_type = ‘iris_regression’”

experiment_view_type

实验视图类型。仅 返回与此视图类型匹配的实验。

max_results

要检索的最大实验数。

order_by

要排序的属性列表。示例: “attribute.name”.

page_token

用于根据先前的查询转到下一页的分页令牌。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_search_registered_models

列出已注册的模型

检索已注册的模型列表。

mlflow_search_registered_models(
  filter = NULL,
  max_results = 100,
  order_by = list(),
  page_token = NULL,
  client = NULL
)

参数

参数

描述

filter

用于识别特定已注册模型的筛选表达式。该语法是 SQL 的子集,只允许将二元运算通过 AND 连接。示例:“name = ‘my_model_name’ and tag.key = ‘value1’”

max_results

要检索的已注册模型的最大数量。

order_by

要用于排序的已注册模型属性列表。示例:“name”。

page_token

分页令牌,用于根据先前的查询转到下一页。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_search_runs

搜索运行

搜索满足表达式的 runs。搜索表达式可以使用 Metric 和 Param 键。

mlflow_search_runs(
  filter = NULL,
  run_view_type = c("ACTIVE_ONLY", "DELETED_ONLY", "ALL"),
  experiment_ids = NULL,
  order_by = list(),
  client = NULL
)

参数

参数

描述

filter

一个针对参数、指标和标签的过滤表达式,允许返回运行的子集。语法是 SQL 的一个子集,只允许将二元操作使用 AND 连接,这些二元操作发生在参数/指标/标签与常量之间。

run_view_type

运行视图类型。

experiment_ids

要搜索的字符串实验 ID 列表(或单个字符串实验 ID)。如果未指定,则尝试使用活动实验。

order_by

要排序的属性列表。 示例:“metrics.acc DESC”。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking 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
)

参数

参数

描述

file_store

用于实验和运行数据的后端文件存储的根目录。

default_artifact_root

用于新创建实验中存放工件的本地或 S3 URI。

host

要监听的网络地址(默认:127.0.0.1)。

port

要监听的端口(默认:5000)。

workers

用于处理请求的 gunicorn 工作进程数量(默认:4)。

static_prefix

一个前缀,将被预先添加到所有静态路径的前面。

serve_artifacts

一个标志,用于指定是否启用 artifact 服务(默认:FALSE)。

mlflow_set_experiment_tag

设置实验标签

为具有指定 ID 的实验设置标签。标签是可以更新的实验元数据。

mlflow_set_experiment_tag(key, value, experiment_id = NULL, client = NULL)

参数

参数

描述

key

标签的名称。所有存储后端保证支持最多 250 字节的键值。该字段为必填项。

value

所记录的标签的字符串值。所有存储后端均保证支持最大为5000字节的键值。该字段为必填项。

experiment_id

实验的 ID。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_set_experiment

设置实验

将某个实验设置为活动实验。可以提供实验的名称或 ID。如果提供了名称但该实验不存在,此函数会创建一个具有所提供名称的实验。返回活动实验的 ID。

mlflow_set_experiment(
  experiment_name = NULL,
  experiment_id = NULL,
  artifact_location = NULL
)

参数

参数

描述

experiment_name

要激活的实验名称。

experiment_id

要激活的实验 ID。

artifact_location

存放该实验所有工件的位置。如果未提供,远程服务器将选择一个合适的默认值。

mlflow_set_model_version_tag

设置模型版本标签

为模型版本设置一个 tag。当设置了 stage 时,tag 将为该 stage 的最新模型版本设置。将 version 和 stage 参数同时设置会导致错误。

mlflow_set_model_version_tag(
  name,
  version = NULL,
  key = NULL,
  value = NULL,
  stage = NULL,
  client = NULL
)

参数

参数

描述

name

已注册模型的名称。

版本

已注册的模型版本。

key

要记录的标签 key。key 是必需的。

value

要记录的标签值。value 是必需的。

stage

已注册模型阶段。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_set_tag

设置标签

在运行上设置一个标签。标签是运行的元数据,可在运行期间和运行完成后更新。

mlflow_set_tag(key, value, run_id = NULL, client = NULL)

参数

参数

描述

key

标签名称。最大大小为255字节。此字段为必填项。

value

正在记录的标签的字符串值。最大大小为500字节。该字段为必填项。

run_id

运行 ID。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_set_tracking_uri

设置远程跟踪 URI

指定用于跟踪实验的远程 MLflow 服务器的 URI。

mlflow_set_tracking_uri(uri)

参数

参数

描述

uri

远程 MLflow 服务器的 URI。

mlflow_source

使用 MLflow Params 引入脚本

这个函数不应以交互方式使用。它旨在通过 Rscript 从终端或通过 MLflow CLI 调用。

mlflow_source(uri)

参数

参数

描述

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
)

参数

参数

描述

run_id

如果指定,获取具有指定 UUID 的运行,并在该运行下记录指标和参数。该运行的结束时间未设置,状态被设为运行中,但该运行的其他属性保持不变。

experiment_id

仅在未指定 run_id 时使用。用于指定要在其下创建当前运行的实验 ID。如果未指定,该运行会在一个随机生成名称的新实验下创建。

start_time

运行开始时的 Unix 时间戳,单位为毫秒。仅在指定 client 时使用。

标签

以键值对形式的运行的附加元数据。仅在指定 client 时使用。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

嵌套

控制要启动的运行是否嵌套在父运行中。TRUE 会创建一个嵌套运行。

示例

with(mlflow_start_run(), {
mlflow_log_metric("test", 10)
})

mlflow_transition_model_version_stage

转换 ModelVersion 阶段

将模型版本转换到不同的阶段。

mlflow_transition_model_version_stage(
  name,
  version,
  stage,
  archive_existing_versions = FALSE,
  client = NULL
)

参数

参数

描述

name

已注册模型的名称。

版本

模型版本号。

stage

model_version 转换到此阶段。

archive_existing_versions

(可选)

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_ui

运行 MLflow 用户界面

启动 MLflow 用户界面。

mlflow_ui(client, ...)

参数

参数

描述

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

...

传递给 mlflow_server() 的可选参数,当 x 是指向文件存储的路径时。

示例

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)

参数

参数

描述

name

已注册模型的名称。

版本

模型版本号。

描述

此模型版本的描述。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。

mlflow_update_registered_model

更新已注册的模型

更新模型注册表中的模型。

mlflow_update_registered_model(name, description, client = NULL)

参数

参数

描述

name

注册模型的名称。

描述

此已注册模型的更新描述。

client

(可选) 一个由 mlflow_client 返回的 MLflow 客户端对象。如果指定,MLflow 将使用与传入客户端关联的跟踪服务器。如果未指定(常见情况),MLflow 将使用与当前 tracking URI 关联的跟踪服务器。