为什么应使用 MLOps? - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为什么应使用 MLOps?

从运行单独的人工智能和机器学习 (AI/ML) 项目转换为使用 AI/ML 大规模转换业务时,ML 操作 (MLOps) 的规则会有所帮助。MLOps 在项目管理、CI/CD 和质量保证方面考虑了 AI/ML 项目的独特方面,帮助客户改进交付时间、减少缺陷并提高数据科学家的效率。MLOps 是指一种在将DevOps实践应用于机器学习工作负载上构建的方法。您可以查看 AWS 上的DevOps简介白皮书以讨论DevOps原则。在 AWS基础设施上实现 CI/CD,因为代码更深入地使用 AWS 服务实施。

与DevOps一样MLOps 依赖于机器学习开发生命周期的协作和简化方法,其中人员、过程和技术的交集需要优化开发、构建和操作机器学习工作负载所需的端到端活动。

MLOps 专注于数据科学与数据工程的交集以及现有DevOps实践,以简化机器学习开发生命周期中的模型交付。MLOps 是将 ML 工作负载集成到发布管理、CI/CD 和操作中的规则。MLOps 需要集成软件开发、操作、数据工程和数据科学。

MLOps 的挑战

  • 项目管理 - ML 项目涉及数据科学家、相对较新的角色以及通常不集成到跨功能团队中的角色。这些新团队成员通常朗读的技术语言与产品所有者和软件工程师大不相同,这会给将业务需求转换为技术要求这一常见问题变得更加复杂。

  • 通信与协作 - 构建 ML 项目的可见性,并实现不同利益相关者(如数据工程师、数据科学家、ML 工程师和DevOps之间的协作。

  • 一切都是代码

    • 在开发活动中使用生产数据、更长的实验生命周期、对数据管道的依赖、重新训练部署管道以及用于评估模型性能的唯一指标。

    • 模型通常具有独立于与这些模型集成的应用程序和系统的生命周期。

    • 整个端到端系统可通过版本控制的代码和构件进行重现。DevOps项目使用 Infrastructure-as-Code (IaC) 和 Configuration-as-Code (CaC) 构建环境,并使用 Pipelines-as-code 以确保一致的 CI/CD 模式。管道必须与 大数据和 ML 训练工作流集成。这通常意味着我们的管道是传统 CI/CD 工具与其他工作流程引擎的组合。很多 ML 项目存在重要的策略问题,因此我们的管道可能还需要实施这些策略。有偏差的输入数据会产生有偏差的结果,而企业利益相关者对这种情况的关注正在增加。

  • CI/CD

    • 在 MLOps 中,源数据是一流的输入以及源代码。这就是 MLOps 要求在源或推理数据发生更改时对源数据进行版本控制并触发管道运行时的原因。

    • 管道还必须版本化 ML 模型及其输入和其他输出,以提供可追踪性。

    • 自动测试必须包含在构建阶段以及当模型处于生产状态时对 ML 模型的正确验证。

    • 构建阶段可能包括模型训练和重新训练,这是一个耗时且资源密集型过程。管道必须足够精细,才能仅在源数据或 ML 代码发生更改时执行完整训练周期,而不是在相关组件发生更改时执行。

    • 由于机器学习代码通常是整个解决方案的一小部分,因此部署管道还可能包含将您的模型打包为由其他应用程序和系统作为 API 使用所需的其他步骤。

  • 监控和日志记录

    • 在特征工程和模型训练阶段,我们需要捕获模型训练指标以及模型实验。优化 ML 模型需要操作输入数据的形式以及算法超参数,我们需要系统地捕获这些实验。实验跟踪有助于数据科学家更高效地工作,并为我们提供其工作的可重现快照。

    • 部署的 ML 模型需要监控传递到模型进行推理的数据,以及标准终端节点稳定性和性能指标。监控系统还必须捕获模型输出的质量(由适当的 ML 指标评估)。

MLOps 的优势

采用 MLOps 实践可以提供以下优势,让您实现 ML 项目的上市时间更快。

  • 工作效率 - 为自助服务环境提供对辅助数据集的访问权限,使数据工程师和数据科学家能够更快地移动,并减少丢失或无效数据的时间。

  • 可重复性 - 自动化 MLDC 中的所有步骤有助于确保可重复的过程,包括如何训练、评估、版本控制和部署模型。

  • 可靠性 - 通过合并 CI/CD 实践,不仅能够快速部署,而且能够提高质量和一致性。

  • 可审核性 - 对从数据科学实验到源数据再到训练模型的所有输入和输出进行版本控制意味着,我们可以准确地演示模型的构建方式以及模型的部署位置。

  • 数据和模型质量 - 通过使用 MLOps我们可以实施策略来防止模型偏差,并跟踪数据统计属性和模型质量随时间的变化。