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