你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure 机器学习开展 MLOps 模型管理

适用范围:Azure CLI ml 扩展 v2(最新版)Python SDK azure-ai-ml v2(最新版)

本文介绍 Azure 机器学习如何使用机器学习运营 (MLOps) 来管理模型的生命周期。 应用 MLOps 做法可改善机器学习解决方案的质量和一致性。

MLOps 以 DevOps 原则和实践为基础,可提高工作流程的效率,例如持续集成、持续部署和持续交付。 将这些原则应用于机器学习生命周期可产生以下结果:

  • 提升试验和模型的开发速度。
  • 更快地将模型部署到生产环境。
  • 更加出色的质量保证和端到端世系跟踪。

MLOps 功能

MLOps 为机器学习过程提供以下功能:

  • 创建可重复的机器学习管道,以定义数据准备、训练和评分过程的可重复且可重用的步骤。
  • 创建可重用的软件环境用于训练和部署模型。
  • 从任意位置注册、打包和部署模型,并跟踪使用模型所需的关联元数据。
  • 记录机器学习生命周期治理的世系数据,例如发布模型的人员、更改的原因以及在生产中部署或使用模型的时机。
  • 针对机器学习生命周期事件发出通知和警报,例如,试验完成、模型注册、模型部署和数据偏移检测。
  • 监控运营和机器学习相关问题,方法为比较模型输入、探索特定于模型的指标以及查看机器学习基础设施的监控和警报。
  • 实现端到端机器学习生命周期的自动化,方法为使用机器学习管道和 Azure Pipelines 持续测试、更新和推出新的机器学习模型。

有关 MLOps 的详细信息,请参阅机器学习操作

可重现的机器学习管道

使用 Azure 机器学习管道,将模型训练过程中的所有步骤汇聚到一起。 机器学习管道步骤可以包括数据准备、特征提取、超参数调整和模型评估。

在 Azure 机器学习工作室设计器中,可以克隆管道来迭代其设计,而不丢失旧版本。 若要在设计器中随时克隆管道,请选择顶部菜单栏中的“克隆”

有关 Azure 机器学习管道的详细信息,请参阅机器学习管道

可重用的软件环境

Azure 机器学习环境确保无需使用手动软件配置即可重现构建。 环境可以跟踪并重现项目的 pip 和 conda 软件依赖项。

可以使用环境进行模型训练和部署。 有关环境的详细信息,请参阅 Azure 机器学习环境

模型注册、打包和部署

Azure 机器学习可以从任意位置使用 MLOps 来注册、打包和部署模型。

注册和跟踪模型

模型注册在 Azure 云中的 Azure 机器学习工作区中存储模型并更新模型版本。 使用模型注册表,可轻松组织和跟踪定型的模型。

已注册的模型是构成模型的一个或多个文件的逻辑容器。 例如,如果你的模型存储在多个文件中,则可以在 Azure 机器学习工作区中将这些文件注册为单个模型。 注册后,可以下载或部署注册的模型并收到所有组件文件。

还可以注册在 Azure 机器学习之外训练的模型。 Azure 机器学习支持可以使用 Python 3.5.2 或更高版本加载的任何模型。

可以按名称和版本标识已注册的模型。 每次注册与现有模型名称相同的模型时,注册表都会将版本号递增。

可以在注册期间提供元数据标签,并使用这些标签来搜索模型。

重要

无法删除在活动部署中使用的已注册模型。

有关如何在 Azure 机器学习中使用模型的详细信息,请参阅使用 Azure 机器学习中的模型

打包和调试模型

要将模型部署到生产中,必须首先将其打包成 Docker 映像。 大多数情况下,映像创建操作会在部署期间在后台自动发生。 然而,你可以手动指定映像。

首先部署到本地开发环境非常有用,这样你就可以在部署到云之前进行故障排除和调试。 这种做法有助于避免在部署到 Azure 机器学习时出现问题。 有关如何解决常见部署问题的详细信息,请参阅如何对联机终结点进行故障排除

转换和优化模型

可以将模型转换为 Open Neural Network Exchange (ONNX),以尝试提高性能。 一般情况下,转换为 ONNX 可将性能翻倍。

有关包含 Azure 机器学习的 ONNX 的详细信息,请参阅创建和加速机器学习模型一文。

将模型部署为终结点

可以将训练过的机器学习模型作为终结点部署在本地或云端。 部署使用 CPU 和 GPU 进行推理。

若要将模型部署为终结点,需要提供以下信息:

  • 用于对提交到服务或设备的数据进行评分的模型
  • 用于接受请求、使用模型对数据进行评分并返回响应的入口脚本(也称为评分脚本)。
  • 一个描述模型和入口脚本所需的 pip 和 conda 依赖项的环境
  • 模型和入口脚本所需的任何其他资产,例如文本、数据等。

重要

部署 MLflow 模型时,无需为部署提供入口脚本或环境。 有关部署 MLflow 模型的详细信息,请参阅部署 MLflow 模型的指南

你还需要提供目标部署平台的配置,例如虚拟机 (VM) 系列类型、可用内存和核心数。 Azure 机器学习创建映像时,它还会添加所需的任何组件,例如运行 Web 服务所需的资产。

使用批处理终结点进行批量评分

通过批处理终结点支持批评分。 有关批处理评分的详细信息,请参阅批处理终结点

通过联机终结点进行实时评分

可以将模型与联机终结点配合使用以进行实时评分。 联机终结点的计算目标可以是本地开发环境、托管联机终结点或 Azure Kubernetes 服务 (AKS)。

若要将模型部署到联机终结点,需要提供以下信息:

  • 模型或模型系综。
  • 使用模型所需的依赖项,例如接受请求并调用模型和 conda 依赖项的脚本。
  • 用于描述如何以及在何处部署模型的部署配置。

有关实时评分的部署的详细信息,请参阅部署联机终结点

联机终结点的受控推出

部署到联机终结点时,可以使用受控推出来实现以下方案:

  • 为部署创建终结点的多个版本。
  • 通过将流量路由到终结点中的不同部署来执行 A/B 测试。
  • 通过在终结点配置中更新流量百分比,在终结点部署之间进行切换。

有关使用受控推出的部署的详细信息,请参阅针对实时推理执行新部署的安全推出

机器学习生命周期治理的元数据

Azure 机器学习提供使用元数据跟踪所有机器学习资产的端到端审核线索的功能。 例如:

  • Azure 机器学习数据资产可帮助你跟踪、分析数据并控制其版本。
  • 模型可解释性让你可以解释模型、满足法规要求,并了解模型如何针对给定输入提供结果。
  • Azure 机器学习作业历史记录存储用于训练模型的代码、数据和计算的快照。
  • Azure 机器学习模型注册会捕获与模型关联的所有元数据。 例如,哪个试验训练了该模型,模型部署在哪里,以及模型的部署是否正常。
  • 通过使用与 Azure 的集成,你可对机器学习生命周期中的事件采取行动,例如模型注册、部署、数据漂移和训练作业事件。

系统会自动捕获有关模型和数据资产的某些信息,同时你可以使用“标记”添加其他信息。 在工作区中查找已注册的模型和数据资产时,可以使用标记作为筛选条件。

注意

在 Azure 机器学习工作室的“模型”页上的“筛选依据”选项中使用“标签”时,请务必使用不带空格的 TagName=TagValue,而不是 TagName : TagValue

机器学习生命周期事件通知和警报

Azure 机器学习将关键事件发布到 Azure 事件网格,事件网格可用于针对机器学习生命周期中的事件发出通知并自动采取措施。 有关如何基于 Azure 机器学习事件设置事件驱动进程的详细信息,请参阅自定义 CI/CD 和事件驱动的工作流

机器学习生命周期自动化

可以使用 Git 和 Azure Pipelines 来创建用于训练机器学习模型的持续集成过程。 在典型情况下,当数据科学家将更改签入项目的 Git 存储库时,Azure Pipelines 会启动训练作业。

你可以检查作业结果以查看已训练模型的性能特征。 还可以创建一个管道用于将模型部署为 Web 服务。

安装机器学习扩展可以更轻松地使用 Azure Pipelines。 该扩展为 Azure Pipelines 提供以下增强:

  • 定义服务连接时,启用 Azure 机器学习工作区选择。
  • 在训练管道中创建经过训练的模型,以触发 Azure Pipelines 中的部署。

有关将 Azure Pipelines 与 Azure 机器学习配合使用的详细信息,请参阅将 Azure Pipelines 与 Azure 机器学习配合使用

分析

Microsoft Power BI 支持使用机器学习模型进行数据分析。 有关详细信息,请参阅数据流中的 AI