本文介绍如何连同 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 项目使你可以在工作区中跟踪和管理训练运行。
重要
此功能目前处于公开预览状态。 此预览版在提供时没有附带服务级别协议,我们不建议将其用于生产工作负荷。 某些功能可能不受支持或者受限。
有关详细信息,请参阅适用于 Azure 预览版的补充使用条款。
先决条件
- 如下所示,安装 MLflow SDK - mlflow包和适用于 MLflow 的 Azure 机器学习- azureml-mlflow插件。- pip install mlflow azureml-mlflow- 提示 - 可以使用 - mlflow-skinny包,它是一个不带 SQL 存储、服务器、UI 或数据科学依赖项的轻型 MLflow 包。 对于主要需要 MLflow 的跟踪和记录功能但不需要导入整个功能套件(包括部署)的用户,建议使用此包。
- 创建 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 的社区主导的示例存储库。