作者:Vidushi Meel,自由技术作家
什么是 MLOps?在这份完整指南中,了解机器学习运维(Machine Learning Operations)是什么、它是如何工作的、为什么需要它、使用 MLOps 的优势以及 MLOps 的重要性。
什么是 MLOps
MLOps(Machine Learning Operations 的简称)是一种将机器学习模型集成到组织软件交付流程中的实践。MLOps 使用一套实践来确保 ML(机器学习)模型的可靠性。MLOps 涉及数据科学家和程序员(负责构建和训练模型)与 IT 专业人员(负责处理模型的基础设施和部署)之间的协作。
MLOps 周期涵盖了整个机器学习模型的生命周期,从生产 ML 模型到部署后的持续维护。换句话说,MLOps 将机器学习模型的开发和运维整合在一起。
MLOps 平台
MLOps 平台使机器学习工作流的编排和部署更加容易。它们在一个地方为 MLOps 工作流的不同组件提供服务,并且大多数时候通过用户界面进行。这使得在新产品或现有产品中集成 ML 工作流变得容易得多,因为大部分繁重的工作都由平台完成。
例如,ClearML 是一个 MLOps 平台,只需几行代码,就可以将您现有的代码转化为一个成熟的 MLOps 工作流。使用像 ClearML 这样的平台,可以端到端地完成现有代码的日志记录、开发和自动化。其他流行的 MLOps 平台包括 Kubeflow、Amazon SageMaker、MLFlow 或 Tensorflow Extended。
为什么 MLOps 是必要的?
采用 MLOps 方法可以通过使模型开发过程更流畅,从而积极地促进机器学习模型的创建。MLOps 之所以必要的三个主要组成部分包括缩短部署时间、提高可扩展性以及降低错误率。
如果有效使用,MLOps 可以帮助组织比未实施时更轻松地开发、部署和维护机器学习模型。如果没有 MLOps,机器学习模型的开发和部署过程可能会缓慢且容易出错,这可能导致模型发布延迟和成本增加。
MLOps 在行业环境中必要的几种方式
- MLOps 可以帮助确保机器学习模型的可复现性和可靠性:版本控制和持续集成等 MLOps 实践可以帮助确保 ML 模型以可复现的方式开发,并在生产环境中可靠运行。
- MLOps 提高整体生产力:提供对有组织、有重点的数据集访问的低代码环境,减少了发布 ML 模型所需的数据科学家数量,并使他们能够更快地行动,从而减少时间和资金的浪费。
- 改善数据科学家与 IT 专业人员之间的协作:这并非我们第一次提及这一点,但它确实非常重要。MLOps 通过提供一套共同的实践和/或工具,弥合这两个群体之间存在的任何差距,使他们能够更有效地协同工作。
- 改进机器学习模型的监控和管理:监控和警报等 MLOps 实践可以帮助组织更有效地监控其机器学习模型的性能,并识别和解决出现的任何问题。
- 通过生产机器学习模型增加新产品的销售额:机器学习模型可以用于根据客户的过往购买历史和其他因素,向客户提供个性化推荐,这可以帮助销售和营销团队识别新的机会,并向现有客户进行追加销售。
这些要点协同作用,加快了机器学习模型的部署时间,这使任何公司或个人都能从中受益。加速部署时间使组织能够更快地实现其机器学习投资的收益,并缩短新产品的上市时间。
谁能从使用 MLOps 中受益?
任何 AI 驱动的组织。
麦肯锡的这份报告显示了 AI 的普遍重要性,并暗示更好的 AI 实践能带来积极成果。2021年各行业公司的更高收入增长、更大成本降低以及总体净利润的增加,都可以归因于有效的 AI 集成。做得好的特定 AI 集成,可以极大地促进公司季度进展。
特定 AI 集成包括能产生巨大影响的小型 ML 模型,例如在购物网站上向用户展示定制体验的个性化模型。正确地进行这些针对客户体验的小改动,可以提高他们的回访率,从而也提高了复购率。MLOps 极大地简化了 ML 模型创建过程,因此可以使这类公司受益。
今日使用 MLOps 的公司
MLOps 在各行各业的应用正在快速增长,尤其是在 AI 越来越深入地集成到当前和未来的技术中。
以下是一些公司目前如何使用 MLOps 的示例
- Booking.com:Booking.com 利用 Kubernetes 驱动的 MLOps 工作流,为其客户扩展了目的地和住宿推荐的 ML 模型。
- Genpact:NASSCOM 和 Genpact 最近发布了 MLOps 指南,该指南是 MLOps 实施框架和行业最佳实践的汇编,阐述了 MLOps 在工业中的实用性。
- Daupler:Daupler 使用 MLOps 自动化其响应管理流程。通过使用 ClearML 的 MLOps 自动化流程,Daupler 提高了响应时间和效率,并深入了解了客户互动。ClearML 通过协助数据收集、模型训练和部署,并提供实时性能指标,帮助 Daupler 优化了响应管理性能。通过 ClearML 的 MLOps,Daupler 改进了客户服务流程,提供了一种分析客户互动并识别模式和改进领域的方法。
MLOps 的实际应用
MLOps 在日常生活中有很多应用,适用于任何可能看到人工智能集成的地方。MLOps 可以用于自动化任何 ML 模型创建的流程。
实际应用
MLOps 实用性的核心在于其灵活性和可扩展性。从协助开发农业中使用的 ML 增强型传感器,到提高企业管理的效率,MLOps 都可以在实际中得到应用。
例如,一家零售公司可能需要在其网站中集成一个机器学习模型,根据过往购买历史向重复购买的客户展示建议。MLOps 可以帮助自动化模型的训练、部署和监控过程,并确保其符合相关法规。
MLOps 已被用于欺诈检测,训练 ML 模型以实时检测欺诈活动。这种模型应用使用 MLOps 实践来协助检测欺诈性的信用卡交易和欺诈性的保险索赔。
预测性医疗是另一个利润丰厚且至关重要的行业,它使用 MLOps 来简化必要的机器学习模型的创建和实施,例如预测患者结局或在健康问题变得严重之前识别潜在健康问题的模型。
一般应用
这些只是 MLOps 的几个行业特定示例,但 MLOps 可以在任何地方以多种创造性方式使用。
公司或个人可以利用 MLOps 以以下一般方式对其 ML 时间表产生积极影响,例如
- 通过简化构建、训练和开发过程来自动化构建机器学习模型的路线图
- 组织运行机器学习工作负载的基础设施和平台(例如,无代码和低代码平台是 MLOps 实际应用的示例)
- 实施机器学习模型的版本控制、测试和回滚流程
- 促进参与机器学习项目的不同团队之间的协作和沟通 – MLOps 可以促进跨领域团队之间的沟通(例如,销售和工程)
MLOps 的组成部分

另一种理解 MLOps 的方式是思考如何将数据科学和机器学习解决方案投入实际运行。MLOps 利用代码和最佳实践来提高效率、速度和健壮性。
MLOps 与 DevOps 协同工作,将实践集成到 ML 系统中,从而更快地生产出更好的 ML 模型。更快地生产出更好的 ML 模型的部分原因在于创建了合适的实现环境。合适的环境是数据驱动的,能够催化跨团队协作,并利用反馈(包括数据反馈和现实反馈)不断改进。
那么我们如何做到呢?
MLOps 的组成部分因系统和使用 MLOps 的组织的特定需求而异,但有些组成部分相对恒定。在此,我们将介绍大多数 MLOps 系统的一些常见组成部分。
1. 设计
MLOps 跨越多个团队,而设计组件就是一个很好的例子。MLOps 工作流的第一阶段致力于为要在业务环境中集成和使用的 ML 模型设计正确的框架。
在这第一阶段会提出许多面向业务的问题。例如,这个机器学习模型的目标是什么?它将如何帮助推动销售?需要哪些类型的数据来训练它?这些数据将如何获取?
在这一步中,数据科学家与销售团队合作,在工程师创建 ML 模型之前定义其大纲。设计组件旨在理解问题陈述、数据可用性和业务目标。然后,团队可能会进行探索性数据分析、特征工程或模型选择,以设计出解决问题的最佳机器学习模型。
起草模型
在设计阶段,考虑以下事项非常重要
- 模型将如何训练和评估
- 需要什么类型的数据
- 模型将如何在生产环境中部署
- 将使用哪些性能指标来评估模型
- 将建立什么样的监控和警报机制
您需要通过考虑这些问题并尽可能深入地制定答案来为机器学习模型创建“草稿”——在开始创建模型之前确定的细节越多,当项目移交给工程师时,创建模型的效率和生产力就越高。
数据管理
在构建 MLOps 工作流时,数据管理可以包含在设计组件中。MLOps 的数据管理组件涵盖数据采集和包含的所有方面。在创建模型之前,需要对数据进行预处理、存储和管理——数据目前不必实际处理,但应确定如何进行数据管理的指导方针。
2. 模型开发
MLOps 工作流的这一组件负责创建机器学习模型的“核心”部分。在这里,根据设计阶段配置的步骤,对 ML 模型进行工程处理并对数据进行精细化。重点是构建、训练和测试产生的 ML 模型。
模型开发是在 Jupyter 或 Google Colab 等笔记本中完成的,适用于较低级别的项目,或能够处理健壮 Python 的 IDE(例如 PyCharm、VS Code)。在模型开发阶段,你可能会看到用于创建 ML 模型的常见框架包括 Tensorflow 或 Pytorch。
在模型开发阶段,数据科学家和工程师将
- 开发模型架构
- 训练模型
- 测试模型
- 进行模型验证
- 必要时迭代
持续集成与持续部署 (CI/CD)
持续集成/持续部署,或 CI/CD,是一种软件开发实践,用于持续集成、测试和部署代码更改。有大量的开发组件可以扩展,但 CI/CD 比其他组件与行业更相关,值得额外了解一些。
在一个成熟的 MLOps 工作流中(在基本的 MLOps 工作流中,有时不包含 CI/CD),CI/CD 用于自动化机器学习模型的构建、测试和部署过程,随着代码的更改而进行。例如,数据科学家可以更改机器学习模型并将更改推送到像 Git 这样的版本控制系统。然后,CI/CD 流水线将自动构建模型,对更改运行测试以确保更改有效且不会引起问题,然后在测试通过时将模型部署到生产环境。
这节省了大量的体力劳动时间,是一项极好的时间投资,可以在模型未来使用中节省时间。
3. 运维
MLOps 工作流中的运维阶段在 ML 模型的大部分配置和构建完成后对其进行处理。
此阶段采用以下常见实践
- 部署
- 监控
- 模型管理
- 模型服务
- 扩展
当然,这并非一个包罗万象的列表,每个 MLOps 工作流都不同,因此有些工作流可能甚至不使用所有这些部分——然而,这些是许多 MLOps 工作流中最常见的实践。
部署
ML 模型构建完成后,需要高效部署。云端平台或本地服务器用于部署。CI/CD 有时也被视为运维阶段的这一部分。
模型管理与监控
生产环境中通常有多个模型版本,因此这一步负责管理这些版本。监控负责跟踪 ML 模型在生产环境中的性能,并特别关注模型退化和数据漂移等负面变化。
这一步可能很困难,但有大量工具使组织能够轻松快速地集成模型管理/跟踪/监控。例如,ClearML 提供了一整套功能,使创建 MLOps 工作流变得容易。工件和模型跟踪就是一个易于插入的功能示例,可以提升您的 MLOps 体验。通过允许您从代码创建和访问工件,ClearML 为您的所有模型提供自动跟踪和版本控制。
我们将详细介绍的具体示例包括模型版本控制、模型性能监控和模型漂移检测(尽管模型管理和监控还有许多其他功能)。
- 模型版本控制:可以使用 DVC 或 Seldon 等工具来跟踪模型版本并确保使用了正确的版本。模型版本控制允许您在先前版本和新版本模型之间切换,并轻松比较它们的性能。
- 模型性能监控:收集指标——准确率、精确率、召回率被存储和监控。这一步有助于识别退化(如果您想知道什么是模型退化以及如何避免,请查看本文)。
- 模型漂移检测:根据过去的模型测量结果,持续重新拟合(定期重新训练模型以从历史数据中学习)模型。
扩展
许多 MLOps 工作流将扩展更改作为管理和监控阶段的一部分进行处理。这包括根据需要向上或向下扩展资源以处理工作负载的变化。这可以通过更改 CPU 和 GPU 使用量等参数、使用容器系统(例如 Kubernetes)向上或向下扩展数据处理任务以及垂直/水平扩展来实现。
MLOps 与 DevOps 有何不同?
DevOps 是软件开发(Dev)和 IT 运维(Ops)的结合。MLOps 和 DevOps 之间有许多相似之处,因为它们都专注于简化机器学习模型的部署过程——这使得很难不互换使用这些术语。
MLOps 与 DevOps 的主要区别
- 目标:DevOps 专注于开发和部署过程,而 MLOps 不仅关注开发和部署过程,还关注 ML 模型部署后的管理和监控。
- 行业差异:DevOps 比 MLOps 更通用。DevOps 并不总是像 MLOps 那样关注机器学习的挑战,而 MLOps 更适合通过使用 Jupyter notebook、TensorFlow 等工具来处理机器学习特定的任务。尽管这些工具也可以在 DevOps 中使用,但并非一直如此,也较不常见。
- 协作:由于需要各种专业知识(例如,设计阶段需要业务专业知识),MLOps 的运行需要数据科学家、IT 专业人员和销售人员之间的协作。与此同时,DevOps 通常需要开发人员和工程运维团队的更多协助,对其他专业领域的依赖性较低。尽管仍然需要他们,但通常而言,这种需求不如 MLOps 强烈。
MLOps 与 ModelOps 有何不同?
ModelOps 是一个相对较新的领域,涉及 ML 模型的企业运维和治理。MLOps 和 ModelOps 都协助模型的开发到管理过程,但做法不同。ModelOps 比 MLOps 使用更多的业务输入,并且更注重用于塑造机器学习模型的客户体验。因此,MLOps 被认为比 ModelOps 更具技术性。
总结
MLOps 是 AI 领域一个不断发展的领域,它帮助 AI 驱动的解决方案更快地推向市场。如果您正在寻找一个可以帮助您的产品或业务集成机器学习的 MLOps 平台,请考虑 ClearML——一个为全球数千个数据科学团队自动化 MLOps 解决方案的开源平台。
开始使用 ClearML,可以通过使用其免费层服务器或自行托管。在此处阅读文档。您可以在其 YouTube 频道上找到更多关于 ClearML 的深入教程,他们还有一个非常活跃的 Slack 频道,供任何需要帮助的人使用。如果您需要扩展您的 ML 流水线和数据抽象,或者需要无与伦比的性能和控制,请申请演示。了解更多关于 ClearML 的信息,请访问:https://clearml.org.cn/。