命令行界面
MLflow 的命令行界面 (CLI) 提供了对 MLflow 各种功能的简单接口。您可以使用 CLI 运行项目、启动跟踪 UI、创建和列出实验、下载运行工件、提供 MLflow Python Function 和 scikit-learn 模型、提供 MLflow Python Function 和 scikit-learn 模型,并在 Microsoft Azure Machine Learning 和 Amazon SageMaker 上部署模型。
每个单独的命令都有一个可通过 mlflow command_name --help 访问的详细帮助界面。
注意
建议默认设置 MLFLOW_TRACKING_URI 环境变量,因为 CLI 不会自动连接到跟踪服务器。没有此设置时,CLI 将默认使用执行命令时的本地文件系统,而不是连接到本地主机或远程 HTTP 服务器。将 MLFLOW_TRACKING_URI 设置为所需跟踪服务器的 URL 对于下面的大多数命令是必需的。
mlflow
mlflow [OPTIONS] COMMAND [ARGS]...
选项
artifacts
上传、列出和下载来自 MLflow 工件存储库的工件。
要管理与跟踪服务器关联的运行的工件,请将 MLFLOW_TRACKING_URI 环境变量设置为所需服务器的 URL。
mlflow artifacts [OPTIONS] COMMAND [ARGS]...
下载
将一个工件文件或目录下载到本地目录。输出为本地文件系统上该文件或目录的名称。
必须提供 --artifact-uri 或 --run-id。
mlflow artifacts download [OPTIONS]
选项
db
用于管理 MLflow 跟踪数据库的命令。
mlflow db [OPTIONS] COMMAND [ARGS]...
升级
将 MLflow 跟踪数据库的模式升级到最新受支持的版本。
重要:模式迁移可能会很慢,且不保证为事务性的——在运行迁移之前务必先备份数据库。migrations README 位于 https://github.com/mlflow/mlflow/blob/master/mlflow/store/db_migrations/README.md,其中描述了大型迁移,并包含有关如何估算其性能以及如何从故障中恢复的信息。
mlflow db upgrade [OPTIONS] URL
参数
deployments
将 MLflow 模型部署到自定义目标。
运行 mlflow deployments help –target-name
在 https://mlflow.org/docs/latest/plugins.html#community-plugins 查看所有受支持的部署目标和安装说明
您还可以为部署到自定义目标编写自己的插件。有关编写和分发插件的说明,请参见 https://mlflow.org/docs/latest/plugins.html#writing-your-own-mlflow-plugins.
mlflow deployments [OPTIONS] COMMAND [ARGS]...
创建
将位于 model_uri 的模型部署到指定目标。
还可以通过 -C key=value 将其他插件特定参数传递给此命令
mlflow deployments create [OPTIONS]
选项
- -t, --target <target>
必需 部署目标 URI。运行 mlflow deployments help –target-name
以获取有关所支持的 URI 格式和给定目标的配置选项的更多详细信息。 当前已安装用于部署到:databricks、http、https、openai、sagemaker 请在 https://mlflow.org/docs/latest/plugins.html#community-plugins 查看所有受支持的部署目标和安装说明
create-endpoint
在指定的目标处使用指定的名称创建一个端点。
还可以通过 -C key=value 向此命令传递其他插件特定的参数。
mlflow deployments create-endpoint [OPTIONS]
选项
- -t, --target <target>
必需的 部署目标 URI。运行 mlflow deployments help –target-name
获取有关所支持的 URI 格式和给定目标的配置选项的更多详细信息。 当前已安装对以下部署目标的支持:databricks, http, https, openai, sagemaker 请在 https://mlflow.org/docs/latest/plugins.html#community-plugins 查看所有受支持的部署目标和安装说明。
删除
删除指定目标中由–name给定名称的部署。
mlflow deployments delete [OPTIONS]
选项
- -t, --target <target>
必需 部署目标 URI。运行 mlflow deployments help –target-name
以获取有关给定目标所支持的 URI 格式和配置选项的更多详细信息。 当前已安装对以下部署目标的支持:databricks, http, https, openai, sagemaker 请在 https://mlflow.org/docs/latest/plugins.html#community-plugins 查看所有受支持的部署目标和安装说明
delete-endpoint
删除在指定目标处的指定端点
mlflow deployments delete-endpoint [OPTIONS]
选项
- -t, --target <target>
必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关所支持的 URI 格式和给定目标的配置选项的更多详细信息。 当前已安装用于部署到:databricks、http、https、openai、sagemaker
请在 https://mlflow.org/docs/latest/plugins.html#community-plugins 查看所有受支持的部署目标和安装说明
解释
生成针对已部署模型在指定输入上的模型预测解释。解释输出格式因部署目标而异,可能包含用于理解/调试预测的特征重要性等详细信息。运行 mlflow deployments help 或查阅插件文档以获取有关解释格式的详细信息。有关此函数可接受的输入数据格式的信息,请参阅以下文档: https://www.mlflow.org/docs/latest/models.html#built-in-deployment-tools
mlflow deployments explain [OPTIONS]
选项
- -t, --target <target>
必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关所支持的 URI 格式和给定目标的配置选项的更多详细信息。 当前已安装用于部署到:databricks、http、https、openai、sagemaker
请在 https://mlflow.org/docs/latest/plugins.html#community-plugins 查看所有受支持的部署目标和安装说明。
获取
打印指定目标中由 --name 提供名称的部署的详细描述。
mlflow deployments get [OPTIONS]
选项
- -t, --target <target>
必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关所支持的 URI 格式和给定目标的配置选项的更多详细信息。 当前已安装用于部署到:databricks、http、https、openai、sagemaker
请在 https://mlflow.org/docs/latest/plugins.html#community-plugins 查看所有受支持的部署目标和安装说明。
get-endpoint
获取指定目标上指定端点的详细信息
mlflow deployments get-endpoint [OPTIONS]
选项
- -t, --target <target>
必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标所支持的 URI 格式和配置选项的更多详细信息。 当前已安装对以下部署目标的支持:databricks, http, https, openai, sagemaker
请在 https://mlflow.org/docs/latest/plugins.html#community-plugins 查看所有受支持的部署目标和安装说明。
帮助
显示特定部署目标的附加帮助,例如有关目标特定配置选项和目标的 URI 格式的信息。
mlflow deployments help [OPTIONS]
选项
- -t, --target <target>
必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标所支持的 URI 格式和配置选项的更多详细信息。 当前已安装对以下部署目标的支持:databricks, http, https, openai, sagemaker
请在 https://mlflow.org/docs/latest/plugins.html#community-plugins 查看所有受支持的部署目标和安装说明。
列表
列出指定目标中所有模型部署的名称。这些名称可以与 delete、update 和 get 命令一起使用。
mlflow deployments list [OPTIONS]
选项
- -t, --target <target>
必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标所支持的 URI 格式和配置选项的更多详细信息。 当前已安装对以下部署目标的支持:databricks, http, https, openai, sagemaker
请在 https://mlflow.org/docs/latest/plugins.html#community-plugins 查看所有受支持的部署目标和安装说明。
list-endpoints
列出指定目标的所有端点
mlflow deployments list-endpoints [OPTIONS]
选项
- -t, --target <target>
必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标所支持的 URI 格式和配置选项的更多详细信息。 当前已安装对以下部署目标的支持:databricks, http, https, openai, sagemaker
请在 https://mlflow.org/docs/latest/plugins.html#community-plugins 查看所有受支持的部署目标和安装说明。
predict
为给定的输入预测已部署模型的结果
mlflow deployments predict [OPTIONS]
选项
- -t, --target <target>
必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标所支持的 URI 格式和配置选项的更多详细信息。 当前已安装对以下部署目标的支持:databricks, http, https, openai, sagemaker
请在 https://mlflow.org/docs/latest/plugins.html#community-plugins 查看所有受支持的部署目标和安装说明。
run-local
在本地部署模型。它的签名与 create API 非常相似
mlflow deployments run-local [OPTIONS]
选项
- -t, --target <target>
必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标所支持的 URI 格式和配置选项的更多详细信息。 当前已安装对以下部署目标的支持:databricks, http, https, openai, sagemaker
请在 https://mlflow.org/docs/latest/plugins.html#community-plugins 查看所有受支持的部署目标和安装说明。
更新
更新指定目标中 ID 为 deployment_id 的部署。您可以更新模型的 URI 和/或已部署模型的 flavor(在这种情况下必须同时指定 model URI)。
还可以通过 -C key=value 向此命令传递其他插件特定的参数。
mlflow deployments update [OPTIONS]
选项
- -t, --target <target>
必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标所支持的 URI 格式和配置选项的更多详细信息。 当前已安装对以下部署目标的支持:databricks, http, https, openai, sagemaker
请在 https://mlflow.org/docs/latest/plugins.html#community-plugins 查看所有受支持的部署目标和安装说明。
update-endpoint
在指定目标处更新指定的端点。
还可以通过 -C key=value 向此命令传递其他插件特定的参数。
mlflow deployments update-endpoint [OPTIONS]
选项
- -t, --target <target>
必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标所支持的 URI 格式和配置选项的更多详细信息。 当前已安装对以下部署目标的支持:databricks, http, https, openai, sagemaker
请在 https://mlflow.org/docs/latest/plugins.html#community-plugins 查看所有受支持的部署目标和安装说明。
experiments
管理实验。要管理与跟踪服务器关联的实验,请将环境变量 MLFLOW_TRACKING_URI 设置为所需服务器的 URL。
mlflow experiments [OPTIONS] COMMAND [ARGS]...
创建
创建一个实验。
所有由与该实验相关的运行生成的工件将存储在 artifact location 下,并在特定的 run_id 子目录中进行组织。
实验和元数据存储的实现取决于后端存储。 FileStore
为每个实验 ID 创建一个文件夹,并将元数据存储在 meta.yaml 中。运行以子文件夹的形式存储。
mlflow experiments create [OPTIONS]
选项
- -l, --artifact-location <artifact_location>
用于运行存储 artifact 结果的基本位置。Artifacts 将被存储在 $artifact_location/$run_id/artifacts。有关 artifact 位置属性的更多信息,请参阅 https://mlflow.org/docs/latest/tracking.html#where-runs-are-recorded。如果未提供位置,跟踪服务器将选择默认值。
删除
将一个活动的实验标记为待删除。这也适用于实验的元数据、运行及关联数据,以及如果工件存储在默认位置时的工件。使用 list 命令查看工件位置。如果未找到实验或实验已被标记为待删除,命令将抛出错误。
被标记为删除的实验可以使用 restore 命令恢复,除非它们已被永久删除。
删除的具体实现取决于后端存储。 FileStore 会将被标记为删除的实验移动到用于实例化 FileStore 的主文件夹下的 .trash 文件夹中。被标记为删除的实验可以通过清空 .trash 文件夹来永久删除。建议使用 cron 任务或其他替代的工作流机制来清空 .trash 文件夹。
mlflow experiments delete [OPTIONS]
选项
gateway
管理 MLflow Gateway 服务
mlflow gateway [OPTIONS] COMMAND [ARGS]...
开始
启动 MLflow Gateway 服务
mlflow gateway start [OPTIONS]
选项
Environment variables
- MLFLOW_GATEWAY_CONFIG
为
--config-path提供默认值
gc
从指定的后端存储中永久删除处于deleted生命周期阶段的运行。此命令会删除与指定运行关联的所有工件和元数据。如果提供的 artifact URL 无效,工件删除将被跳过,gc 过程将继续。
注意
如果您正在运行启用工件代理的 MLflow 跟踪服务器,您 必须 在运行此命令之前设置 MLFLOW_TRACKING_URI 环境变量。否则,gc 命令将无法解析工件 URI,也无法删除关联的工件。
mlflow gc [OPTIONS]
选项
- --older-than <older_than>
可选。删除早于指定时间限制的运行。以 #d#h#m#s 格式指定字符串。也支持浮点值。例如:–older-than 1d2h3m4s,–older-than 1.2d3h4m5s
- --backend-store-uri <PATH>
要从中删除运行的后端存储的 URI。可接受的 URI 为与 SQLAlchemy 兼容的数据库连接字符串(例如 ‘sqlite:///path/to/file.db’)或本地文件系统 URI(例如 ‘file:///absolute/path/to/directory’)。默认情况下,数据将从 ./mlruns 目录中删除。
- --artifacts-destination <URI>
用于解析 artifact 上传/下载/列出 请求的基础 artifact 存储位置(例如 ‘s3://my-bucket’)。此选项仅在跟踪服务器配置为流式传输 artifacts 且实验的 artifact 根位置为 http 或 mlflow-artifacts URI 时适用。否则,将使用默认的 artifact 存储位置。
- --experiment-ids <experiment_ids>
可选的以逗号分隔的实验列表,将被永久删除,包括它们所有关联的运行。如果未指定实验 ID,则会移除处于 deleted 生命周期阶段的所有实验的数据。
- --tracking-uri <tracking_uri>
用于删除标记为 ‘deleted’ 的运行时使用的跟踪 URI,例如 http://127.0.0.1:8080
Environment variables
- MLFLOW_ARTIFACTS_DESTINATION
为
--artifacts-destination提供默认值
models
在本地部署 MLflow 模型。
要在跟踪服务器上部署与某次运行关联的模型,请将 MLFLOW_TRACKING_URI 环境变量设置为所需服务器的 URL。
mlflow models [OPTIONS] COMMAND [ARGS]...
构建 Docker
构建一个 Docker 镜像,其默认入口点为 MLflow 模型在端口 8080 提供服务,使用 python_function flavor。容器会提供由 --model-uri 引用的模型(如果在调用 build-docker 时指定了该参数)。如果在调用 build_docker 时未指定 --model-uri,则必须将一个 MLflow Model 目录作为卷挂载到容器内的 /opt/ml/model 目录中。
使用 --model-uri 构建 Docker 镜像:
# Build a Docker image named 'my-image-name' that serves the model from run 'some-run-uuid'
# at run-relative artifact path 'my-model'
mlflow models build-docker --model-uri "runs:/some-run-uuid/my-model" --name "my-image-name"
# Serve the model
docker run -p 5001:8080 "my-image-name"
在没有 --model-uri 的情况下构建 Docker 镜像:
# Build a generic Docker image named 'my-image-name'
mlflow models build-docker --name "my-image-name"
# Mount the model stored in '/local/path/to/artifacts/model' and serve it
docker run --rm -p 5001:8080 -v /local/path/to/artifacts/model:/opt/ml/model "my-image-name"
重要
从 MLflow 2.10.1 起,使用 --model-uri 构建的 Docker 镜像为提高性能默认不安装 Java,除非模型类型为 ["johnsnowlabs", "h2o", "spark"] 之一。如果你需要为其他类型安装 Java,例如使用 SparkML 的自定义 Python 模型,请指定 --install-java 标志以强制安装 Java。
注意:默认情况下,容器会启动 nginx 和 uvicorn 进程。如果你不需要启动 nginx 进程(例如将容器部署到 Google Cloud Run 时),可以通过 DISABLE_NGINX 环境变量将其禁用:
docker run -p 5001:8080 -e DISABLE_NGINX=true "my-image-name"
默认情况下,uvicorn 的工作进程数设置为 CPU 核心数。如果要设置自定义的工作进程数,可以设置环境变量 MLFLOW_MODELS_WORKERS:
docker run -p 5001:8080 -e MLFLOW_MODELS_WORKERS=4 "my-image-name"
有关 ‘python_function’ flavor 的更多信息,请参见 https://www.mlflow.org/docs/latest/python_api/mlflow.pyfunc.html。
mlflow models build-docker [OPTIONS]
选项
- -m, --model-uri <URI>
[可选] 模型的 URI。一个本地路径、一个 ‘runs:/’ URI,或远程存储的 URI(例如,‘s3://’ URI)。有关模型工件支持的远程 URI 的更多信息,请参见 https://mlflow.org/docs/latest/tracking.html#artifact-stores
- --env-manager <env_manager>
如果指定,使用指定的环境管理器为 MLmodel 创建一个环境。支持以下值:
- local: 使用本地环境- virtualenv: 使用 virtualenv(并使用 pyenv 管理 Python 版本)- conda: 使用 conda如果未指定,默认为 virtualenv。
- --install-java <install_java>
在镜像中按需安装 Java。默认值为 None,允许 MLflow 决定是否安装。需要 Java 的 flavors(例如 Spark)会自动启用此功能。注意:此选项仅适用于 UBUNTU 基础镜像;Python 基础镜像不支持 Java 安装。
- --install-mlflow
如果已指定且存在要激活的 conda 或 virtualenv 环境,mlflow 将在该环境被激活后安装到该环境中。已安装的 mlflow 的版本将与用于调用此命令的版本相同。
- --enable-mlserver
通过 v2 推理协议启用 MLServer 的服务。您可以使用环境变量来配置 MLServer。(参见 https://mlserver.readthedocs.io/en/latest/reference/settings.html)
generate-dockerfile
生成一个包含 Dockerfile 的目录,该 Dockerfile 的默认入口点在端口 8080 提供 MLflow 模型服务,使用 python_function flavor。生成的 Dockerfile 会写入指定的输出目录,同时将模型(如果指定)写入其中。该 Dockerfile 定义的镜像与由 mlflow models build-docker 生成的镜像等效。
mlflow models generate-dockerfile [OPTIONS]
选项
- -m, --model-uri <URI>
[可选] 指向模型的 URI。一个本地路径、‘runs:/’ URI,或远程存储 URI(例如,‘s3://’ URI)。有关用于模型工件的受支持远程 URI 的更多信息,请参见 https://mlflow.org/docs/latest/tracking.html#artifact-stores
- --env-manager <env_manager>
如果指定,使用指定的环境管理器为 MLmodel 创建环境。支持以下值:
- local: 使用本地环境- virtualenv: 使用 virtualenv (并使用 pyenv 管理 Python 版本)- conda: 使用 conda如果未指定,默认为 None,那么 MLflow 将根据模型的 flavor 配置自动选择环境管理器。 如果指定了 model-uri:如果在 flavor 配置中指定了 python 版本并且不需要安装 java,则使用本地环境。否则使用 virtualenv。 如果未提供 model-uri,则使用 virtualenv。
- --install-java <install_java>
如果需要,会在镜像中安装 Java。默认值为 None,由 MLflow 决定是否安装。像 Spark 这样的需要 Java 的 flavors 会自动启用此项。注意:此选项仅适用于 UBUNTU 基础镜像;Python 基础镜像不支持安装 Java。
- --install-mlflow
如果已指定且存在需要被激活的 conda 或 virtualenv 环境,则 mlflow 将在该环境被激活后安装到该环境中。安装的 mlflow 版本将与用于调用此命令的版本相同。
- --enable-mlserver
通过 v2 推理协议启用 MLServer 的服务。您可以使用环境变量来配置 MLServer。(参见 https://mlserver.readthedocs.io/en/latest/reference/settings.html)
predict
使用已保存的 MLflow 模型以 json 格式生成预测。有关该函数接受的输入数据格式的信息,请参阅以下文档:https://www.mlflow.org/docs/latest/models.html#built-in-deployment-tools.
mlflow models predict [OPTIONS]
选项
- -m, --model-uri <URI>
必需 模型的 URI。可以是本地路径、'runs:/' URI,或远程存储 URI(例如,'s3://' URI)。有关模型工件支持的远程 URI 的更多信息,请参见 https://mlflow.org/docs/latest/tracking.html#artifact-stores
- --env-manager <env_manager>
如果指定,使用指定的环境管理器为 MLmodel 创建一个环境。支持以下值:
- local: 使用本地环境- virtualenv: 使用 virtualenv(并使用 pyenv 管理 Python 版本)- conda: 使用 conda如果未指定,则默认使用 virtualenv。
- --install-mlflow
如果指定并且存在要激活的 conda 或 virtualenv 环境,mlflow 将在该环境被激活后安装到该环境中。已安装的 mlflow 版本将与用于调用此命令的版本相同。
准备环境
执行任何预测或部署模型所需的准备工作,例如下载依赖项或初始化 conda 环境。准备完成后,调用 predict 或 serve 应该很快。
mlflow models prepare-env [OPTIONS]
选项
- -m, --model-uri <URI>
必需 模型的 URI。可以是本地路径、'runs:/' URI,或远程存储 URI(例如,'s3://' URI)。有关模型工件支持的远程 URI 的更多信息,请参见 https://mlflow.org/docs/latest/tracking.html#artifact-stores
服务
通过在指定的主机和端口上启动一个 web 服务器来为由 MLflow 保存的模型提供服务。
该命令支持具有 python_function 或 crate(R 函数)flavor 的模型。
有关 web 服务器接受的输入数据格式的信息,请参阅以下文档: https://www.mlflow.org/docs/latest/models.html#built-in-deployment-tools.
警告
使用 MLflow 1.x 构建的模型在运行于安装了 MLflow 2.x 的环境中时,需要对端点请求负载进行调整。如果在 1.x 中,请求负载的格式为: {'columns': [str], 'data': [[...]]}。2.x 模型要求负载由以下任一结构定义键中的一个来定义:dataframe_split、instances、inputs 或 dataframe_records。参见下面的示例,演示在 2.0 中对 invocation API 端点的更改。
注意
在 pandas DataFrame 结构中发出的请求可以采用 split 或 records 取向格式。 详见 https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_json.html 以获取将 pandas DataFrame 转换为 json 时的取向格式的详细信息。
示例:
$ mlflow models serve -m runs:/my-run-id/model-path &
# records orientation input format for serializing a pandas DataFrame
$ curl http://127.0.0.1:5000/invocations -H 'Content-Type: application/json' -d '{
"dataframe_records": [{"a":1, "b":2}, {"a":3, "b":4}, {"a":5, "b":6}]
}'
# split orientation input format for serializing a pandas DataFrame
$ curl http://127.0.0.1:5000/invocations -H 'Content-Type: application/json' -d '{
"dataframe_split": {"columns": ["a", "b"],
"index": [0, 1, 2],
"data": [[1, 2], [3, 4], [5, 6]]}
}'
# inputs format for List submission of array, tensor, or DataFrame data
$ curl http://127.0.0.1:5000/invocations -H 'Content-Type: application/json' -d '{
"inputs": [[1, 2], [3, 4], [5, 6]]
}'
# instances format for submission of Tensor data
curl http://127.0.0.1:5000/invocations -H 'Content-Type: application/json' -d '{
"instances": [
{"a": "t1", "b": [1, 2, 3]},
{"a": "t2", "b": [4, 5, 6]},
{"a": "t3", "b": [7, 8, 9]}
]
}'
mlflow models serve [OPTIONS]
选项
- -m, --model-uri <URI>
必需 模型的 URI。可以是本地路径、'runs:/' URI,或远程存储 URI(例如,'s3://' URI)。有关模型工件支持的远程 URI 的更多信息,请参见 https://mlflow.org/docs/latest/tracking.html#artifact-stores
- --env-manager <env_manager>
如果指定,使用指定的环境管理器为 MLmodel 创建一个环境。支持以下值:
- local: 使用本地环境- virtualenv: 使用 virtualenv (以及 pyenv 用于 Python 版本管理)- conda: 使用 conda如果未指定,默认为 virtualenv。
- --install-mlflow
如果已指定且存在要激活的 conda 或 virtualenv 环境,mlflow 将在该环境被激活后安装到该环境中。已安装的 mlflow 的版本将与用于调用此命令的版本相同。
- --enable-mlserver
通过 v2 推理协议启用 MLServer 的服务。您可以使用环境变量来配置 MLServer。(参见 https://mlserver.readthedocs.io/en/latest/reference/settings.html)
Environment variables
- MLFLOW_PORT
为
--port提供默认值
- MLFLOW_HOST
为
--host提供默认值
- MLFLOW_SCORING_SERVER_REQUEST_TIMEOUT
为
--timeout提供默认值
- MLFLOW_MODELS_WORKERS
为
--workers提供默认值
update-pip-requirements
从模型的 conda.yaml 和 requirements.txt 文件中添加或删除依赖项。 如果使用远程跟踪服务器,请确保将 MLFLOW_TRACKING_URI 环境变量设置为所需服务器的 URL。
REQUIREMENT_STRINGS 是一个 pip requirements 说明符列表。参见下方示例。
示例用法:
# Add requirements using the model's "runs:/" URI
mlflow models update-pip-requirements -m runs:/<run_id>/<model_path> \
add "pandas==1.0.0" "scikit-learn" "mlflow >= 2.8, != 2.9.0"
# Remove requirements from a local model
mlflow models update-pip-requirements -m /path/to/local/model \
remove "torchvision" "pydantic"
请注意,模型注册表 URI(即形式为 models:/ 的 URI)不受支持,因为模型注册表中的工件是只读的。在只读工件存储库中编辑 requirements 也不受支持。
如果添加 requirements,函数会覆盖任何重叠的已存在 requirements,或者将新的 requirements 附加到现有列表中。
如果移除 requirements,函数将忽略任何版本说明符,并移除所有指定的包名。任何在现有文件中未找到的 requirements 将被忽略。
mlflow models update-pip-requirements [OPTIONS] {add|remove}
[REQUIREMENT_STRINGS]...
选项
- -m, --model-uri <URI>
必需 模型的 URI。可以是本地路径、'runs:/' URI,或远程存储 URI(例如,'s3://' URI)。有关模型工件支持的远程 URI 的更多信息,请参见 https://mlflow.org/docs/latest/tracking.html#artifact-stores
参数
run
从给定的 URI 运行一个 mlflow 项目。
对于本地运行,运行将阻塞直到完成。 否则,项目将以异步方式运行。
如果在本地运行(默认),URI 可以是 Git 存储库 URI 或本地路径。 如果在 Databricks 上运行,URI 必须是 Git 存储库。
默认情况下,Git 项目在一个新的工作目录中使用给定的参数运行,而本地项目则从项目的根目录运行。
mlflow run [OPTIONS] URI
选项
- -e, --entry-point <NAME>
项目中的入口点。[默认: main]。如果未找到入口点,系统会尝试将具有指定名称的项目文件作为脚本运行,使用 ‘python’ 来运行 .py 文件,并使用默认的 shell(由环境变量 $SHELL 指定)来运行 .sh 文件。
- -P, --param-list <NAME=VALUE>
运行的一个参数,形式为 -P name=value。提供的、不在入口点参数列表中的参数将作为命令行参数传递给相应的入口点,形式为 –name value
- -A, --docker-args <NAME=VALUE>
一个 docker run 参数或标志,形式为 -A name=value (例如 -A gpus=all) 或 -A name (例如 -A t)。该参数随后将分别作为 docker run –name value 或 docker run –name 传递。
- -b, --backend <BACKEND>
用于运行的执行后端。支持的值:‘local’, ‘databricks’, kubernetes (experimental)。默认值为 ‘local’。如果针对 Databricks 运行,将根据以下方式确定要运行的 Databricks 工作区:如果已设置形式为 ‘databricks://profile’ 的 Databricks tracking URI(例如通过设置 MLFLOW_TRACKING_URI 环境变量),则将在由
指定的工作区运行。否则,将在由默认 Databricks CLI 配置文件指定的工作区运行。有关配置 Databricks CLI 配置文件的更多信息,请参见 https://github.com/databricks/databricks-cli。
- -c, --backend-config <FILE>
JSON 文件的路径(必须以 '.json' 结尾)或将作为配置传递给后端的 JSON 字符串。不同的执行后端需要提供的具体内容不同,详见 https://www.mlflow.org/docs/latest/projects.html。
- --env-manager <env_manager>
如果指定,使用指定的环境管理器为 MLproject 创建环境。支持以下值:
- local: 使用本地环境- virtualenv: 使用 virtualenv (并使用 pyenv 管理 Python 版本)- uv: 使用 uv- conda: 使用 conda如果未指定,则会根据项目配置自动选择合适的环境管理器。例如,如果 MLproject.yaml 包含一个 python_env 键,则使用 virtualenv。
- --storage-dir <storage_dir>
仅在
backend为本地时有效。MLflow 会将传递给类型为 ‘path’ 的参数的分布式 URI 指向的工件下载到 storage_dir 的子目录中。
- --build-image
仅对 Docker 项目有效。如果指定,会构建一个新的 Docker 镜像,该镜像基于 MLproject 文件中 image 字段指定的镜像,并包含项目目录中的文件。
- Default
False
参数
Environment variables
- MLFLOW_EXPERIMENT_NAME
为
--experiment-name提供默认值
- MLFLOW_EXPERIMENT_ID
为
--experiment-id提供默认值
- MLFLOW_TMP_DIR
为
--storage-dir提供默认值
runs
管理运行。要管理与跟踪服务器关联的实验运行,请将 MLFLOW_TRACKING_URI 环境变量设置为所需服务器的 URL。
mlflow runs [OPTIONS] COMMAND [ARGS]...
删除
将运行标记为待删除。如果运行不存在或已被标记,则返回错误。您可以使用 restore_run 恢复被标记的运行,或在后端存储中永久删除运行。
mlflow runs delete [OPTIONS]
选项
列表
列出在已配置的跟踪服务器中指定实验的所有运行。
mlflow runs list [OPTIONS]
选项
Environment variables
- MLFLOW_EXPERIMENT_ID
为
--experiment-id提供默认值
sagemaker
在 SageMaker 上部署模型。
要在跟踪服务器上为与某次运行关联的模型提供服务,请将 MLFLOW_TRACKING_URI 环境变量设置为所需服务器的 URL。
mlflow sagemaker [OPTIONS] COMMAND [ARGS]...
build-and-push-container
构建新的 MLflow Sagemaker 镜像,为其指定名称,并推送到 ECR。
此函数构建一个 MLflow Docker 镜像。镜像在本地构建,运行该过程需要 Docker。该镜像会被推送到当前激活的 AWS 账户下的 ECR,并推送到当前激活的 AWS 区域。
mlflow sagemaker build-and-push-container [OPTIONS]
选项
- --install-java <install_java>
如果需要,会在镜像中安装 Java。默认值为 None,由 MLflow 决定是否安装。像 Spark 这样的需要 Java 的 flavors 会自动启用此项。注意:此选项仅适用于 UBUNTU 基础镜像;Python 基础镜像不支持安装 Java。
deploy-transform-job
在 Sagemaker 上将模型部署为批量转换作业。当前活动的 AWS 账户需要设置正确的权限。
默认情况下,除非指定了 --async 标志,否则此命令将阻塞,直到批量转换作业完成(明确成功或失败)或指定的超时时间到期。
mlflow sagemaker deploy-transform-job [OPTIONS]
选项
- -m, --model-uri <URI>
必需 模型的 URI。可以是本地路径、'runs:/' URI,或远程存储 URI(例如,'s3://' URI)。有关模型工件支持的远程 URI 的更多信息,请参见 https://mlflow.org/docs/latest/tracking.html#artifact-stores
- -t, --instance-type <instance_type>
要在其上执行批量转换作业的 SageMaker ML 实例类型。有关受支持的实例类型列表,请参阅 https://aws.amazon.com/sagemaker/pricing/instance-types/。
- -v, --vpc-config <vpc_config>
包含 JSON 格式 VPC 配置的文件路径。此配置将在创建与此应用关联的新 SageMaker 模型时使用。有关更多信息,请参阅 https://docs.aws.amazon.com/sagemaker/latest/dg/API_VpcConfig.html
push-model
将 MLflow 模型推送到 Sagemaker 模型注册表。当前激活的 AWS 账户需要具备正确的权限设置。
mlflow sagemaker push-model [OPTIONS]
选项
- -m, --model-uri <URI>
必需 模型的 URI。可以是本地路径、'runs:/' URI,或远程存储 URI(例如,'s3://' URI)。有关模型工件支持的远程 URI 的更多信息,请参见 https://mlflow.org/docs/latest/tracking.html#artifact-stores
- -v, --vpc-config <vpc_config>
包含 JSON 格式 VPC 配置的文件路径。此配置将在创建新的 SageMaker 模型时使用。更多信息,请参见 https://docs.aws.amazon.com/sagemaker/latest/dg/API_VpcConfig.html
terminate-transform-job
终止指定的 Sagemaker 批量转换作业。除非指定了 --archive,否则与该批量转换作业相关的所有 SageMaker 资源也将被删除。
默认情况下,除非指定了 --async 标志,该命令将阻塞,直到终止过程完成(最终成功或失败)或指定的超时到期。
mlflow sagemaker terminate-transform-job [OPTIONS]
选项
server
运行 MLflow 跟踪服务器。
服务器默认监听 http://localhost:5000,并且只接受来自本机的连接。要让服务器接受来自其他机器的连接,您需要传入 --host 0.0.0.0 来监听所有网络接口(或某个特定接口地址)。
mlflow server [OPTIONS]
选项
- --backend-store-uri <PATH>
用于持久化实验和运行数据的 URI。可接受的 URI 为与 SQLAlchemy 兼容的数据库连接字符串(例如 ‘sqlite:///path/to/file.db’)或本地文件系统 URI(例如 ‘file:///absolute/path/to/directory’)。默认情况下,数据将记录到 ./mlruns 目录。
- --registry-store-uri <URI>
用于持久化已注册模型的 URI。可接受的 URI 是与 SQLAlchemy 兼容的数据库连接字符串(例如 ‘sqlite:///path/to/file.db’)。如果未指定,则使用 backend-store-uri。
- --default-artifact-root <URI>
用于存放新创建实验的工件的目录。对于依赖 SQL 的跟踪服务器后端,必须使用此选项才能存储工件。请注意,此标志不会影响已使用先前配置的 MLflow 服务器实例创建的实验。默认情况下,如果启用 –serve-artifacts 选项,数据将记录到 mlflow-artifacts:/ URI 代理。否则,默认位置将是 ./mlruns。
- --serve-artifacts, --no-serve-artifacts
启用通过代理将工件上传、下载和列出请求路由到由 ‘–artifacts-destination’ 指定的存储位置来直接提供这些请求。默认这些请求从本地 ‘./mlartifacts’ 目录提供,该目录可以通过 ‘–artifacts-destination’ 参数覆盖。要禁用工件提供,请指定 –no-serve-artifacts。Default: True
- --artifacts-only
如果指定,将配置 mlflow 服务器仅用于代理的工件服务。启用此模式后,mlflow 跟踪服务的功能(例如:运行创建、指标记录和参数记录)将被禁用。服务器将仅公开用于上传、下载和列出工件的端点。默认:False
- --artifacts-destination <URI>
用于解析工件上传/下载/列出请求的基础工件位置(例如 ‘s3://my-bucket’)。默认为本地 ‘./mlartifacts’ 目录。仅当跟踪服务器配置为流式传输工件且实验的工件根位置为 http 或 mlflow-artifacts URI 时,此选项才适用。
- --expose-prometheus <expose_prometheus>
存放指标的目录路径。如果该目录不存在,将会创建。启用 prometheus 导出器以在 /metrics 端点暴露指标。
- --dev
如果启用,运行服务器时将开启调试日志并自动重新加载。仅应在开发环境中使用。不能与‘–gunicorn-opts’或‘–uvicorn-opts’一起使用。在 Windows 上不受支持。
- Default
False
Environment variables
- MLFLOW_BACKEND_STORE_URI
为
--backend-store-uri提供默认值
- MLFLOW_REGISTRY_STORE_URI
为
--registry-store-uri提供默认值
- MLFLOW_DEFAULT_ARTIFACT_ROOT
为
--default-artifact-root提供默认值
- MLFLOW_SERVE_ARTIFACTS
为
--serve-artifacts提供默认值
- MLFLOW_ARTIFACTS_ONLY
为
--artifacts-only提供默认值
- MLFLOW_ARTIFACTS_DESTINATION
为
--artifacts-destination提供默认值
- MLFLOW_HOST
为
--host提供默认值
- MLFLOW_PORT
为
--port提供默认值
- MLFLOW_WORKERS
为
--workers提供默认值
- MLFLOW_STATIC_PREFIX
为
--static-prefix提供默认值
- MLFLOW_GUNICORN_OPTS
为
--gunicorn-opts提供默认值
- MLFLOW_UVICORN_OPTS
为
--uvicorn-opts提供默认值
- MLFLOW_EXPOSE_PROMETHEUS
为
--expose-prometheus提供默认值