命令行界面

MLflow 命令行界面 (CLI) 提供了一个简单的界面来访问 MLflow 的各种功能。您可以使用 CLI 来运行项目、启动跟踪 UI、创建和列出实验、下载运行产物、为 MLflow Python 函数和 scikit-learn 模型提供服务,以及在 Microsoft Azure Machine LearningAmazon SageMaker 上部署模型。

每个单独的命令都有一个详细的帮助屏幕,可以通过 mlflow command_name --help 访问。

注意

建议默认设置 MLFLOW_TRACKING_URI 环境变量,因为 CLI 不会自动连接到跟踪服务器。如果不设置,CLI 将默认使用命令执行所在的本地文件系统,而不是连接到 localhost 或远程 HTTP 服务器。对于下方的大多数命令,必须将 MLFLOW_TRACKING_URI 设置为您所需的跟踪服务器的 URL。

mlflow

用法

mlflow [OPTIONS] COMMAND [ARGS]...

选项

--version

显示版本并退出。

--env-file <env_file>

在执行命令之前从 dotenv 文件加载环境变量。文件中的变量将被加载,但不会覆盖现有的环境变量。

agent

MLflow 的编码代理集成(原型)。

用法

mlflow agent [OPTIONS] COMMAND [ARGS]...

setup

[实验性] 安装 MLflow 技能并启动编码代理来监测此存储库。

用法

mlflow agent setup [OPTIONS]

选项

--agent <agent_name>

要设置的编码代理。如果省略,将从已安装的代理中选择。

选项

claude | codex | opencode

--print

将组合的任务提示打印到标准输出并退出,而不启动代理。这对于将提示传递到自定义调用很有用,例如 claude –permission-mode auto “$(mlflow agent setup –agent claude –print)”

ai-commands

管理 LLM 的 MLflow AI 命令。

用法

mlflow ai-commands [OPTIONS] COMMAND [ARGS]...

get

通过键获取特定的 AI 命令。

用法

mlflow ai-commands get [OPTIONS] KEY

参数

KEY

必需参数

list

列出所有可用的 AI 命令。

用法

mlflow ai-commands list [OPTIONS]

选项

--namespace <namespace>

按命名空间过滤命令

run

获取格式化为 AI 助手执行的命令。

用法

mlflow ai-commands run [OPTIONS] KEY

参数

KEY

必需参数

artifacts

从 MLflow 产物存储库上传、列出和下载产物。

要管理与跟踪服务器关联的运行的产物,请将 MLFLOW_TRACKING_URI 环境变量设置为所需服务器的 URL。

用法

mlflow artifacts [OPTIONS] COMMAND [ARGS]...

download

将产物文件或目录下载到本地目录。输出是本地文件系统上的文件或目录名称。

必须提供 --artifact-uri--run-id

用法

mlflow artifacts download [OPTIONS]

选项

-r, --run-id <run_id>

要下载的运行 ID

-a, --artifact-path <artifact_path>

与运行 ID 一起使用:如果指定,则为下载运行根目录下的相对路径

-u, --artifact-uri <artifact_uri>

指向产物文件或产物目录的 URI;用作指定 –run_id 和 –artifact-path 的替代方案

-d, --dst-path <dst_path>

要下载指定产物的本地文件系统目标目录路径。如果该目录不存在,则创建它。如果未指定,则产物会被下载到本地文件系统上一个新的唯一命名目录中,除非产物已存在于本地文件系统中,此时将直接返回其本地路径

list

返回运行根产物目录或子目录下的所有直接产物。输出为 JSON 格式的列表。

用法

mlflow artifacts list [OPTIONS]

选项

-r, --run-id <run_id>

必需 要列出的运行 ID

-a, --artifact-path <artifact_path>

如果指定,则为要列出的运行根目录下的相对路径。

log-artifact

将本地文件记录为运行的产物,可选择记录在运行特定的产物路径内。运行产物可以组织到目录中,因此您可以通过这种方式将产物放置在目录中。

用法

mlflow artifacts log-artifact [OPTIONS]

选项

-l, --local-file <local_file>

必需 要记录的产物的本地路径

-r, --run-id <run_id>

必需 应记录产物的运行 ID。

-a, --artifact-path <artifact_path>

如果指定,我们将把产物记录到运行产物目录的这个子目录中。

log-artifacts

将本地目录中的文件记录为运行的产物,可选择记录在运行特定的产物路径内。运行产物可以组织到目录中,因此您可以通过这种方式将产物放置在目录中。

用法

mlflow artifacts log-artifacts [OPTIONS]

选项

-l, --local-dir <local_dir>

必需 要记录的本地产物目录

-r, --run-id <run_id>

必需 应记录产物的运行 ID。

-a, --artifact-path <artifact_path>

如果指定,我们将把产物记录到运行产物目录的这个子目录中。

assistant

MLflow 助手 - AI 驱动的跟踪分析。

运行 ‘mlflow assistant –configure’ 来设置助手。

用法

mlflow assistant [OPTIONS]

选项

--configure

配置或重新配置助手设置

autolog

用于 MLflow 自动记录的命令。

用法

mlflow autolog [OPTIONS] COMMAND [ARGS]...

claude

在目录中设置 Claude Code 跟踪。

此命令将 MLflow Claude 插件安装到 Claude Code 中,并将 MLflow 配置写入 .claude/settings.json。设置完成后,使用常规的 claude 命令,插件运行时将创建跟踪。

示例

# 在具有本地存储的当前目录中设置跟踪 mlflow autolog claude

# 在特定项目目录中设置跟踪 mlflow autolog claude -d ~/my-project

# 使用 Databricks 设置跟踪 mlflow autolog claude -u databricks -e 123456789

# 使用自定义跟踪 URI 设置跟踪 mlflow autolog claude -u file://./custom-mlruns

# 在当前目录中禁用跟踪 mlflow autolog claude –disable

用法

mlflow autolog claude [OPTIONS] COMMAND [ARGS]...

选项

-d, --directory <directory>

设置跟踪的目录(默认:当前目录)

-u, --tracking-uri <tracking_uri>

MLflow 跟踪 URI(例如,‘databricks’ 或 ‘file://mlruns’)

-e, --experiment-id <experiment_id>

MLflow 实验 ID

-n, --experiment-name <experiment_name>

MLflow 实验名称

--disable

禁用 Claude 跟踪(从 settings.json 和 settings.local.json 中删除配置)

--status

显示当前跟踪状态

--local

在设置期间将配置写入 settings.local.json 而不是 settings.json。

-y, --non-interactive

跳过提示并使用标志、环境变量或默认值。

--mlflow-cmd <mlflow_cmd>

已弃用且被忽略。基于 Python 的 Claude 钩子已被市场插件运行时取代。

crypto

用于管理 MLflow 加密密码的命令。

用法

mlflow crypto [OPTIONS] COMMAND [ARGS]...

rotate-kek

轮换用于加密和解密的 KEK 密码。

用法

mlflow crypto rotate-kek [OPTIONS]

选项

--new-passphrase <new_passphrase>

必需 用于加密和解密敏感数据的新 KEK 密码。

--backend-store-uri <backend_store_uri>

后端存储的 URI。如果未指定,则使用 MLFLOW_TRACKING_URI。

-y, --yes

跳过确认提示。

环境变量

MLFLOW_BACKEND_STORE_URI

提供 --backend-store-uri 的默认值

datasets

管理 GenAI 评估数据集。

用法

mlflow datasets [OPTIONS] COMMAND [ARGS]...

list

列出与实验关联的 GenAI 评估数据集。

示例
# 列出实验 1 中的数据集
mlflow datasets list –experiment-id 1
# 使用环境变量
export MLFLOW_EXPERIMENT_ID=1
mlflow datasets list –max-results 10
# 按名称模式过滤数据集
mlflow datasets list –experiment-id 1 –filter-string “name LIKE ‘qa_%’”
# 按最后更新时间对结果排序
mlflow datasets list –experiment-id 1 –order-by “last_update_time DESC”
# 输出为 JSON
mlflow datasets list –experiment-id 1 –output json

用法

mlflow datasets list [OPTIONS]

选项

-x, --experiment-id <experiment_id>

必需 要列出数据集的实验 ID。可以通过 MLFLOW_EXPERIMENT_ID 环境变量设置。

--filter-string <filter_string>

过滤字符串(例如,“name LIKE ‘qa_%’”)。

--max-results <max_results>

最大结果数(默认:50)。

--order-by <order_by>

要排序的列(例如,‘last_update_time DESC’)。

--page-token <page_token>

分页令牌。

--output <output>

输出格式。

选项

table | json

环境变量

MLFLOW_EXPERIMENT_ID

提供 --experiment-id 的默认值

db

用于管理 MLflow 跟踪数据库的命令。

用法

mlflow db [OPTIONS] COMMAND [ARGS]...

migrate-to-default-workspace

将工作区范围的资源移动到默认工作区。

重要:此操作在单个事务中运行,但仍然可能需要较长时间。在运行此命令之前,请务必备份您的数据库。

用法

mlflow db migrate-to-default-workspace [OPTIONS] URL

选项

--dry-run, --no-dry-run

检查冲突并报告将移动多少行。

默认值

False

-v, --verbose

列出所有冲突而不是截断输出。

-y, --yes

跳过确认提示。

参数

URL

必需参数

move-resources

将资源从一个工作区移动到另一个工作区。

通过名称或标签过滤器(互斥)有选择地在工作区之间移动工作区范围的资源。如果既未指定 –name 也未指定 –tag,则会移动源工作区中给定类型的所有资源。

–resource-type 值是数据库表名(例如 experiments, registered_models, evaluation_datasets, webhooks, jobs)。

标签过滤(–tag)仅支持 experiments 和 registered_models。当给出多个 –tag 标志时,仅包含匹配 ALL 标签的资源(AND 逻辑)。

示例
# 按名称移动特定实验
mlflow db move-resources sqlite:///mlflow.db
–from default –to team-a –resource-type experiments
–name training-v1 –name training-v2
# 移动匹配 ALL 指定标签的实验
mlflow db move-resources sqlite:///mlflow.db
–from default –to team-a –resource-type experiments
–tag team=team-a –tag env=prod
# 将所有注册模型从一个工作区移动到另一个工作区
mlflow db move-resources sqlite:///mlflow.db
–from default –to team-a –resource-type registered_models

重要:在运行此命令之前,请务必备份您的数据库。

用法

mlflow db move-resources [OPTIONS] URL

选项

--from <source_workspace>

必需 源工作区名称。

--to <target_workspace>

必需 目标工作区名称。

--resource-type <resource_type>

必需 要移动的资源类型的表名(例如 experiments, registered_models)。

--name <name>

要移动的资源名称。可重复。

--tag <tag>

标签过滤器为 key=value。可重复。当给出多个标签时,仅包含匹配 ALL 标签的资源。

--dry-run, --no-dry-run

显示将移动的内容而不进行更改。

默认值

False

-v, --verbose

列出所有冲突而不是截断输出。

-y, --yes

跳过确认提示。

参数

URL

必需参数

upgrade

将 MLflow 跟踪数据库的架构升级到最新支持的版本。

重要:架构迁移可能很慢,并且不能保证是事务性的 - 在运行迁移之前,请务必备份您的数据库。位于 https://github.com/mlflow/mlflow/blob/master/mlflow/store/db_migrations/README.md 的迁移 README 描述了大型迁移,并包含有关如何评估其性能以及如何从故障中恢复的信息。

用法

mlflow db upgrade [OPTIONS] URL

参数

URL

必需参数

demo

启动带有预填充演示数据的 MLflow,用于探索 GenAI 功能。

默认情况下,在 ./mlflow-demo/ 中创建一个持久环境,包含 SQLite 数据库和基于文件的产物,生成演示数据,并将浏览器打开到演示实验。数据在重启后保持不变;使用 –refresh 重新生成。

要使用演示数据填充现有的 MLflow 服务器,请使用 –tracking-uri

mlflow demo # 启动新的演示服务器 mlflow demo –no-browser # 在不打开浏览器的情况下启动 mlflow demo –port 5001 # 使用自定义端口 mlflow demo –tracking-uri https://:5000 # 使用现有服务器

用法

mlflow demo [OPTIONS]

选项

--port <port>

运行演示服务器的端口(仅在启动新服务器时使用)。

--tracking-uri <tracking_uri>

要用演示数据填充的现有 MLflow 服务器的跟踪 URI。

--no-browser

不要自动将浏览器打开到演示实验。

--debug

启用详细的日志输出。

--refresh

通过先删除现有数据来强制重新生成演示数据。

deployments

将 MLflow 模型部署到自定义目标。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标的支持 URI 格式和配置选项的更多详细信息。当前已安装对以下部署的支持:faketarget, databricks, http, https, openai, sagemaker

查看所有支持的部署目标和安装说明:https://mlflow.org.cn/docs/latest/plugins.html#community-plugins

您还可以编写自己的插件以部署到自定义目标。有关编写和分发插件的说明,请参阅 https://mlflow.org.cn/docs/latest/plugins.html#writing-your-own-mlflow-plugins

用法

mlflow deployments [OPTIONS] COMMAND [ARGS]...

create

model_uri 处的模型部署到指定目标。

额外的插件特定参数也可以通过 -C key=value 传递给此命令

用法

mlflow deployments create [OPTIONS]

选项

--endpoint <endpoint>

端点名称

-C, --config <NAME=VALUE>

用于模型部署的额外目标特定配置,格式为 -C name=value。有关支持的配置选项列表,请参阅您的部署目标的文档/帮助。

--name <name>

必需 部署名称

-t, --target <target>

必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标的支持 URI 格式和配置选项的更多详细信息。当前已安装对以下部署的支持:faketarget, databricks, http, https, openai, sagemaker

https://mlflow.org.cn/docs/latest/plugins.html#community-plugins 查看所有支持的部署目标和安装说明

-m, --model-uri <URI>

必需 模型 URI。本地路径、‘runs:/’ URI 或远程存储 URI(例如 ‘s3://’ URI)。有关模型产物支持的远程 URI 的更多信息,请参阅 https://mlflow.org.cn/docs/latest/tracking.html#artifact-stores

-f, --flavor <flavor>

要部署的类型(flavor)。如果未给出,将自动推断

create-endpoint

在指定目标处创建具有指定名称的端点。

额外的插件特定参数也可以通过 -C key=value 传递给此命令

用法

mlflow deployments create-endpoint [OPTIONS]

选项

-C, --config <NAME=VALUE>

用于端点的额外目标特定配置,格式为 -C name=value。有关支持的配置选项列表,请参阅您的部署目标的文档/帮助。

--endpoint <endpoint>

必需 端点名称

-t, --target <target>

必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标的支持 URI 格式和配置选项的更多详细信息。当前已安装对以下部署的支持:faketarget, databricks, http, https, openai, sagemaker

https://mlflow.org.cn/docs/latest/plugins.html#community-plugins 查看所有支持的部署目标和安装说明

delete

从指定目标删除 –name 给定名称的部署。

用法

mlflow deployments delete [OPTIONS]

选项

--endpoint <endpoint>

端点名称

-C, --config <NAME=VALUE>

用于模型部署的额外目标特定配置,格式为 -C name=value。有关支持的配置选项列表,请参阅您的部署目标的文档/帮助。

--name <name>

必需 部署名称

-t, --target <target>

必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标的支持 URI 格式和配置选项的更多详细信息。当前已安装对以下部署的支持:faketarget, databricks, http, https, openai, sagemaker

https://mlflow.org.cn/docs/latest/plugins.html#community-plugins 查看所有支持的部署目标和安装说明

delete-endpoint

删除指定目标处的指定端点

用法

mlflow deployments delete-endpoint [OPTIONS]

选项

--endpoint <endpoint>

必需 端点名称

-t, --target <target>

必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标的支持 URI 格式和配置选项的更多详细信息。当前已安装对以下部署的支持:faketarget, databricks, http, https, openai, sagemaker

https://mlflow.org.cn/docs/latest/plugins.html#community-plugins 查看所有支持的部署目标和安装说明

explain

为给定的输入生成已部署模型对模型预测的解释。解释输出格式因部署目标而异,可能包含用于理解/调试预测的特征重要性等详细信息。运行 mlflow deployments help 或咨询您的插件文档以了解有关解释格式的详细信息。有关此功能接受的输入数据格式的信息,请参阅以下文档:https://www.mlflow.org/docs/latest/models.html#built-in-deployment-tools

用法

mlflow deployments explain [OPTIONS]

选项

--name <name>

部署名称。必须指定 –name 或 –endpoint 中的一个。

--endpoint <endpoint>

端点名称。必须指定 –name 或 –endpoint 中的一个。

-t, --target <target>

必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标的支持 URI 格式和配置选项的更多详细信息。当前已安装对以下部署的支持:faketarget, databricks, http, https, openai, sagemaker

https://mlflow.org.cn/docs/latest/plugins.html#community-plugins 查看所有支持的部署目标和安装说明

-I, --input-path <input_path>

必需 输入预测负载文件的路径。文件可以是 JSON (Python 字典) 或 CSV (pandas DataFrame)。如果文件是 CSV,用户必须指定 –content-type csv 选项。

-O, --output-path <output_path>

将结果作为 JSON 文件输出的文件。如果未提供,则将输出打印到标准输出。

get

打印指定目标中 --name 给定名称的部署的详细描述。

用法

mlflow deployments get [OPTIONS]

选项

--endpoint <endpoint>

端点名称

--name <name>

必需 部署名称

-t, --target <target>

必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标的支持 URI 格式和配置选项的更多详细信息。当前已安装对以下部署的支持:faketarget, databricks, http, https, openai, sagemaker

https://mlflow.org.cn/docs/latest/plugins.html#community-plugins 查看所有支持的部署目标和安装说明

get-endpoint

获取指定目标中指定端点的详细信息

用法

mlflow deployments get-endpoint [OPTIONS]

选项

--endpoint <endpoint>

必需 端点名称

-t, --target <target>

必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标的支持 URI 格式和配置选项的更多详细信息。当前已安装对以下部署的支持:faketarget, databricks, http, https, openai, sagemaker

https://mlflow.org.cn/docs/latest/plugins.html#community-plugins 查看所有支持的部署目标和安装说明

help

显示特定部署目标的额外帮助,例如关于目标特定配置选项和目标 URI 格式的信息。

用法

mlflow deployments help [OPTIONS]

选项

-t, --target <target>

必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标的支持 URI 格式和配置选项的更多详细信息。当前已安装对以下部署的支持:faketarget, databricks, http, https, openai, sagemaker

https://mlflow.org.cn/docs/latest/plugins.html#community-plugins 查看所有支持的部署目标和安装说明

list

列出指定目标中所有模型部署的名称。这些名称可以与 deleteupdateget 命令一起使用。

用法

mlflow deployments list [OPTIONS]

选项

--endpoint <endpoint>

端点名称

-t, --target <target>

必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标的支持 URI 格式和配置选项的更多详细信息。当前已安装对以下部署的支持:faketarget, databricks, http, https, openai, sagemaker

https://mlflow.org.cn/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 格式和配置选项的更多详细信息。当前已安装对以下部署的支持:faketarget, databricks, http, https, openai, sagemaker

https://mlflow.org.cn/docs/latest/plugins.html#community-plugins 查看所有支持的部署目标和安装说明

predict

预测给定输入已部署模型的结果

用法

mlflow deployments predict [OPTIONS]

选项

--name <name>

部署名称。必须指定 –name 或 –endpoint 中的一个。

--endpoint <endpoint>

端点名称。必须指定 –name 或 –endpoint 中的一个。

-t, --target <target>

必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标的支持 URI 格式和配置选项的更多详细信息。当前已安装对以下部署的支持:faketarget, databricks, http, https, openai, sagemaker

https://mlflow.org.cn/docs/latest/plugins.html#community-plugins 查看所有支持的部署目标和安装说明

-I, --input-path <input_path>

必需 输入预测负载文件的路径。文件可以是 JSON (Python 字典) 或 CSV (pandas DataFrame)。如果文件是 CSV,用户必须指定 –content-type csv 选项。

-O, --output-path <output_path>

将结果作为 JSON 文件输出的文件。如果未提供,则将输出打印到标准输出。

run-local

在本地部署模型。这与 create API 的签名非常相似

用法

mlflow deployments run-local [OPTIONS]

选项

-C, --config <NAME=VALUE>

用于模型部署的额外目标特定配置,格式为 -C name=value。有关支持的配置选项列表,请参阅您的部署目标的文档/帮助。

--name <name>

必需 部署名称

-t, --target <target>

必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标的支持 URI 格式和配置选项的更多详细信息。当前已安装对以下部署的支持:faketarget, databricks, http, https, openai, sagemaker

https://mlflow.org.cn/docs/latest/plugins.html#community-plugins 查看所有支持的部署目标和安装说明

-m, --model-uri <URI>

必需 模型 URI。本地路径、‘runs:/’ URI 或远程存储 URI(例如 ‘s3://’ URI)。有关模型产物支持的远程 URI 的更多信息,请参阅 https://mlflow.org.cn/docs/latest/tracking.html#artifact-stores

-f, --flavor <flavor>

要部署的类型(flavor)。如果未给出,将自动推断

update

更新指定目标中 ID 为 deployment_id 的部署。您可以更新模型的 URI 和/或已部署模型的类型(此时也必须指定模型 URI)。

额外的插件特定参数也可以通过 -C key=value 传递给此命令。

用法

mlflow deployments update [OPTIONS]

选项

--endpoint <endpoint>

端点名称

-C, --config <NAME=VALUE>

用于模型部署的额外目标特定配置,格式为 -C name=value。有关支持的配置选项列表,请参阅您的部署目标的文档/帮助。

--name <name>

必需 部署名称

-t, --target <target>

必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标的支持 URI 格式和配置选项的更多详细信息。当前已安装对以下部署的支持:faketarget, databricks, http, https, openai, sagemaker

https://mlflow.org.cn/docs/latest/plugins.html#community-plugins 查看所有支持的部署目标和安装说明

-m, --model-uri <URI>

模型 URI。本地路径、‘runs:/’ URI 或远程存储 URI(例如 ‘s3://’ URI)。有关模型产物支持的远程 URI 的更多信息,请参阅 https://mlflow.org.cn/docs/latest/tracking.html#artifact-stores

-f, --flavor <flavor>

要部署的类型(flavor)。如果未给出,将自动推断

update-endpoint

更新指定目标处的指定端点。

额外的插件特定参数也可以通过 -C key=value 传递给此命令

用法

mlflow deployments update-endpoint [OPTIONS]

选项

-C, --config <NAME=VALUE>

用于端点的额外目标特定配置,格式为 -C name=value。有关支持的配置选项列表,请参阅您的部署目标的文档/帮助。

--endpoint <endpoint>

必需 端点名称

-t, --target <target>

必需 部署目标 URI。运行 mlflow deployments help –target-name <target-name> 以获取有关给定目标的支持 URI 格式和配置选项的更多详细信息。当前已安装对以下部署的支持:faketarget, databricks, http, https, openai, sagemaker

https://mlflow.org.cn/docs/latest/plugins.html#community-plugins 查看所有支持的部署目标和安装说明

doctor

打印出有用的信息,用于调试 MLflow 的问题。

用法

mlflow doctor [OPTIONS]

选项

--mask-envs

如果设置(未设置此标志时的默认行为是不混淆信息),则在输出中掩盖 MLflow 环境变量的值(例如 “MLFLOW_ENV_VAR”: “***”),以防止泄露敏感信息。

experiments

管理实验。要管理与跟踪服务器关联的实验,请将 MLFLOW_TRACKING_URI 环境变量设置为所需服务器的 URL。

用法

mlflow experiments [OPTIONS] COMMAND [ARGS]...

create

创建一个实验。

与此实验相关的运行生成的所有产物都将存储在产物位置下,并组织在特定的 run_id 子目录下。

实验和元数据存储的实现取决于后端存储。FileStore 为每个实验 ID 创建一个文件夹,并将元数据存储在 meta.yaml 中。运行存储为子文件夹。

用法

mlflow experiments create [OPTIONS]

选项

-n, --experiment-name <experiment_name>

必需

-l, --artifact-location <artifact_location>

运行存储产物结果的基本位置。产物将存储在 $artifact_location/$run_id/artifacts。有关产物位置属性的更多信息,请参阅 https://mlflow.org.cn/docs/latest/tracking.html#where-runs-are-recorded。如果未提供位置,跟踪服务器将选择默认位置。

--trace-archival-retention <trace_archival_retention>

将实验级别的跟踪存档保留覆盖配置为持续时间,例如 ‘30d’ 或 ‘12h’。这仅配置服务器拥有的存档策略;它不会直接执行存档。

csv

为实验的所有运行生成 CSV

用法

mlflow experiments csv [OPTIONS]

选项

-x, --experiment-id <experiment_id>

必需

-o, --filename <filename>

delete

标记处于活动状态的实验以供删除。这也适用于实验的元数据、运行和关联数据,以及如果存储在默认位置的产物。使用 list 命令查看产物位置。如果找不到实验或实验已被标记为删除,则命令将引发错误。

标记为删除的实验可以使用 restore 命令恢复,除非它们已被永久删除。

删除的具体实现取决于后端存储。FileStore 将标记为删除的实验移动到用于实例化 FileStore 的主文件夹下的 .trash 文件夹中。标记为删除的实验可以通过清理 .trash 文件夹来永久删除。建议使用 cron 作业或备用工作流机制来清理 .trash 文件夹。

用法

mlflow experiments delete [OPTIONS]

选项

-x, --experiment-id <experiment_id>

必需

get

通过 ID 或名称获取实验详细信息。

显示实验信息,包括名称、产物位置、生命周期阶段、标签、创建时间和最后更新时间。

示例
# Get experiment by ID in table format (default)
mlflow experiments get --experiment-id 1

# Get experiment by name
mlflow experiments get --experiment-name "My Experiment"

# Get experiment in JSON format
mlflow experiments get --experiment-name "My Experiment" --output json

# Using short options
mlflow experiments get -x 0
mlflow experiments get -n "Default"

用法

mlflow experiments get [OPTIONS]

选项

-x, --experiment-id <experiment_id>

要获取的实验 ID。

-n, --experiment-name <experiment_name>

要获取的实验名称。

--output <output>

输出格式:‘table’(默认)或 ‘json’。

选项

json | table

rename

重命名活动实验。如果实验处于非活动状态,则返回错误。

用法

mlflow experiments rename [OPTIONS]

选项

-x, --experiment-id <experiment_id>

必需

--new-name <new_name>

必需

restore

恢复已删除的实验。这也适用于实验的元数据、运行和关联数据。如果实验已经是活动的、无法找到或已永久删除,命令将引发错误。

用法

mlflow experiments restore [OPTIONS]

选项

-x, --experiment-id <experiment_id>

必需

update

更新实验跟踪存档策略控制。

跟踪存档选项配置或请求服务器拥有的存档行为。它们不会直接从客户端执行存档工作。

用法

mlflow experiments update [OPTIONS]

选项

-x, --experiment-id <experiment_id>

必需

--trace-archival-retention <trace_archival_retention>

设置实验级别的跟踪存档保留覆盖,持续时间为 ‘30d’ 或 ‘12h’。这仅配置服务器拥有的存档策略。

--clear-trace-archival-retention

清除实验级别的跟踪存档保留覆盖,以便应用更广泛的策略。

--trace-archive-now

在下一次调度程序传递中为此实验请求立即存档处理。这仅标记实验;它不会直接执行存档。

--trace-archive-now-older-than <trace_archive_now_older_than>

在下一次调度程序传递中,为早于给定持续时间的跟踪请求立即存档处理。这仅标记实验;它不会直接执行存档。

--clear-trace-archive-now

清除此实验的挂起立即存档请求。

gateway

管理 MLflow 网关服务

用法

mlflow gateway [OPTIONS] COMMAND [ARGS]...

start

启动 MLflow 网关服务

用法

mlflow gateway start [OPTIONS]

选项

--config-path <config_path>

必需 网关配置文件的路径。

--host <host>

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

--port <port>

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

--workers <workers>

工作进程数量。

环境变量

MLFLOW_GATEWAY_CONFIG

提供 --config-path 的默认值

gc

从指定的后端存储中永久删除 deleted 生命周期阶段的运行。此命令删除与指定运行相关的所有产物和元数据。如果提供的产物 URL 无效,则将跳过产物删除,并继续 gc 进程。

注意

如果您运行的 MLflow 跟踪服务器启用了产物代理,您必须在运行此命令之前设置 MLFLOW_TRACKING_URI 环境变量。否则,gc 命令将无法解析产物 URI,也无法删除相关产物。

什么会被删除

此命令永久删除

  • 运行元数据:后端存储中的参数、指标、标签和所有其他运行信息

  • 产物:存储在运行产物位置的所有文件(模型、图表、数据文件等)

  • 实验元数据:删除实验时,会删除实验记录及所有关联数据

  • 作业记录:使用 –jobs 标志时,会从作业表中删除历史作业记录

注意

此命令仅考虑生命周期阶段和指定的删除标准。它不会检查固定的(pinned)运行、注册模型或标签。固定是仅 UI 的功能,对垃圾回收没有影响。运行必须处于 deleted 生命周期阶段才能被永久删除。

示例

# Delete all runs that have been in the deleted state for more than 30 days
mlflow gc --older-than 30d

# Delete specific runs by ID (they must be in deleted state)
mlflow gc --run-ids 'run1,run2,run3'

# Delete all runs in specific experiments (experiments must be in deleted state)
mlflow gc --experiment-ids 'exp1,exp2'

# Combine criteria: delete runs older than 7 days in specific experiments
mlflow gc --older-than 7d --experiment-ids 'exp1,exp2'

# Delete deleted resources across all workspaces
mlflow gc --all-workspaces --older-than 30d

# Delete all finalized jobs older than 7 days (requires --jobs flag)
mlflow gc --jobs --older-than 7d

# Delete specific jobs by ID
mlflow gc --job-ids 'job1,job2,job3'

用法

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>

用于解析工件上传/下载/列表请求的基本工件位置(例如 ‘s3://my-bucket’)。此选项仅在跟踪服务器配置为流式传输工件且实验的工件根目录为 http 或 mlflow-artifacts URI 时适用。否则,将使用默认的工件位置。

--run-ids <run_ids>

可选,以逗号分隔的运行 ID 列表,用于永久删除。如果未指定运行 ID,则移除处于 deleted 生命周期阶段的所有运行的数据。

--experiment-ids <experiment_ids>

可选,以逗号分隔的实验 ID 列表,用于永久删除实验及其所有关联的运行。如果未指定实验 ID,则移除处于 deleted 生命周期阶段的所有实验的数据。

--logged-model-ids <logged_model_ids>

可选,以逗号分隔的已记录模型 ID 列表,用于永久删除。如果未指定已记录模型 ID,则移除处于 deleted 生命周期阶段的所有已记录模型的数据。

--jobs

启用作业清理。如果没有此标志,则不会删除任何作业。启用后,除非通过 --older-than 或 --job-ids 过滤,否则将删除所有作业。此选项仅适用于数据库后端。

--job-ids <job_ids>

可选,以逗号分隔的作业 ID 列表,用于永久删除。可带或不带 --jobs 标志使用。如果同时指定了 --older-than,则仅删除同时满足这两个过滤条件的作业。

--tracking-uri <tracking_uri>

用于删除“已删除”运行的跟踪 URI,例如 http://127.0.0.1:8080

--workspace <workspace>

启用工作区时的删除目标工作区。默认为活动工作区 (MLFLOW_WORKSPACE)。

--all-workspaces

跨所有工作区删除已删除的资源(仅限工作区模式)。

环境变量

MLFLOW_ARTIFACTS_DESTINATION

--artifacts-destination 提供默认值

MLFLOW_WORKSPACE

--workspace 提供默认值

mcp

MLflow 的模型上下文协议 (MCP) 服务器。MCP 使 LLM 应用程序能够以编程方式与 MLflow 跟踪进行交互。

用法

mlflow mcp [OPTIONS] COMMAND [ARGS]...

run

运行 MLflow MCP 服务器。这将启动一个服务器,向兼容 MCP 的客户端(如 Claude Desktop 或其他 AI 助手)公开 MLflow 跟踪操作。

用法

mlflow mcp run [OPTIONS]

migrate-filestore

将 MLflow FileStore 数据迁移到 SQLite 数据库。

用法

mlflow migrate-filestore [OPTIONS]

选项

--source <source>

必需 包含 mlruns/ FileStore 数据的根目录。

--target <target>

必需 SQLite URI (例如 sqlite:///mlflow.db)。

--progress, --no-progress

在迁移过程中显示每个实验的进度消息。

models

在本地部署 MLflow 模型。

要部署关联到跟踪服务器上运行的模型,请将 MLFLOW_TRACKING_URI 环境变量设置为所需服务器的 URL。

用法

mlflow models [OPTIONS] COMMAND [ARGS]...

build-docker

构建一个 Docker 镜像,其默认入口点使用 python_function flavor 在 8080 端口服务 MLflow 模型。如果调用 build-docker 时指定了 --model-uri,则容器将服务该 URI 引用的模型。如果调用 build_docker 时未指定 --model-uri,则必须将 MLflow 模型目录作为卷挂载到容器内的 /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以提高性能,除非模型 flavor 是 ["johnsnowlabs", "h2o", "spark"] 之一。如果您需要为其他 flavor 安装 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.cn/docs/latest/tracking.html#artifact-stores

-n, --name <name>

用于构建镜像的名称

--env-manager <env_manager>

如果指定,使用指定的环境管理器为 MLmodel 创建环境。支持以下值

- local: 使用本地环境
- virtualenv: 使用 venv(以及用于 Python 版本管理的 pyenv)
- uv: 使用 uv
- conda: 使用 conda

如果未指定,默认为 virtualenv。

--mlflow-home <PATH>

MLflow 项目本地克隆的路径。仅用于开发。

--install-java <install_java>

如果需要,在镜像中安装 Java。默认为 None,由 MLflow 决定是否安装。需要 Java 的 flavor(如 Spark)会自动启用此功能。注意:此选项仅适用于 UBUNTU 基础镜像;Python 基础镜像不支持 Java 安装。

--install-mlflow

如果指定且有 conda、virtualenv 或 uv 环境需要激活,MLflow 将在环境激活后安装到该环境中。安装的 mlflow 版本将与调用此命令时所使用的版本一致。

generate-dockerfile

生成一个包含 Dockerfile 的目录,其默认入口点使用 python_function flavor 在 8080 端口服务 MLflow 模型。生成的 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.cn/docs/latest/tracking.html#artifact-stores

-d, --output-directory <output_directory>

存储生成的 Dockerfile 的输出目录。

--env-manager <env_manager>

如果指定,使用指定的环境管理器为 MLmodel 创建环境。支持以下值

- local: 使用本地环境
- virtualenv: 使用 venv(以及用于 Python 版本管理的 pyenv)
- uv: 使用 uv
- conda: 使用 conda

如果未指定,默认为 None,MLflow 将根据模型的 flavor 配置自动选择环境管理器。如果指定了 model-uri:如果 flavor 配置中指定了 python 版本且不需要安装 java,则使用本地环境。否则使用 virtualenv。如果未提供 model-uri,则使用 virtualenv。

--mlflow-home <PATH>

MLflow 项目本地克隆的路径。仅用于开发。

--install-java <install_java>

如果需要,在镜像中安装 Java。默认为 None,由 MLflow 决定是否安装。需要 Java 的 flavor(如 Spark)会自动启用此功能。注意:此选项仅适用于 UBUNTU 基础镜像;Python 基础镜像不支持 Java 安装。

--install-mlflow

如果指定且有 conda、virtualenv 或 uv 环境需要激活,MLflow 将在环境激活后安装到该环境中。安装的 mlflow 版本将与调用此命令时所使用的版本一致。

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.cn/docs/latest/tracking.html#artifact-stores

-i, --input-path <input_path>

包含用于预测的 pandas DataFrame 的 CSV 文件。

-o, --output-path <output_path>

将结果作为 JSON 文件输出到的文件。如果未提供,则输出到 stdout。

-t, --content-type <content_type>

输入文件的内容类型。可以是 {‘json’, ‘csv’} 之一。

--env-manager <env_manager>

如果指定,使用指定的环境管理器为 MLmodel 创建环境。支持以下值

- local: 使用本地环境
- virtualenv: 使用 venv(以及用于 Python 版本管理的 pyenv)
- uv: 使用 uv
- conda: 使用 conda

如果未指定,默认为 virtualenv。

--install-mlflow

如果指定且有 conda、virtualenv 或 uv 环境需要激活,MLflow 将在环境激活后安装到该环境中。安装的 mlflow 版本将与调用此命令时所使用的版本一致。

-r, --pip-requirements-override <pip_requirements_override>

指定覆盖模型中定义的依赖项的包和版本。必须是逗号分隔的字符串,例如 x==y,z==a。

--env <env>

运行模型时要设置的额外环境变量。必须是键值对,例如 –env key=value

prepare-env

执行预测或服务模型所需的任何准备工作,例如下载依赖项或初始化 conda 环境。准备工作完成后,调用 predict 或 serve 应能快速响应。

用法

mlflow models prepare-env [OPTIONS]

选项

-m, --model-uri <URI>

必需 模型 URI。本地路径、‘runs:/’ URI 或远程存储 URI(例如 ‘s3://’ URI)。有关模型产物支持的远程 URI 的更多信息,请参阅 https://mlflow.org.cn/docs/latest/tracking.html#artifact-stores

--env-manager <env_manager>

如果指定,使用指定的环境管理器为 MLmodel 创建环境。支持以下值

- local: 使用本地环境
- virtualenv: 使用 venv(以及用于 Python 版本管理的 pyenv)
- uv: 使用 uv
- conda: 使用 conda

如果未指定,默认为 virtualenv。

--install-mlflow

如果指定且有 conda、virtualenv 或 uv 环境需要激活,MLflow 将在环境激活后安装到该环境中。安装的 mlflow 版本将与调用此命令时所使用的版本一致。

serve

通过在指定的主机和端口启动 Web 服务器来服务使用 MLflow 保存的模型。该命令支持具有 python_functioncrate (R Function) flavor 的模型。有关 Web 服务器接受的输入数据格式的信息,请参阅以下文档: https://www.mlflow.org/docs/latest/models.html#built-in-deployment-tools

警告

如果在使用 MLflow 2.x 的环境中执行,使用 MLflow 1.x 构建的模型将需要调整端点请求负载。在 1.x 中,请求负载的格式为: {'columns': [str], 'data': [[...]]}。2.x 模型需要由 dataframe_splitinstancesinputsdataframe_records 的结构定义键定义的负载。请参阅下面的示例,了解 2.0 中调用 API 端点的更改演示。

注意

以 pandas DataFrame 结构发出的请求可以采用 splitrecords 导向的格式。有关将 pandas DataFrame 转换为 JSON 的导向格式的详细信息,请参阅 https://pandas.ac.cn/docs/reference/api/pandas.DataFrame.to_json.html

示例

$ 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.cn/docs/latest/tracking.html#artifact-stores

-p, --port <port>

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

-h, --host <HOST>

绑定服务器的网络接口(默认:127.0.0.1)。这控制哪些网络接口接受连接。使用 ‘127.0.0.1’ 进行仅限本地访问,或使用 ‘0.0.0.0’ 允许来自任何网络的连接。注意:这不是安全设置 - 它仅控制网络绑定。要限制可以连接的客户端,请使用 –allowed-hosts。

-t, --timeout <timeout>

服务请求的超时时间(秒)(默认:60)。

-w, --workers <workers>

服务 mlflow 模型时处理请求的 uvicorn 工作进程数量(默认:1)。

--env-manager <env_manager>

如果指定,使用指定的环境管理器为 MLmodel 创建环境。支持以下值

- local: 使用本地环境
- virtualenv: 使用 venv(以及用于 Python 版本管理的 pyenv)
- uv: 使用 uv
- conda: 使用 conda

如果未指定,默认为 virtualenv。

--no-conda

如果指定,使用本地环境。

--install-mlflow

如果指定且有 conda、virtualenv 或 uv 环境需要激活,MLflow 将在环境激活后安装到该环境中。安装的 mlflow 版本将与调用此命令时所使用的版本一致。

环境变量

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 需求说明符的列表。请参见下文示例。

使用示例

# 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),因为模型注册表中的工件旨在为只读。也不支持编辑只读工件仓库中的需求。

如果添加需求,该函数将覆盖任何重叠的现有需求,否则将新需求附加到现有列表中。

如果删除需求,该函数将忽略任何版本说明符,并删除所有指定的包名称。现有文件中未找到的任何需求都将被忽略。

用法

mlflow models update-pip-requirements [OPTIONS] {add|remove}
                                      [REQUIREMENT_STRINGS]...

选项

-m, --model-uri <URI>

必需 模型 URI。本地路径、‘runs:/’ URI 或远程存储 URI(例如 ‘s3://’ URI)。有关模型产物支持的远程 URI 的更多信息,请参阅 https://mlflow.org.cn/docs/latest/tracking.html#artifact-stores

参数

OPERATION

必需参数

REQUIREMENT_STRINGS

可选参数

run

从给定的 URI 运行 MLflow 项目。

对于本地运行,运行将阻塞直到完成。否则,项目将异步运行。

如果在本地运行(默认),URI 可以是 Git 仓库 URI 或本地路径。如果在 Databricks 上运行,URI 必须是 Git 仓库。

默认情况下,Git 项目在带有给定参数的新工作目录中运行,而本地项目从项目的根目录运行。

用法

mlflow run [OPTIONS] URI

选项

-e, --entry-point <NAME>

项目中的入口点。[默认值:main]。如果未找到入口点,则尝试以指定名称作为脚本运行项目文件,使用 ‘python’ 运行 .py 文件,并使用默认 shell(由环境变量 $SHELL 指定)运行 .sh 文件。

-v, --version <VERSION>

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

-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 valuedocker run –name 传递。

--experiment-name <experiment_name>

启动运行所属的实验名称。如果未指定,将使用 ‘experiment-id’ 选项启动运行。

--experiment-id <experiment_id>

启动运行所属的实验 ID。

-b, --backend <BACKEND>

用于运行的执行后端。支持的值:‘local’、‘databricks’、kubernetes (实验性)。默认为 ‘local’。如果针对 Databricks 运行,将针对以下方式确定的 Databricks 工作区运行:如果已设置 ‘databricks://profile’ 形式的 Databricks 跟踪 URI(例如通过设置 MLFLOW_TRACKING_URI 环境变量),则针对由 <profile> 指定的工作区运行。否则,针对默认 Databricks CLI 配置文件的 workspace 运行。有关配置 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: 使用 venv(以及用于 Python 版本管理的 pyenv)
- uv: 使用 uv
- conda: 使用 conda

如果未指定,将根据项目配置自动选择适当的环境管理器。例如,如果 MLproject.yaml 包含 python_env 键,则使用 virtualenv。

--storage-dir <storage_dir>

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

--run-id <RUN_ID>

如果指定,将使用给定的运行 ID,而不是创建新运行。注意:此参数在内部由 MLflow 项目 API 使用,不应指定。

--run-name <RUN_NAME>

与项目执行关联的 MLflow 运行名称。如果未指定,MLflow 运行名称将保持未设置状态。

--build-image

仅对 Docker 项目有效。如果指定,构建一个新的 Docker 镜像,该镜像基于 MLproject 文件中的 image 字段指定的镜像,并包含项目目录中的文件。

默认值

False

参数

URI

必需参数

环境变量

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]...

create

创建一个新的 MLflow 运行并立即以指定状态结束它。

此命令对于以编程方式创建用于测试、脚本编写或记录已完成实验的运行非常有用。运行将被创建并立即以指定状态(FINISHED、FAILED 或 KILLED)关闭。

用法

mlflow runs create [OPTIONS]

选项

--experiment-id <experiment_id>

创建运行所属的实验 ID。必须指定此项或 --experiment-name。

--experiment-name <experiment_name>

创建运行所属的实验名称。必须指定此项或 --experiment-id。

--run-name <run_name>

运行的可选人类可读名称(例如 ‘baseline-model-v1’)。

--description <description>

关于此运行代表什么的更长描述(可选)。

-t, --tags <tags>

用于对运行进行分类和过滤的键值对。可多次使用以设置多个标签。格式:key=value(例如 env=prod, model=xgboost, version=1.0)。

--status <status>

运行的最终状态。选项:FINISHED(默认)、FAILED 或 KILLED。

选项

FINISHED | FAILED | KILLED

--parent-run-id <parent_run_id>

在父运行下创建嵌套运行的可选父运行 ID。

环境变量

MLFLOW_EXPERIMENT_ID

--experiment-id 提供默认值

MLFLOW_EXPERIMENT_NAME

--experiment-name 提供默认值

delete

标记运行以供删除。如果运行不存在或已被标记,则返回错误。您可以使用 restore_run 恢复已标记的运行,或在后端存储中永久删除运行。

用法

mlflow runs delete [OPTIONS]

选项

--run-id <run_id>

必需

describe

运行的所有详细信息将以 JSON 格式打印到 stdout。

用法

mlflow runs describe [OPTIONS]

选项

--run-id <run_id>

必需

list

列出已配置的跟踪服务器中指定实验的所有运行。

用法

mlflow runs list [OPTIONS]

选项

--experiment-id <experiment_id>

必需 指定运行列表的实验 ID。

-v, --view <view>

选择实验列表的视图类型。有效的视图类型为 ‘active_only’ (默认)、‘deleted_only’ 和 ‘all’。

环境变量

MLFLOW_EXPERIMENT_ID

--experiment-id 提供默认值

restore

恢复已删除的运行。如果运行处于活动状态或已永久删除,则返回错误。

用法

mlflow runs restore [OPTIONS]

选项

--run-id <run_id>

必需

sagemaker

在 SageMaker 上服务模型。

要服务关联到跟踪服务器上运行的模型,请将 MLFLOW_TRACKING_URI 环境变量设置为所需服务器的 URL。

用法

mlflow sagemaker [OPTIONS] COMMAND [ARGS]...

build-and-push-container

构建新的 MLflow Sagemaker 镜像,分配名称,并推送到 ECR。

此函数构建 MLflow Docker 镜像。镜像是在本地构建的,需要 Docker 才能运行。镜像被推送到当前活动的 AWS 账户和当前活动的 AWS 区域下的 ECR。

用法

mlflow sagemaker build-and-push-container [OPTIONS]

选项

--build, --no-build

如果设置,则构建容器。

--push, --no-push

如果设置,则将容器推送到 AWS ECR。

-c, --container <container>

镜像名称

--network <network>

设置 docker 构建期间 RUN 指令的网络模式。例如,在 SageMaker JupyterLab 中构建时,使用 ‘–network sagemaker’。

--install-java <install_java>

如果需要,在镜像中安装 Java。默认为 None,由 MLflow 决定是否安装。需要 Java 的 flavor(如 Spark)会自动启用此功能。注意:此选项仅适用于 UBUNTU 基础镜像;Python 基础镜像不支持 Java 安装。

--env-manager <env_manager>

如果指定,使用指定的环境管理器为 MLmodel 创建环境。支持以下值

- local: 使用本地环境
- virtualenv: 使用 venv(以及用于 Python 版本管理的 pyenv)
- uv: 使用 uv
- conda: 使用 conda

如果未指定,默认为 virtualenv。

--mlflow-home <PATH>

MLflow 项目本地克隆的路径。仅用于开发。

deploy-transform-job

将模型作为批处理转换作业部署在 Sagemaker 上。当前活动的 AWS 账户需要设置正确的权限。

默认情况下,除非指定了 --async 标志,否则此命令将阻塞,直到批处理转换作业完成(明确成功或失败)或指定的超时时间已过。

用法

mlflow sagemaker deploy-transform-job [OPTIONS]

选项

-n, --job-name <job_name>

必需 转换作业名称

-m, --model-uri <URI>

必需 模型 URI。本地路径、‘runs:/’ URI 或远程存储 URI(例如 ‘s3://’ URI)。有关模型产物支持的远程 URI 的更多信息,请参阅 https://mlflow.org.cn/docs/latest/tracking.html#artifact-stores

--input-data-type <input_data_type>

必需 转换作业的输入数据类型

-u, --input-uri <input_uri>

必需 输入数据的 S3 键名称前缀或清单

--content-type <content_type>

必需 数据的多用途互联网邮件扩展 (MIME) 类型

-o, --output-path <output_path>

必需 用于存储 Sagemaker 转换作业输出结果的 S3 路径

--compression-type <compression_type>

转换数据的压缩类型

-s, --split-type <split_type>

将转换作业的数据文件拆分为更小批次的方法

-a, --accept <accept>

输出数据的多用途互联网邮件扩展 (MIME) 类型

--assemble-with <assemble_with>

将转换作业的结果组合为单个 S3 对象的方法

--input-filter <input_filter>

用于为转换作业选择部分输入数据的 JSONPath 表达式

--output-filter <output_filter>

用于从转换作业中选择部分输出数据的 JSONPath 表达式

-j, --join-resource <join_resource>

与转换数据连接的数据源

-e, --execution-role-arn <execution_role_arn>

SageMaker 执行角色

-b, --bucket <bucket>

用于存储模型工件的 S3 存储桶

-i, --image-url <image_url>

Docker 镜像的 ECR URL

--region-name <region_name>

部署转换作业所在的 AWS 区域名称

-t, --instance-type <instance_type>

执行批处理转换作业的 SageMaker ML 实例类型。有关支持的实例类型列表,请参阅 https://aws.amazon.com/sagemaker/pricing/instance-types/。

-c, --instance-count <instance_count>

执行批处理转换作业的 SageMaker ML 实例数量

-v, --vpc-config <vpc_config>

包含 JSON 格式 VPC 配置的文件路径。此配置将在创建与此应用程序关联的新 SageMaker 模型时使用。有关更多信息,请参阅 https://docs.aws.amazon.com/sagemaker/latest/dg/API_VpcConfig.html

-f, --flavor <flavor>

用于部署的 flavor 名称。必须是以下之一:[‘python_function’]。如果未指定,将自动从模型可用的 flavor 中选择一个。

--archive

如果指定,批处理转换作业完成后,任何变为非活动状态的 SageMaker 资源都将被保留。这些资源可能包括关联的 SageMaker 模型和模型工件。否则,如果未指定 –archive,这些资源将被删除。当使用 –async 异步部署时,必须指定 –archive

--async

如果指定,此命令将在启动部署过程后立即返回。它不会等待部署过程完成。调用者负责通过原生 SageMaker API 或 AWS 控制台监控部署过程。

--timeout <timeout>

如果命令同步执行,如果未获得明确结果(成功或失败),部署过程将在指定的秒数后返回。函数返回后,调用者负责通过原生 SageMaker API 或 AWS 控制台监控挂起部署的健康状况和状态。如果使用 –async 标志异步执行命令,则忽略此值。

push-model

将 MLflow 模型推送到 Sagemaker 模型注册表。当前活动的 AWS 账户需要设置正确的权限。

用法

mlflow sagemaker push-model [OPTIONS]

选项

-n, --model-name <model_name>

必需 Sagemaker 模型名称

-m, --model-uri <URI>

必需 模型 URI。本地路径、‘runs:/’ URI 或远程存储 URI(例如 ‘s3://’ URI)。有关模型产物支持的远程 URI 的更多信息,请参阅 https://mlflow.org.cn/docs/latest/tracking.html#artifact-stores

-e, --execution-role-arn <execution_role_arn>

SageMaker 执行角色

-b, --bucket <bucket>

用于存储模型工件的 S3 存储桶

-i, --image-url <image_url>

Docker 镜像的 ECR URL

--region-name <region_name>

推送 Sagemaker 模型所在的 AWS 区域名称

-v, --vpc-config <vpc_config>

包含 JSON 格式 VPC 配置的文件路径。此配置将在创建新的 SageMaker 模型时使用。有关更多信息,请参阅 https://docs.aws.amazon.com/sagemaker/latest/dg/API_VpcConfig.html

-f, --flavor <flavor>

用于部署的 flavor 名称。必须是以下之一:[‘python_function’]。如果未指定,将自动从模型可用的 flavor 中选择一个。

terminate-transform-job

终止指定的 Sagemaker 批处理转换作业。除非指定了 --archive,否则与批处理转换作业关联的所有 SageMaker 资源也会被删除。

默认情况下,除非指定了 --async 标志,否则此命令将阻塞,直到终止过程完成(明确成功或失败)或指定的超时时间已过。

用法

mlflow sagemaker terminate-transform-job [OPTIONS]

选项

-n, --job-name <job_name>

必需 转换作业名称

-r, --region-name <region_name>

部署转换作业所在的 AWS 区域名称

--archive

如果指定此项,则保留与应用程序关联的资源。这些资源可能包括未使用的 SageMaker 模型和模型工件。否则,如果未指定 –archive,则会删除这些资源。在通过 –async 进行异步删除时,必须指定 –archive

--async

如果指定此项,该命令将在启动终止过程后立即返回。它不会等待终止过程完成。调用方负责通过原生 SageMaker API 或 AWS 控制台监控终止过程。

--timeout <timeout>

如果同步执行该命令,且未获得最终结果(成功或失败),终止过程将在指定的秒数后返回。一旦函数返回,调用方负责通过原生 SageMaker API 或 AWS 控制台监控挂起终止的运行状况和状态。如果使用 –async 标志异步执行命令,则此值将被忽略。

scorers (评分器)

管理评分器,包括 LLM(大语言模型)评判器。要管理与跟踪服务器关联的评分器,请将 MLFLOW_TRACKING_URI 环境变量设置为所需服务器的 URL。

用法

mlflow scorers [OPTIONS] COMMAND [ARGS]...

list (列出)

列出实验中已注册的评分器,或列出所有内置评分器。

示例
# List built-in scorers (table format)
mlflow scorers list --builtin
mlflow scorers list -b

# List built-in scorers (JSON format)
mlflow scorers list --builtin --output json

# List registered scorers in table format (default)
mlflow scorers list --experiment-id 123

# List registered scorers in JSON format
mlflow scorers list --experiment-id 123 --output json

# Using environment variable for experiment ID
export MLFLOW_EXPERIMENT_ID=123
mlflow scorers list

用法

mlflow scorers list [OPTIONS]

选项

-x, --experiment-id <experiment_id>

要列出评分器的实验 ID。可通过 MLFLOW_EXPERIMENT_ID 环境变量设置。

-b, --builtin

列出内置评分器,而不是实验中已注册的评分器。

--output <output>

输出格式:‘table’ 表示格式化表格(默认),‘json’ 表示 JSON 格式。

选项

table | json

环境变量

MLFLOW_EXPERIMENT_ID

--experiment-id 提供默认值

register-llm-judge (注册 LLM 评判器)

在指定的实验中注册一个 LLM 评判器评分器。

该命令使用自然语言指令创建一个 LLM 评判器,并将其注册到实验中,以用于评估工作流。指令必须至少包含一个模板变量({{ inputs }}{{ outputs }}{{ expectations }}{{ trace }})来定义评判器将评估的内容。

示例
# Register a basic quality judge
mlflow scorers register-llm-judge -n quality_judge \
    -i "Evaluate if {{ outputs }} answers {{ inputs }}. Return yes or no." -x 123

# Register a judge with custom model
mlflow scorers register-llm-judge -n custom_judge \
    -i "Check whether {{ outputs }} is professional and formal. Rate pass, fail, or na" \
    -m "openai:/gpt-4" -x 123

# Register a judge with description
mlflow scorers register-llm-judge -n quality_judge \
    -i "Evaluate if {{ outputs }} answers {{ inputs }}. Return yes or no." \
    -d "Evaluates response quality and relevance" -x 123

# Using environment variable
export MLFLOW_EXPERIMENT_ID=123
mlflow scorers register-llm-judge -n my_judge \
    -i "Check whether {{ outputs }} contains PII"

用法

mlflow scorers register-llm-judge [OPTIONS]

选项

-n, --name <name>

必填 评判器评分器的名称

-i, --instructions <instructions>

必填 评估指令。必须至少包含一个模板变量:{{ inputs }}{{ outputs }}{{ expectations }}{{ trace }}。有关变量解释,请参阅 make_judge 文档。

-m, --model <model>

用于评估的模型标识符(例如 openai:/gpt-4)。如果未提供,则使用默认模型。

-x, --experiment-id <experiment_id>

必填 用于注册评判器的实验 ID。可通过 MLFLOW_EXPERIMENT_ID 环境变量设置。

-d, --description <description>

对评判器所评估内容的描述。

--base-url <base_url>

用于路由请求的基准 URL。对于需要在内部网关或安全代理访问 LLM 的企业环境非常有用。注意:当注册评判器时,此值不会被持久化。

--extra-headers <extra_headers>

包含在向 LLM 提供商发送请求时的附加 HTTP 标头的 JSON 字符串。示例:‘{“X-API-Key”: “secret”}’。注意:当注册评判器时,此值不会被持久化。

环境变量

MLFLOW_EXPERIMENT_ID

--experiment-id 提供默认值

server (服务器)

运行带有内置安全中间件的 MLflow 跟踪服务器。

服务器默认监听 https://:5000,并且仅接受来自本地机器的连接。要使服务器接受来自其他机器的连接,您需要传递 --host 0.0.0.0 以监听所有网络接口(或特定的接口地址)。

有关 MLflow 跟踪服务器安全配置的详细文档和指南,请参阅 https://mlflow.org.cn/docs/latest/tracking/server-security.html

用法

mlflow server [OPTIONS]

选项

--backend-store-uri <PATH>

用于持久化实验和运行数据的 URI。可接受的 URI 是与 SQLAlchemy 兼容的数据库连接字符串(例如 ‘sqlite:///path/to/file.db’)或本地文件系统 URI(例如 ‘file:///absolute/path/to/directory’)。默认情况下,数据将记录到 ./mlruns 目录中。

--read-replica-backend-store-uri <URI>

只读数据库副本的 URI。指定此项后,读取操作(例如 search_runs, get_experiment)将被路由到此 URI,而写入操作使用 –backend-store-uri。通过数据库读取副本实现横向扩展。如果未指定,则所有操作都使用 –backend-store-uri。注意:如果副本变得不可用,不会自动故障转移到主库。云托管数据库(Aurora、RDS)会在 DNS 级别处理此问题。对于自托管设置,请使用连接代理(PgBouncer、HAProxy)进行故障转移。

--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。默认值:True

--artifacts-only

如果指定此项,则配置 MLflow 服务器仅用于代理工件服务。在此模式下,MLflow 跟踪服务的功能(例如运行创建、指标记录和参数记录)将被禁用。服务器将仅公开用于上传、下载和列出工件的端点。默认值:False

--artifacts-destination <URI>

用于解析工件上传/下载/列出请求的基本工件位置(例如 ‘s3://my-bucket’)。默认为本地 ‘./mlartifacts’ 目录。此选项仅在跟踪服务器配置为流式传输工件,且实验的工件根位置为 http 或 mlflow-artifacts URI 时有效。

-h, --host <HOST>

绑定服务器的网络接口(默认:127.0.0.1)。这控制哪些网络接口接受连接。使用 ‘127.0.0.1’ 进行仅限本地访问,或使用 ‘0.0.0.0’ 允许来自任何网络的连接。注意:这不是安全设置 - 它仅控制网络绑定。要限制可以连接的客户端,请使用 –allowed-hosts。

-p, --port <port>

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

-w, --workers <workers>

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

--allowed-hosts <allowed_hosts>

以逗号分隔的允许主机标头列表,以防止 DNS 重绑定攻击(默认:localhost + 私有 IP)。DNS 重绑定允许攻击者诱骗您的浏览器访问内部服务。示例:‘mlflow.company.com,10.0.0.100:5000’。支持通配符:‘mlflow.company.com,192.168.*,app-*.internal.com’。使用 ‘*’ 允许所有主机(不建议用于生产环境)。默认允许:localhost(所有端口)、私有 IP(10.*, 192.168.*, 172.16-31.*)。在将 MLflow 暴露到 localhost 之外时,请设置此项以防止主机标头攻击。

--cors-allowed-origins <cors_allowed_origins>

以逗号分隔的允许 CORS 源列表,以防止跨站请求攻击(默认:任何端口上的 localhost 源)。CORS 攻击允许恶意网站使用您的凭据向您的 MLflow 服务器发送请求。示例:‘https://app.company.com,https://notebook.company.com’。默认允许:https://:*(任何端口)、http://127.0.0.1:*, http://[::1]:*。当您有不同域名上的 Web 应用程序需要访问 MLflow 时,请设置此项。使用 ‘*’ 允许所有源(危险 - 仅限开发使用!)。

--disable-security-middleware

危险:禁用所有安全中间件,包括 CORS 保护和主机验证。这完全移除了安全保护,应仅用于测试。禁用后,您的 MLflow 服务器容易受到 CORS 攻击、DNS 重绑定和点击劫持。建议使用 –cors-allowed-origins 和 –allowed-hosts 配置特定的安全设置。

--x-frame-options <x_frame_options>

用于点击劫持保护的 X-Frame-Options 标头值。选项:‘SAMEORIGIN’(默认 - 仅允许来自同一源的嵌入)、‘DENY’(防止所有嵌入)、‘NONE’(禁用标头 - 允许从任何地方嵌入)。如果您需要将 MLflow UI 嵌入到来自不同源的 iframe 中,请设置为 ‘NONE’。

--static-prefix <static_prefix>

将添加到所有静态路径路径的前缀。

--gunicorn-opts <gunicorn_opts>

转发给 gunicorn 进程的附加命令行选项。

--waitress-opts <waitress_opts>

用于 waitress-serve 的附加命令行选项。

--uvicorn-opts <uvicorn_opts>

转发给 uvicorn 进程的附加命令行选项(默认使用)。

--expose-prometheus <expose_prometheus>

存储指标的目录路径。如果该目录不存在,将创建它。激活 prometheus 导出器以在 /metrics 端点公开指标。

--app-name <app_name>

用于跟踪服务器的应用程序名称。如果未指定,将使用 ‘mlflow.server:app’。

选项

custom_app | basic-auth

--trace-archival-config <PATH>

用于服务器拥有追踪归档的 YAML 配置文件路径。

--dev

如果启用,将以调试日志记录和自动重载模式运行服务器。仅应在开发目的下使用。不能与 ‘–gunicorn-opts’ 或 ‘–uvicorn-opts’ 一起使用。Windows 上不支持。

默认值

False

--secrets-cache-ttl <secrets_cache_ttl>

服务器端机密缓存的生存时间(秒)。控制解密后的机密在内存中的缓存时间(使用 AES-GCM-256 加密)。较低的值(10-30 秒)更安全,但会影响性能。较高的值(120-300 秒)可提高性能,但会增加暴露窗口。范围:10-300 秒。

默认值

60

--secrets-cache-max-size <secrets_cache_max_size>

服务器端机密缓存的最大条目数。超过此数量时,将逐出最近最少使用的条目。范围:1-10000 条目。

默认值

1000

--workspace-store-uri <URI>

用于工作区 CRUD API 和请求路由的工作区提供程序后端 URI。如果未指定,默认指向后端存储 URI。仅在使用利用外部管理工作区(例如 Kubernetes 命名空间)的工作区存储插件时需要指定此项。

--enable-workspaces, --disable-workspaces

启用向后兼容的工作区模式,以实现实验、已注册模型和提示(prompts)的逻辑隔离。

默认值

False

环境变量

MLFLOW_BACKEND_STORE_URI

--backend-store-uri 提供默认值

MLFLOW_READ_REPLICA_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_SERVER_ALLOWED_HOSTS

--allowed-hosts 提供默认值

MLFLOW_SERVER_CORS_ALLOWED_ORIGINS

--cors-allowed-origins 提供默认值

MLFLOW_SERVER_DISABLE_SECURITY_MIDDLEWARE

--disable-security-middleware 提供默认值

MLFLOW_SERVER_X_FRAME_OPTIONS

--x-frame-options 提供默认值

MLFLOW_STATIC_PREFIX

--static-prefix 提供默认值

MLFLOW_GUNICORN_OPTS

--gunicorn-opts 提供默认值

MLFLOW_UVICORN_OPTS

--uvicorn-opts 提供默认值

MLFLOW_EXPOSE_PROMETHEUS

--expose-prometheus 提供默认值

MLFLOW_TRACE_ARCHIVAL_CONFIG

--trace-archival-config 提供默认值

MLFLOW_WORKSPACE_STORE_URI

--workspace-store-uri 提供默认值

skills (技能)

检查随此安装捆绑的 MLflow 技能。

用法

mlflow skills [OPTIONS] COMMAND [ARGS]...

list (列出)

列出随此安装捆绑的 MLflow 技能。

用法

mlflow skills list [OPTIONS]

view (查看)

查看 MLflow 技能的详细信息。

用法

mlflow skills view [OPTIONS] SKILL_NAME

参数

SKILL_NAME

必需参数

traces (追踪)

管理追踪。要管理与跟踪服务器关联的追踪,请将 MLFLOW_TRACKING_URI 环境变量设置为所需服务器的 URL。

追踪模式:info.trace_id # 唯一追踪标识符 info.experiment_id # MLflow 实验 ID info.request_time # 请求时间戳(毫秒) info.execution_duration # 总执行时间(毫秒) info.state # 追踪状态:OK、ERROR 等 info.client_request_id # 可选的客户端提供的请求 ID info.request_preview # 截断的请求预览 info.response_preview # 截断的响应预览 info.trace_metadata.mlflow.* # MLflow 特定的元数据 info.trace_metadata.* # 自定义元数据字段 info.tags.mlflow.traceName # 追踪名称标签 info.tags.<key> # 自定义标签 info.assessments.*.assessment_id # 评估标识符 info.assessments.*.feedback.name # 反馈名称 info.assessments.*.feedback.value # 反馈分数/值 info.assessments.*.feedback.rationale # 反馈解释 info.assessments.*.expectation.name # 基准真值名称 info.assessments.*.expectation.value # 预期值 info.assessments.*.source.source_type # HUMAN(人类)、LLM_JUDGE(大模型评判器)、CODE(代码) info.assessments.*.source.source_id # 来源标识符 info.token_usage # Token 使用量(属性,无法通过字段搜索) data.spans.*.span_id # 单个跨度 (span) ID data.spans.*.name # 跨度操作名称 data.spans.*.parent_id # 父跨度关系 data.spans.*.start_time # 跨度开始时间戳 data.spans.*.end_time # 跨度结束时间戳 data.spans.*.status_code # 跨度状态代码 data.spans.*.attributes.mlflow.spanType # AGENT(代理)、TOOL(工具)、LLM 等 data.spans.*.attributes.<key> # 自定义跨度属性 data.spans.*.events.*.name # 事件名称 data.spans.*.events.*.timestamp # 事件时间戳 data.spans.*.events.*.attributes.<key> # 事件属性

更多详细信息,请参阅:https://mlflow.org.cn/docs/latest/genai/tracing/concepts/trace/#traceinfo-metadata-and-context

字段选择
使用带点表示法的 –extract-fields 来选择特定字段。
示例
info.trace_id # 单个字段
info.assessments.* # 所有评估数据
info.assessments.*.feedback.value # 仅反馈分数
info.assessments.*.source.source_type # 评估来源
info.trace_metadata.mlflow.traceInputs # 原始输入
info.trace_metadata.mlflow.source.type # 来源类型
info.tags.`mlflow.traceName` # 追踪名称(点号使用反引号)
data.spans.* # 所有跨度数据
data.spans.*.name # 跨度操作名称
data.spans.*.attributes.mlflow.spanType # 跨度类型
data.spans.*.events.*.name # 事件名称
info.trace_id,info.state,info.execution_duration # 多个字段

用法

mlflow traces [OPTIONS] COMMAND [ARGS]...

delete (删除)

删除实验中的追踪。

可以指定 –trace-ids 或时间戳标准,但不能同时指定两者。

示例
# 删除特定追踪
mlflow traces delete –experiment-id 1 –trace-ids tr-abc123,tr-def456
# 删除早于某个时间戳的追踪
mlflow traces delete –experiment-id 1 –max-timestamp-millis 1700000000000
# 删除最多 100 个旧追踪
mlflow traces delete –experiment-id 1 –max-timestamp-millis 1700000000000 –max-traces 100

用法

mlflow traces delete [OPTIONS]

选项

-x, --experiment-id <experiment_id>

必填 要在其中搜索的实验 ID。可通过 MLFLOW_EXPERIMENT_ID 环境变量设置。

--trace-ids <trace_ids>

以逗号分隔的要删除的追踪 ID 列表

--max-timestamp-millis <max_timestamp_millis>

删除早于此时间戳的追踪(纪元以来的毫秒数)

--max-traces <max_traces>

要删除的最大追踪数量

环境变量

MLFLOW_EXPERIMENT_ID

--experiment-id 提供默认值

delete-assessment (删除评估)

从追踪中删除评估。

示例
mlflow traces delete-assessment –trace-id tr-abc123 –assessment-id asmt-def456

用法

mlflow traces delete-assessment [OPTIONS]

选项

--trace-id <trace_id>

必需

--assessment-id <assessment_id>

必填 要删除的评估 ID

delete-tag (删除标签)

从追踪中删除标签。

示例
mlflow traces delete-tag –trace-id tr-abc123 –key environment

用法

mlflow traces delete-tag [OPTIONS]

选项

--trace-id <trace_id>

必需

--key <key>

必填 要删除的标签键

evaluate (评估)

使用指定的评分器评估一个或多个追踪,并显示结果。

该命令在指定的追踪上运行 MLflow 的 genai.evaluate(),应用指定的评分器,并以表格或 JSON 格式显示评估结果。

示例
# 使用内置评分器评估单个追踪
mlflow traces evaluate –trace-ids tr-abc123 –scorers Correctness,Safety
# 评估多个追踪
mlflow traces evaluate –trace-ids tr-abc123,tr-def456,tr-ghi789
–scorers RelevanceToQuery
# 以 JSON 输出评估结果
mlflow traces evaluate –trace-ids tr-abc123
–scorers Correctness –output json
# 使用自定义已注册评分器评估
mlflow traces evaluate –trace-ids tr-abc123,tr-def456
–scorers my_custom_scorer,Correctness
可用的内置评分器(使用 PascalCase 或 snake_case)
- Correctness / correctness: 确保响应正确且准确
- Safety / safety: 确保响应不包含有害/有毒内容
- RelevanceToQuery / relevance_to_query: 确保响应直接回答用户输入
- Guidelines / guidelines: 评估对特定约束的遵守情况
- ExpectationsGuidelines / expectations_guidelines: 针对行的准则评估
- RetrievalRelevance / retrieval_relevance: 衡量块(chunk)与输入请求的相关性
- RetrievalSufficiency / retrieval_sufficiency: 评估检索到的文档是否提供了
必要的信息
- RetrievalGroundedness / retrieval_groundedness: 评估响应与
检索到的上下文的一致性

用法

mlflow traces evaluate [OPTIONS]

选项

-x, --experiment-id <experiment_id>

必填 要在其中搜索的实验 ID。可通过 MLFLOW_EXPERIMENT_ID 环境变量设置。

--trace-ids <trace_ids>

必填 以逗号分隔的要评估的追踪 ID 列表。

--scorers <scorers>

必填 以逗号分隔的评分器名称列表。可以是内置评分器(例如 Correctness, Safety, RelevanceToQuery)或注册的自定义评分器。

--output <output_format>

输出格式:‘table’ 表示格式化表格(默认),‘json’ 表示 JSON 格式。

选项

table | json

环境变量

MLFLOW_EXPERIMENT_ID

--experiment-id 提供默认值

get (获取)

所有追踪详情将以 JSON 格式打印到 stdout。

示例
# 获取完整追踪
mlflow traces get –trace-id tr-1234567890abcdef
# 仅获取特定字段
mlflow traces get –trace-id tr-1234567890abcdef
–extract-fields “info.trace_id,info.assessments.*,data.spans.*.name”

用法

mlflow traces get [OPTIONS]

选项

--trace-id <trace_id>

必需

--extract-fields <extract_fields>

使用点表示法过滤并选择特定字段。示例:‘info.trace_id’, ‘info.assessments.*’, ‘data.spans.*.name’。多个字段用逗号分隔。如果未指定,则返回所有追踪数据。

--verbose

当指定无效字段时,在错误消息中显示所有可用字段。

get-assessment (获取评估)

获取评估详情作为 JSON。

示例
mlflow traces get-assessment –trace-id tr-abc123 –assessment-id asmt-def456

用法

mlflow traces get-assessment [OPTIONS]

选项

--trace-id <trace_id>

必需

--assessment-id <assessment_id>

必填 评估 ID

log-expectation (记录基准真值)

将预期(基准真值标签)记录到追踪中。

示例
# 简单的预期答案
mlflow traces log-expectation –trace-id tr-abc123
–name expected_answer –value “Paris”
# 人工标注的基准真值
mlflow traces log-expectation –trace-id tr-abc123
–name ground_truth –value “positive”
–source-type HUMAN –source-id annotator@example.com
# 带有元数据的复杂预期输出
mlflow traces log-expectation –trace-id tr-abc123
–name expected_response
–value ‘{“answer”: “42”, “confidence”: 0.95}’
–metadata ‘{“dataset”: “test_set_v1”, “difficulty”: “hard”}’

用法

mlflow traces log-expectation [OPTIONS]

选项

--trace-id <trace_id>

必需

--name <name>

必填 预期名称(例如 ‘expected_answer’, ‘ground_truth’)

--value <value>

必填 预期值(字符串,或复杂值的 JSON)

--source-type <source_type>

预期的来源类型

选项

HUMAN | LLM_JUDGE | CODE

--source-id <source_id>

来源标识符

--metadata <metadata>

作为 JSON 字符串的附加元数据

--span-id <span_id>

将预期与特定跨度 ID 关联

log-feedback (记录反馈)

将反馈(评估分数)记录到追踪中。

示例
# 简单的数值反馈
mlflow traces log-feedback –trace-id tr-abc123
–name relevance –value 0.9
–rationale “Highly relevant response”
# 带来源的人类反馈
mlflow traces log-feedback –trace-id tr-abc123
–name quality –value good
–source-type HUMAN –source-id reviewer@example.com
# 带有 JSON 值和元数据的复杂反馈
mlflow traces log-feedback –trace-id tr-abc123
–name metrics
–value ‘{“accuracy”: 0.95, “f1”: 0.88}’
–metadata ‘{“model”: “gpt-4”, “temperature”: 0.7}’
# LLM 评判器反馈
mlflow traces log-feedback –trace-id tr-abc123
–name faithfulness –value 0.85
–source-type LLM_JUDGE –source-id gpt-4
–rationale “Response is faithful to context”

用法

mlflow traces log-feedback [OPTIONS]

选项

--trace-id <trace_id>

必需

--name <name>

必填 反馈名称

--value <value>

反馈值(数字、字符串、布尔值,或复杂值的 JSON)

--source-type <source_type>

反馈的来源类型

选项

HUMAN | LLM_JUDGE | CODE

--source-id <source_id>

来源标识符(例如,人类使用电子邮件,LLM 使用模型名称)

--rationale <rationale>

反馈的解释/理由

--metadata <metadata>

作为 JSON 字符串的附加元数据

--span-id <span_id>

将反馈与特定跨度 ID 关联

set-tag (设置标签)

设置追踪的标签。

示例
mlflow traces set-tag –trace-id tr-abc123 –key environment –value production

用法

mlflow traces set-tag [OPTIONS]

选项

--trace-id <trace_id>

必需

--key <key>

必填 标签键

--value <value>

必填 标签值

update-assessment (更新评估)

更新现有评估。

注意:评估名称设置后不可更改。仅可更新 value、rationale(理由)和 metadata(元数据)。

示例
# 更新反馈值和理由
mlflow traces update-assessment –trace-id tr-abc123 –assessment-id asmt-def456
–value ‘{“accuracy”: 0.98}’ –rationale “Updated after review”
# 仅更新理由
mlflow traces update-assessment –trace-id tr-abc123 –assessment-id asmt-def456
–rationale “Revised evaluation”

用法

mlflow traces update-assessment [OPTIONS]

选项

--trace-id <trace_id>

必需

--assessment-id <assessment_id>

必填 要更新的评估 ID

--value <value>

更新后的评估值(JSON)

--rationale <rationale>

更新后的理由

--metadata <metadata>

更新后的 JSON 格式元数据