在本文中,我将尝试对 MLOps 进行友好的介绍,并以简单的方式解释关键概念。作为一开始也觉得很难理解的人,我理解有必要对这个主题进行更简单的介绍。我希望在阅读本文后,初学者能够更轻松地阅读有关 MLOps 的更高级文档。
1. MLOps 的动机
由于机器学习技术在各个研究领域的成功,许多公司都试图将其纳入他们的软件系统,以提高效率和解决现实世界的问题。然而,对于许多公司而言,在生产环境中实施机器学习可能是一个具有挑战性且耗时的过程。此外,一旦部署,就必须管理和维护模型,并且必须监控其性能以确保其正常运行。这些任务在大型软件系统中尤其困难。
另一方面,软件工程师使用 DevOps(开发和运营)范式,这是一组促进开发和运营团队之间协作和沟通的实践和工具,以开发和管理他们的系统。这有助于保持开发速度和质量。 MLOps 旨在使这些 DevOps 原则适用于机器学习系统。考虑到这一背景,MLOps 到底是什么?
2. 定义
要定义 MLOps,让我们从检查各种定义开始:
- “MLOps(机器学习操作)是一种范式,包括最佳实践、概念集以及机器学习的端到端概念化、实施、监控、部署和可扩展性方面的开发文化等方面产品。”
- “DevOps 方法的扩展,将机器学习和数据科学资产作为 DevOps 生态中的一等公民”
- 我们可以使用机器学习工程 (MLE) 的定义,其中 MLE 是使用机器学习和传统软件工程的科学原理、工具和技术来设计和构建复杂的计算系统。 MLE 涵盖从数据收集到模型构建的所有阶段,使模型可供产品或消费者使用。” (作者:A.Burkov)
基于前面的定义,我们可以将 MLOps 理解为一组用于以高效、优化和有组织的方式设计、构建和部署机器学习模型的技术和实践。这些技术和实践通常在 MLOps 生命周期的上下文中进行讨论。
3. MLOps 生命周期
MLOps 生命周期由 MLOps 范例中涉及的步骤和技术组成,从设计和开发机器学习模型到将其部署到生产环境中并随着时间的推移对其进行监控和维护。它通常分为三个主要阶段:
- 第一阶段是设计过程,涉及定义业务问题、模型的要求及其预期用例。这通常涉及创建 AI/ML 画布。
- 第二阶段是模型开发过程,包括数据和模型工程。
- 第三阶段是涵盖模型部署和维护的操作过程。
在部署模型后,随着时间的推移保持模型的性能很重要,因此这些阶段通常以循环方式执行。这确保了模型运行良好并且仍然满足第一阶段定义的需求。现在我们已经讨论了 MLOps 生命周期的各个阶段,让我们检查一下 MLOps 工作流,它概述了在流程的每个阶段执行的特定任务和活动。
4. MLOps 工作流
MLOps 工作流概述了开发、部署和维护机器学习模型要遵循的步骤。在理想情况下,遵循工作流程就足够了:首先,了解业务问题,然后选择、训练和部署模型。然而,在现实世界中情况并非总是如此。在任何时候,都可能需要返回到上一步。此外,在部署模型后,必须对其进行维护和监控,这就是理解 MLOps 生命周期和 MLOps 工作流很重要的原因。
4.1. 业务问题
MLOps 工作流程的第一步是了解业务问题,这涉及定义模型的输入和输出,以及流程及其各种子任务。要构建此过程,您可以使用 AI(人工智能)画布或 ML(机器学习)画布,它们可以被视为组织 MLOps 工作流程的模板。 AI 画布通常为 ML/AI 实现提供高级结构,而 ML 画布提供系统的高级描述和细节。
让我们举个例子!假设为了改进其产品,一家乳制品公司有兴趣收集消费者的反馈。为此,需要对消费者对社交媒体平台上的产品的评论进行情绪分析。机器学习技术可用于训练模型,将这些评论的情绪分类为正面、负面或中性。这将使公司能够更好地了解客户对其产品的体验,并确定需要改进的地方。此业务问题描述已转换为 AI 画布和/或 ML 画布,以获得更清晰的表示:
- 预测/预测任务:人工智能系统将分析文本输入并预测文本的情绪(正面、负面或中性)。
- 判断:系统将使用自然语言处理技术来理解文本的含义和情感。
- 行动/决策:基于预测的情绪,系统可能会采取不同的行动,例如标记负面评论以供进一步审查或优先考虑积极的社交媒体帖子以进行推广。
- 结果:期望的结果是系统能够准确地对文本输入的情绪进行分类,从而提高客户满意度、更好的社交媒体参与度,或根据特定用例获得其他好处
- 训练:系统将在标记文本数据的数据集上进行训练,其中包含输入文本和相应的情感标签。
- 输入/数据源:系统将接受来自各种来源的文本输入,例如社交媒体帖子或客户评论。
- 输出/做出预测:系统将分析文本输入并预测文本的情绪(正面、负面或中性)。
- 反馈:系统可能会整合来自用户或利益相关者的反馈,以随着时间的推移提高其性能,例如通过调整自然语言处理算法的参数或向训练数据集添加新数据。
- 离线评估:系统将使用精确度、召回率和 F1 分数等标准评估指标进行评估,以确保其准确地对文本输入的情感进行分类。
- 实时监控:系统将根据需要持续监控和更新,以确保它随着时间的推移继续准确运行。
4.2. 数据工程
了解手头的业务问题后,MLOps 工作流程的下一步就是数据工程流程。这包括数据摄取、探索和验证、数据清理、数据标记和数据拆分。
- 数据摄取涉及使用一组技术来收集数据、创建备份、保护私人信息、创建元数据目录以及对测试集进行采样以避免数据窥探偏差。
- 为了探索和验证数据集,使用了一组统计和可视化技术。
- 收集的数据通常有噪声、包含离群值和缺失值。这些问题会影响下一个过程,因此应用数据清理步骤来解决它们。
- 当所选模型基于监督学习时,数据标记是必要的。此步骤可以手动、自动或半自动完成。
- 数据拆分是此过程的最后一步,涉及将数据划分为训练集、验证集和测试集。
4.3. 机器学习模型工程
MLOps工作流程的第三步是机器学习工程,包括模型训练、模型评估、模型测试和模型打包。
- 训练模型涉及特征工程、代码审查和版本控制以及超参数调整。您可能想知道为什么特征工程包含在这一步而不是上一步中。原因是在这一步测试了很多类型和架构的模型,所以所有模型的特征工程往往不一样。值得注意的是,在这一步选择最合适的模型之前,训练和测试了几个模型。
- 模型评估涉及验证模型以确保它满足业务问题步骤中描述的业务目标。
- 在模型测试步骤中,使用初始测试集进行模型验收测试。
- 模型经过验证和测试后,最后一步是以特定格式导出模型,以便将其提供给业务应用程序。
4.4. 代码工程
在此步骤中,模型已准备好部署到生产环境中。模型部署包括三个步骤:模型服务、性能监控和性能日志记录。
- 要为模型提供服务,必须考虑服务模式和部署策略。服务模式是指模型如何集成到软件中,例如将其集成为服务、作为依赖、使用预计算服务、按需服务或混合服务。部署策略是指用于包装模型的方法,例如将其部署为 Docker 容器或无服务器功能。
- 监控模型涉及观察模型的整体行为,例如其预测与先前模型性能的偏差。
- 性能日志记录涉及将模型预测的结果保存在日志记录中。
5. 总结
在本文中,我们简要介绍了 MLOps。我们讨论了对 MLOps 的需求,提出了各种定义,解释了 MLOps 生命周期,并描述了 MLOps 工作流程。如果您想了解有关 MLOps 的更多信息,我推荐 ml-ops.org 以获取更多信息。
这是关于 MLOps 的第一篇文章,当然不是最后一篇!我将编写更多关于 MLOps 及其各种技术的教程,并提供示例,敬请期待。如果您有任何问题或建议,请随时在下方给我留言。