你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 Azure 机器学习中使用 MLflow 项目进行训练(预览版)
本文介绍如何连同 MLflow 项目一起提交训练作业,MLflow 项目使用 Azure 机器学习工作区进行跟踪。 你可以提交作业并仅使用 Azure 机器学习跟踪作业,或者将运行迁移到云,以完全在 Azure 机器学习计算上运行。
警告
对 Azure 机器学习中 MLproject
文件(MLflow 项目)的支持将于 2026 年 9 月完全停用。 MLflow 仍受完全支持,并且仍然是在 Azure 机器学习中跟踪机器学习工作负载的推荐方法。
当继续使用 MLflow 时,我们建议通过使用 Azure CLI 或适用于 Python 的 Azure 机器学习 SDK (v2) 从 MLproject
文件转换为 Azure 机器学习作业。 有关 Azure 机器学习作业的详细信息,请参阅使用 MLflow 跟踪 ML 试验和模型。
MLflow 项目允许你组织和描述你的代码,使其他数据科学家(或自动化工具)可以运行它。 使用 Azure 机器学习的 MLflow 项目使你可以在工作区中跟踪和管理训练运行。
重要
此功能目前处于公开预览状态。 此预览版在提供时没有附带服务级别协议,我们不建议将其用于生产工作负荷。 某些功能可能不受支持或者受限。
有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款。
先决条件
安装 Mlflow SDK 包
mlflow
和适用于 MLflow 的 Azure 机器学习插件azureml-mlflow
:pip install mlflow azureml-mlflow
提示
可以使用
mlflow-skinny
包,它是一个不带 SQL 存储、服务器、UI 或数据科学依赖项的轻型 MLflow 包。 对于主要需要 MLflow 的跟踪和记录功能但不需要导入整个功能套件(包括部署)的用户,建议使用mlflow-skinny
。一个 Azure 机器学习工作区。 若要创建工作区,请参阅创建机器学习资源教程。 查看在工作区中执行 MLflow 操作所需的访问权限。
如果要执行远程跟踪(即跟踪在 Azure 机器学习外部运行的试验),请将 MLflow 配置为指向 Azure 机器学习工作区的跟踪 URI。 有关如何将 MLflow 连接到工作区的详细信息,请参阅为 Azure 机器学习配置 MLflow。
将 Azure 机器学习用作 MLflow 项目的后端需要包
azureml-core
:pip install azureml-core
连接到工作区
如果在 Azure 机器学习外部操作,则需要将 MLflow 配置为指向 Azure 机器学习工作区的跟踪 URI。 可以在为 Azure 机器学习配置 MLflow 中找到说明。
在 Azure 机器学习工作区中跟踪 MLflow 项目
此示例演示如何提交 MLflow 项目并使用 Azure 机器学习跟踪这些项目。
将
azureml-mlflow
包作为 pip 依赖项添加到环境配置文件,以便在工作区中跟踪指标和关键项目。conda.yaml
name: mlflow-example channels: - defaults dependencies: - numpy>=1.14.3 - pandas>=1.0.0 - scikit-learn - pip: - mlflow - azureml-mlflow
提交本地运行并确保设置参数
backend = "azureml"
,该参数在工作区中添加自动跟踪、模型捕获、日志文件、快照和输出错误的支持。 此示例假设你尝试运行的 MLflow 项目位于你当前所在的文件夹 (uri="."
) 中。mlflow run . --experiment-name --backend azureml --env-manager=local -P alpha=0.3
在 Azure 机器学习工作室中查看运行和指标。
在 Azure 机器学习作业中训练 MLflow 项目
此示例演示如何将 MLflow 项目作为在 Azure 机器学习计算上运行的作业提交。
创建后端配置对象,在本例中,我们将指定
COMPUTE
。 此参数引用你要用于运行项目的远程计算群集的名称。 如果COMPUTE
存在,则项目将自动作为 Azure 机器学习作业提交到指定的计算。backend_config.json
{ "COMPUTE": "cpu-cluster" }
将
azureml-mlflow
包作为 pip 依赖项添加到环境配置文件,以便在工作区中跟踪指标和关键项目。conda.yaml
name: mlflow-example channels: - defaults dependencies: - numpy>=1.14.3 - pandas>=1.0.0 - scikit-learn - pip: - mlflow - azureml-mlflow
提交本地运行并确保设置参数
backend = "azureml"
,该参数在工作区中添加自动跟踪、模型捕获、日志文件、快照和输出错误的支持。 此示例假设你尝试运行的 MLflow 项目位于你当前所在的文件夹 (uri="."
) 中。mlflow run . --backend azureml --backend-config backend_config.json -P alpha=0.3
注意
由于 Azure 机器学习作业始终在环境的上下文中运行,因此将忽略参数
env_manager
。在 Azure 机器学习工作室中查看运行和指标。
清理资源
如果不打算使用工作区中记录的指标和项目,目前尚未提供单独删除它们的功能。 可以改为删除包含存储帐户和工作区的资源组,这样就不会产生任何费用:
在 Azure 门户中,选择最左侧的“资源组”。
从列表中选择已创建的资源组。
选择“删除资源组”。
输入资源组名称。 然后选择“删除”。
示例笔记本
将 MLflow 与 Azure 机器学习笔记本配合使用演示了本文中所述的概念,并在这些概念的基础上有所延伸。
注意
可在 https://github.com/Azure/azureml-examples 找到使用 mlflow 的社区主导的示例存储库。