本文介绍如何Azure 机器学习注册表将机器学习资产与工作区分离,以便跨开发、测试和生产环境使用 MLOps。 环境可能因 IT 系统的复杂性而有所不同。 以下因素会影响所需的环境的数量和类型:
- 安全和合规性策略。 生产环境可能需要在访问控制、网络体系结构、数据公开等方面与开发环境隔离。
- 订阅。 开发环境和生产环境通常使用单独的订阅进行计费、预算和成本管理。
- 区域。 可能需要部署到不同的 Azure 区域以支持延迟和冗余要求。
在上述场景中,你可能会使用不同的 Azure 机器学习工作区进行开发、测试和生产。 此配置对模型训练和部署提出了以下潜在挑战:
可能需要在开发工作区中训练模型,但要将其部署到生产工作区中的终结点,该终结点可能位于不同的 Azure 订阅或区域中。 在这种情况下,必须能够追溯到该训练作业。 例如,如果在生产部署中遇到准确性或性能问题,则需要分析用于训练模型的指标、日志、代码、环境和数据。
可能需要在开发工作区中使用测试数据或匿名数据开发训练管道,但在生产工作区中使用生产数据重新训练模型。 在这种情况下,您可能需要比较基于样本数据和生产数据得到的训练指标,以确保这些训练优化在实际数据上也能取得良好效果。
借助注册表实现跨工作区 MLOps
注册表(与 Git 存储库类似)将机器学习资产与工作区分离,并将资产托管在中心位置,因此组织中的所有工作区都可以访问它们。 使用注册表来存储和共享模型、环境、组件和数据资产等资产。
若要通过开发、测试和生产环境促进模型,请首先在开发环境中迭代开发模型。 如果具有合适的候选模型,请将其发布到注册表。 然后,可以将模型从注册表部署到不同工作区中的终结点。
提示
如果你已在某个工作区中注册了模型,则可以将这些模型提升到注册表中。 还可以根据训练作业的输出直接在注册表中注册模型。
若要在一个工作区中开发管道然后在其他工作区中运行该管道,请首先注册构成管道基本内容的组件和环境。 提交管道作业时,各工作区特有的计算资源和训练数据将决定该作业在哪个工作区中运行。
下图展示了探索性工作区和开发工作区之间的训练管道提升,然后训练好的模型提升到测试和生产阶段。