跳转到主要内容

category

In this post:

这是一个自动化的时代,不仅仅是制造业。如今,各种系统都在实现自动化,以减少人为错误并提高效率。DevOps、ModelOps和MLOps等系统都是由数据驱动的。那么它们之间有什么区别呢?
在比较MLOps、DevOps和ModelOps之前,重要的是首先了解什么是MLOps和DevOps,它们是如何工作的,以及它们提供了什么好处。
本文将介绍它们的生命周期、概念、最佳工具和平台。你可以直接跳到你感兴趣的部分。

什么是MLOps?


MLOps是机器学习组织设计的一种商业模式。MLOps的概念取代了传统的垂直筒仓,在这种筒仓中,组织通过跨部门共享资源和专业知识来发挥作用。MLOps是数据科学家和运营专家协作和沟通的一种方式,用于管理生产ML生命周期。它是机器学习工程中的一种文化和实践,试图将机器学习系统(Ops)的创建和操作结合起来。



MLOps原则


MLOps相对较新,因为机器学习最近才被公司广泛采用。MLOps原则旨在改变各个领域的游戏。所以,让我们来看看MLOps的一些核心组件或原则。

  • 自动化-您可以轻松地自动化工作流步骤,而无需任何手动干预。
  • CI/CD-MLOps包括CI/CD.测试和监控
  • 版本控制-您可以使用版本控制系统高效地跟踪ML模型和数据集。
  • 实验跟踪-您可以在模型训练上并行执行多个实验。 
  • 测试—测试不同的功能、数据、模型、基础架构等等。‍
  • 监控—获取有关模型性能的详细见解。

MLOps Principles | Image by Author
Recommended Reading: Implementing MLOps

为什么是MLOps?


ML不同于标准软件,因为数据是应用程序的核心。这意味着代码是围绕服务数据而不是应用程序行为构建的。ML也是一个开环的、不断发展的系统。在模型部署之后,这项任务才刚刚开始。为了实现最大性能,必须不断监控、重新培训生产中的模型,并根据不断变化的数据信号进行重新部署。MLOps推动您可以信任的见解,并以可控的方式更快地发挥作用。它将商业兴趣带回了机器学习操作中。 

  • 它结合了所有团队的专业知识,以实现更高效的ML
  • 它灌输了最佳实践和指导方针,以确保从概念到实验到可生产模型的平稳过渡。
  • 它有助于通过更好的专业分工来避免瓶颈。
  • 您可以快速训练模型、跟踪实验并部署强大的API。


MLOps是如何工作的?


通常,MLOps生命周期/工作流包括以下步骤-

  1. 数据提取
  2. 数据分析
  3. 数据准备
  4. 模特儿培训
  5. 模型评估
  6. 模型验证
  7. 服务与监控

MLOps可以通过三种不同的方式实现:

第1级:手动流程


这个过程对于刚开始使用机器学习的企业来说很常见。如果您的模型很少被修改或训练,那么手动ML方法可能会起作用。

这是在机器学习部署之初使用的标准数据科学技术。这个级别本质上是实验性的和迭代性的。每个管道步骤,包括数据准备和验证、模型训练和测试,都是手动完成的。数据经常使用快速应用程序开发(RAD)方法处理,如Jupyter Notebooks。当采用手动过程时,模型在现实世界中失败的概率会上升。

Manual Experimentation Steps | MLOps | Image by Author 
Recommended Reading: What is MLOps — Everything You Must Know to Get Started

第2级:ML管道自动化


这种架构非常适合基于新数据而不是新的机器学习思想部署新模型。。它自动化了ML管道,从而加快了实验速度。它还允许您实现模型预测服务的CD,并使用新数据自动重新训练生产中的模型。您必须安排ML实验过程,引入自动数据、模型验证和元数据管理等内容,如下图所示。


要开发ML管道,组件必须是可重用的、可组合的和可跨管道共享的。因此,EDA代码可以存储在笔记本电脑中,但组件源代码必须模块化。对于在动态环境中运行并且需要对客户行为、价格和其他因素的变化做出快速反应的系统,此场景可能很有用。然而,如果您想尝试新的机器学习概念并快速部署新的ML实现,则需要一个CI/CD基础设施来自动化ML管道的构建、测试和部署。

ML pipeline automation | MLOps | Image by Author 

Recommended Reading: How to scale machine learning models?

第3级:CI/CD管道自动化


这一级别适用于技术驱动型企业,这些企业必须每天(如果不是每小时)重新培训其模型,在几分钟内更新,并同时在数千台服务器上重新部署。如果没有端到端的MLOps周期,这些企业将无法蓬勃发展。数据、机器学习模型和机器学习训练管道组件现在自动创建、测试和部署,这比以前的级别有了显著改进。
这种方法使数据科学家能够快速探索围绕特征工程、模型设计和超参数的新想法。在自动化级别管道中,您可以看到CI/CD的六个主要阶段,如下图所示。有了这一点,您可以在安排实验阶段的同时重复测试新的机器学习算法和建模。ML管道阶段的源代码从该阶段输出,随后发布到源存储库。

CI/CD pipeline automation | MLOps | Image by Author 

MLOps的优势


许多企业现在使用机器学习操作来优化其生产和分销系统,以及进一步的研发工作,例如自动驾驶汽车的研发工作。MLOps允许公司通过创建自动反馈回路来大幅减少数据分析所需的时间,该回路可以在无需人工帮助的情况下在大规模数据集中找到模式。以下是MLOps的一些好处:

  • 快速创新。

  • 可复制的工作流和模型。

  • 高精度模型可以在任何情况下轻松部署。

  • 有效管理整个ML生命周期

  • ML模型的资源管理系统和控制。


最佳MLOps工具和平台


有几种端到端MLOps和定制的MLOps工具可用;让我们来看看几个最好、使用最广泛的平台。
端到端MLOps解决方案
这些是完全管理的服务,用于快速创建、培训和部署机器学习模型。

自定义MLOps平台


端到端解决方案非常出色,但通过将MLOps管道分离为众多微服务,您可以使用所选工具创建自己的MLOps工具堆栈。这些平台最适合刚开始使用机器学习的企业。

在MLOps崭露头角的短短几年里,出现了各种开源框架。随着数据和技术的不断激增并达到新的高度,今天实施坚实的ML战略将有助于所有类型的企业在未来进行管理和发展。

Learn how to improve model health with Censius AI Observability Platform

 

什么是DevOps?


任何软件公司都由两个团队组成:一个是开发团队,从头开始设计和开发系统,另一个是运营团队,测试和实现开发的产品。在大多数情况下,在开发团队处理bug和其他问题的同时,操作团队会提供这些问题的输入。有时,开发团队可能会转移到一个新项目,而运营团队则会提供前一个项目的输入。这推迟了最后期限,并推迟了整个软件开发周期。T
如果开发团队和运营团队合作,误解的障碍被打破了,该怎么办?这就是DevOps概念的全部内容。DevOps已成为IT世界中一个流行的术语,用于描述整个系统的软件开发、运营和管理过程。它不仅仅是一种工具或方法可以完成任务;相反,它是一种在操作变化时允许更大灵活性的方法。DevOps主要是关于开发人员与手动和自动化系统之间的协作

DevOps | Image Source

 

DevOps是如何工作的?


DevOps生命周期的关键组成部分包括:

  • 源代码管理:版本控制和维护不同版本的代码
  • 持续集成:持续构建、编译、验证、代码审查和单元测试
  • 持续交付:持续测试并将构建应用程序部署到测试服务器
  • 持续部署:配置管理和容器化,将应用程序部署到生产服务器以供发布
  • 持续监控:监控生命周期的每一个部分

Different Stages in DevOps

我们将简要介绍每个阶段,所以让我们从源代码管理开始。

源代码管理/版本控制


跟踪源代码存储库更改的做法称为源代码管理(SCM)。SCM跟踪代码库的修改历史,并在合并来自不同贡献者的更新时帮助解决争议。版本控制也称为SCM。版本控制系统有两种类型:

集中版本控制


每个人都在具有集中版本控制的单个存储库中同时提交和编辑代码。当代码更新时,团队中的每个人都会收到通知,他们将被要求在工作区中更新代码。


分布式版本控制


通过分布式版本控制,每个开发人员都有自己的存储库和软件副本。您必须将更新后的代码提交到中央存储库。换言之,当其他团队成员提取并更新更改时,您提交并推送更改。
推荐阅读:源代码管理最佳实践


持续集成


连续集成(CI)是一种将功能分支集成到可以自动生成和测试的主代码中的技术。此策略有助于开发人员发现并快速解决问题。通过CI集成,您可以提前失败并快速改进,从而提高流程的质量。CI有助于创建一个从编码想法到将其传播到世界的管道。

Continuous Integration | Image By Author 
Recommended Reading: Best Data Version Control Tools

‍连续交付


继持续集成(CI)之后,您必须在持续交付阶段测试应用程序的最终用户可接受性。持续交付是一种软件开发方法,团队在短周期内生成软件,以便随时部署给最终用户。团队通过确保每个增量都很小并包含仅与产品的一个方面相关的更改来管理风险——因此,如果出现问题,不会影响开发的其他方面。

Continuous Delivery | Image By Author

‍持续部署


Continuous Deployment是将测试应用程序部署到生产服务器上——每一项更改都部署到生产中。这与大爆炸的释放相反。这是通过自动化部署、创建小型部署以及使用功能标志来控制哪些用户获得哪些功能来实现的。 

Continuous Deployment | Image By Author 

 

Recommended Reading: What's the difference between CI and CD 

配置管理


配置管理(CM)是跟踪并确保特定产品、应用程序或资源的所有实例一致更改的过程。它是任何基础设施的重要组成部分,因为它确保了基础设施元素之间的一致性。它消除了依赖性问题。  


持续监控


持续监控是指组织识别、响应、遏制和减轻对其基础设施的攻击的能力。它是随着时间的推移收集和分析数据的过程,以检测和防止可能无法实时观察到的问题。持续监控有助于企业主和管理者比传统方法更快地感知不断变化的条件和趋势。 

DevOps的优势


DevOps背后的整个想法是创建一个快节奏的环境,在这个环境中,软件可以在不牺牲质量或性能的情况下快速从概念到生产。这不仅提高了客户满意度,而且有助于公司增加收入。DevOps帮助您:

 

  • 确保更快的部署

  • 保持稳定的工作环境

  • 显著提高产品质量

  • 持续提供软件

  • 协作和沟通的改进


最佳DevOps框架、工具和平台


以下是一些最流行的DevOps工具和框架的列表。

Code: GitJIRA

Build: SbtMaven

Test: TestfairyJUnit

Release: JenkinsCodeShip

Deploy: DockerAWS

Operate: ChefKubernetes

Monitor: DatadogNagios

 

什么是ModelOps?


每个组织的企业人工智能战略都围绕着ModelOps展开。ModelOps是一个允许多个人工智能对象、解决方案和框架融合的系统,同时保持可扩展性和治理。 
简单地说,ModelOps是MLOps的扩展。MLOps应该首先在想要使用ModelOps的组织中建立。ModelOps需要与MLOps相同的人才,再加上一些与IT运营、风险管理、治理等相关的额外技能。

ModelOps | Image Source 

为什么选择ModelOps?


行业、技术和数据必须共同努力,在商业趋势中扩大人工智能的规模。必须打开组织数据才能在公司内自由传播。这不可能发生在划分的工作环境中;因此,公司必须组建一个跨学科团队来推动人工智能的发展。企业使用ModelOps来解决以下问题:

  • 模型数量-为了说明业务流程、定制和专业客户群中的差异,每个组织都需要管理数百个型号。
  • 复杂性——即使是最有经验的IT团队也被数据和分析创新难以管理的复杂性所淹没。
  • 法规遵从性-随着人工智能在整个市场的使用增加,遵守严格且不断增长的模型变得更加困难。
  • 筒仓环境-在一个模型从部署到监控的过程中,多个团队参与其中。由于团队协调不力,扩展人工智能可能会出现问题。ModelOps有助于创建一个可以轻松地将模型从数据科学团队转移到IT生产团队的环境。
Recommended Reading: ModelOps use case

如何将ModelOps付诸实践?


ModelOps任务与MLOps任务非常相似。作为ModelOps过程的第一阶段,企业必须监控ModelOps软件的性能。您必须跟踪每个模型的进度,为模型(或模型类)设置准确性目标,并在开发、验证和部署过程中跟踪它们的漂移和退化等维度。确定哪些市场指标受到服务中模型的影响。跟踪处理能力或内存模型占用的空间。通常,ModelOps包括以下工作:

  • CI/CD
  • 开发环境
  • 测试
  • 模型版本控制
  • 模型存储


ModelOps的优势


在过去的几年里,大公司已经使用ModelOps来加速其人工智能和机器学习应用。机器学习模型必须在整个组织中运行,以适应数百个用例。

  • ModelOps是AI管道中所有其他元素之间的连接线程。 
  • 降低在IT部门监管之外开发的“隐藏”解决方案的风险。
  • 减少不一致性,从而改进资源分配并提高模型重用率。

最佳ModelOps工具和平台


以下是一些模型驱动的平台:

比较:MLOps与DevOps与ModelOps

 


MLOps是指在生产系统中操作和管理人工智能模型所涉及的程序,而ModelOps被认为是MLOps的超集。ModelOps相对于MLOps的优势在于,MLOps只专注于机器学习模型,而ModelOps旨在操作所有人工智能模型。尽管这三个术语的概念可能相似,但它们并不相同。

让我们来看看DevOps、MLOps和ModelOps之间的区别。

它是什么?

 

  • MLOps是一个数据科学过程,涉及机器学习模型的快速测试和部署。
  • DevOps是一种将开发和IT运营结合在一起的方法,使事情更加高效、可靠和安全。
  • ModelOps是生产中模型的企业治理和运营。 


主要用户

 

 

  • MLOps通常由数据科学家和MLOps工程师使用。

  • DevOps由软件开发人员DevOps工程师使用。

  • ModelOps由IT或业务运营团队使用。  


关键功能


MLOps

  • 它有助于通过更好的专业分工来避免瓶颈。
  • 易于与数据科学平台集成。
  • 在模型部署过程中,会快速部署模型进行实验和测试。

DevOps

  • 确保更快的部署
  • 显著提高产品质量
  • 持续提供软件


ModelOps

  • 完成模型生命周期自动化。
  • 整个组织的产品模型库存。


让我们比较几个技术方面。因为ModelOps是MLOps的扩展,所以某些方面可能是相似的。我们将在大多数技术方面看到MLOps与DevOps的对比。


版本控制


在DevOps管道中,版本控制通常仅限于跟踪代码和工件的更改。在MLOps管道中还有更多的事情需要跟踪。
MLOps是一个实验领域,您必须在其中测试各种技术,以快速发现问题的最佳解决方案。必须跟踪每个实验运行的组件和指标,以便稍后出于审核原因适当地重新创建它。


测试


测试机器学习应用程序比测试其他类型的软件更复杂。
除了标准单元和集成测试外,您还需要数据验证、经过培训的模型质量评估和模型验证。


部署


在传统的DevOps方面,您通常会有生成某种形式的应用程序或接口的代码。代码随后被打包成一个可执行文件(工件),然后根据一组标准进行部署和测试。理想情况下,这个过程应该是自动化的,并一直持续到获得成品。
另一方面,在MLOps中,代码用于创建/训练机器学习模型。在这种情况下,输出工件是一个序列化文件,可以向该文件提供数据以生成结论。验证需要将训练模型的性能与测试数据进行比较。类似地,此循环重复,直到模型达到指定的性能水平。


监控


一旦一个模型被部署到生产中,它就开始根据从现实世界接收的新数据生成预测。除了应用程序本身之外,模型漂移是MLOps中需要监控的额外组件,因为数据在不断变化。
ModelOps专注于模型治理和全面的生命周期管理,您必须确保满足预测的业务价值、运营效率以及风险和合规要求。


真实世界用例


例如,银行长期以来一直使用统计模型来批准信贷,而实时分析现在推动了大多数运营决策。这种基于模型的方法有助于银行减少工时,但扩展这些复杂的模型具有挑战性。这些模型应该是公平和可靠的,允许公正的决策。ModelOps使检查模型中的偏差或异常变得容易,并根据需要进行更改。

像Facebook这样的公司一直使用基础设施作为代码和DevOps实践是有原因的,但MLOps超越了这些方法,在更高的级别上运营。它们使公司能够衡量和跟踪每位员工的表现,以了解谁表现最好,哪些员工在实现公司目标方面最有效。让我们总结一下到目前为止我们所学到的一切。

MLOPS VS DEVOPS VS MODELOPS | Graphic By Author

其他条款


什么不是MLOps


因为MLOps是一个经常被抛出的术语,所以首先要知道它不是什么很重要:

  • MLOps不应与DataOps混淆,DataOps是一个主要关注数据管道的数据科学领域,通过连接不同的数据源和大规模灵活的数据工作流提供有价值的见解。
  • MLOps与AIOps不同,因为流程自动化发生在AIOps中组织的IT运营部门内,而不是机器学习团队内。
  • MLOps不是典型的软件,它是独立开发的,然后在转换后链接到生产模型。MLOps的性质更具探索性。
  • MLOps不应与ModelOps混淆,ModelOps是建模的一个领域,专注于在生产系统中部署经过训练的模型。ModelOps是将模型开发和部署到生产系统中的学科。 


DataOps


DataOps是将数据系统操作转移到自动化、可重复、可扩展的环境中的实践。它是一门软件工程学科,强调用高性能分析来管理数据。 

AIOps


AIOps代表人工智能操作。AIOps使用人工智能分析数据,然后利用这些数据优化运营。它用于自动化过程或识别人类不会看到的模式。

结论


一个项目团队从头到尾维护一个系统的日子已经一去不复返了。这主要是因为两个原因:

  • 企业变得更加复杂,需要用更少的时间和资源做更多的事情。
  • IT系统已经从单一架构转变为微观服务架构


在本文中,我们研究了什么是MLOps、DevOps和ModelOps,以及企业如何使用它们来操作人工智能解决方案。我们讨论了几种可能有助于您的软件/ML工作流程、监控和治理的平台和技术。我们还发现了MLOps和ModelOps是不同但相关的概念。 

我希望你喜欢这本关于MLOps、DevOps和ModelOps的深入指南。快乐的实验!

PS:Censius AI可观察性使您能够深入了解机器学习管道!随着MLOps、DevOps和ModelOps变得越来越复杂,了解模型和基础设施比以往任何时候都更重要。我们的工具提供对ML管道的实时监控和可视化,使您能够快速识别和解决出现的任何问题。

 

文章链接