MLOps 与 DevOps


经常会发生这种情况:开发团队已经转向一个新的项目,而运维团队则对之前的项目提供反馈。这导致整个软件开发生命周期或机器学习模型开发生命周期的截止日期被推迟。出于这个原因,IT 采用了新的工作方式来准备软件和机器学习模型,它们分别是 MLOps 和 DevOps。在本篇博文中,您将了解这些术语以及它们之间的区别。

什么是 DevOps?

DevOps 术语代表Development(开发)+ OperationS(运维)。它是一种人们协作以尽可能快地构建和交付软件的方法。DevOps 使软件开发(Dev)和运维(Ops)团队能够协作并迭代地加速软件交付。DevOps 方法有助于改善在项目上工作的开发人员和运维人员之间的沟通。它不仅仅是一个可以完成工作的工具或方法;相反,它是一种策略,在进行操作调整时提供更大的灵活性。

什么是 MLOps?

MLOps 术语代表Machine Learning(机器学习)+ OperationS(运维)。它是机器学习公司创建的一种商业模式。MLOps 是一种概念,它消除了企业中传统的垂直筒仓,使它们能够跨部门共享资源和专业知识。MLOps 是一个协作和沟通平台,供数据科学家和运维专家管理生产 ML 生命周期。除非企业能够自动化机器学习模型在生产环境中的部署,并使用专门的和自动化的功能来监控、管理和治理这些模型,否则它们无法从 AI 中获得真正的价值。

MLOps 和 DevOps 之间的相似之处

以下是 MLOps 和 DevOps 之间的相似之处:

  • DevOps 和 MLOps 都与简化流程有关。DevOps 将软件开发的开发、测试和操作组件整合在一起。另一方面,MLOps 是用于简化机器学习生命周期(从头到尾)的方法。它旨在通过弥合设计、模型开发和操作之间的差距来缩短 ML 开发周转时间。

  • 开发人员、数据科学家和数据工程师都在同一个代码库上协作。他们进行持续集成和开发。MLOps 和 DevOps 都遵循此 CI/CD 流程。

  • 沟通是 DevOps 和 MLOps 的核心。DevOps 依赖于各个部门和一组有助于直观促进流程的技术,因此清晰的沟通对于流程自动化、持续交付和持续反馈至关重要。类似地,在 MLOps 中,沟通为系统管理员、数据科学家和其他部门之间的协作奠定了基础,从而导致对如何构建和维护生产模型的共享知识。

MLOps 和 DevOps 之间的主要区别

以下是 MLOps 和 DevOps 之间的主要区别:

  • 在机器学习中处理数据本身就是一个挑战。例如,神经网络需要大量的数据集,这涉及到长时间运行的作业。在 DevOps 中,情况并非如此。

  • 软件开发人员和 DevOps 工程师通常参与 DevOps,而数据科学家和机器学习工程师主要在 MLOps 中被需要。

  • 从事机器学习项目的数据科学家尝试一种技术来解决问题,然后几天后尝试另一种技术,这很常见。在几周或几个月内,您可能会尝试许多不同的方法。传统的软件工程也需要一些实验,但通常是短暂的,并且与主要项目分开进行。

  • MLOps 管道中包含了额外的用于构建/训练机器学习模型的数据和模型阶段。DevOps 中不需要额外的数据库和模型。

  • DevOps 侧重于开发通用应用程序,并为某些使用场景采用标准库集。另一方面,MLOps 创建一个提供推理的模型,并涵盖各种语言、工具、库和框架。

  • DevOps 使用代码版本控制来确保对正在创建的产品所做的任何更改或更新都得到清晰记录。另一方面,代码并不是机器学习中唯一的变量。数据以及参数、元数据、日志和模型都是必须管理的关键输入。

  • MLOps 中有一个在 DevOps 中不存在的第三个概念:持续训练 (CT)。此步骤完全是关于自动检测需要重新训练和重新部署模型到生产环境中的场景/事件,这是由于现有部署的机器学习模型/系统中的性能下降造成的。

  • 在 DevOps 中,代码生成应用程序,然后在使用大量测试用例进行验证后将其转换为可执行文件并进行部署。然而,在 MLOps 中,代码用于创建或训练机器学习模型。验证用于确定模型的正确性,或其在测试数据上的表现如何。重复此步骤,直到模型获得一定程度的良好性能。

结论

如今,没有一家成功的软件公司能够在不使用 DevOps 的理念和工具的情况下运作。同样,在未来,如果没有一些共享的 MLOps 原则和工具,将无法管理机器学习模型的开发和产品化。这两个术语多年来一直在推动 IT 行业发展,为许多行业提供高效的软件和模型,并且在未来也将继续发展。

更新于: 2022年8月26日

221 次查看

开启你的 职业生涯

通过完成课程获得认证

开始
广告