用于 MLOps 的机器学习注册表

在本文中,你将了解如何跨开发、测试和生产环境缩放 MLOps。 环境数量可能因 IT 环境的复杂性而异,并受以下因素的影响:

  • 安全性与合规性策略 - 生产环境是否需要在访问控制、网络体系结构、数据公开等方面与开发环境隔离?
  • 订阅 - 开发环境与生产环境位于不同的订阅中吗? 通常单独的订阅用于计费、预算和成本管理目的。
  • 区域 - 是否需要部署到其他 Azure 区域以支持延迟和冗余要求?

在这种情况下,可以使用不同的 Azure 机器学习工作区进行开发、测试和生产。 此配置对模型训练和部署提出了以下挑战:

  • 需要在开发工作区中训练模型,但要将其部署到生产工作区中的终结点,该终结点可能位于不同的 Azure 订阅或区域中。 在本例中,必须能够跟踪训练作业。 例如,如果在生产部署过程中遇到准确性或性能问题,则分析用于训练模型的指标、日志、代码、环境和数据。
  • 需要在开发工作区中使用测试数据或匿名数据开发训练管道,但在生产工作区中使用生产数据重新训练模型。 在本例中,可能需要比较样本数据与生产数据的训练指标,以确保训练优化在实际数据中表现良好。

具有注册表的跨工作区 MLOps

注册表与 Git 存储库非常相似,它将 ML 资产与工作区分离,并将它们托管在一个中心位置,从而使其可用于组织中的所有工作区。

如果想要跨开发、测试和生产环境提升模型,请从在开发环境中迭代开发模型开始。 如果你有一个好的候选模型,可以将其发布到注册表。 然后,可以将模型从注册表部署到不同工作区中的终结点。

提示

如果已在工作区中注册了模型,则可以将其提升到注册表。 还可以根据训练作业的输出直接在注册表中注册模型。

如果想要在一个工作区中开发管道然后在其他工作区中运行该管道,请首先注册构成管道基本内容的组件和环境。 提交管道作业时,它运行的工作区由计算和训练数据选择,这些数据对每个工作区都是唯一的。

下图说明了探索和开发工作区之间的管道提升,然后是开发、测试和生产之间的模型提升。

Diagram of pipeline and model use across environments.

后续步骤