本文介绍如何连同 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 的社区主导的示例存储库。