跳至内容

MLOps 与 DevOps:差异、重叠与使用场景

在这篇深度指南中,探索 MLOps 与 DevOps 的差异、重叠以及所用工具!
已更新 2026年10月6日  · 11分钟 阅读

使用 AI 探索

ChatGPTClaudePerplexity

越来越多的公司希望将机器学习(ML)融入其产品,或用 ML 优化流程。因此,了解如何在传统软件的同时驾驭其复杂性,比以往任何时候都更重要。

DevOps 的引入是为了解决软件开发中的挑战。其目标是打破软件开发团队与运维团队之间的壁垒,从而更快地交付新功能,并更平稳地将这些功能发布到生产环境中。

MLOps 在这些原则之上构建,但面向 ML 的独特挑战,例如规模庞大且快速演变的数据集、需要跟踪和版本化的模型,以及为应对数据漂移或概念漂移等问题而进行的监控。

尽管两者共享共同原则,但在关注点、工作流和工具方面差异显著。

本文将探讨 DevOps 与 MLOps,突出其相似与不同之处,以及在何种情境下采用哪种方法。我们还将了解典型工作流,以及在这些工作流的不同阶段应使用哪些工具。

让我们开始吧!

什么是 DevOps?

DevOps 是一种软件工程方法论,旨在加速软件的开发与交付过程。其主要目标是提升开发与运维团队之间的协作,弥合这两种传统职能之间的鸿沟,从而实现更快、更可靠的软件交付。

因此,DevOps 力求打造协作文化,并尽可能实现自动化,以提升整体效率与新功能的交付速度。

如今,包括 Meta、Amazon 在内的大型公司,正是借助 DevOps 才能做到每日交付新功能。

如果您希望入门该领域,推荐学习 Introduction to DevOps 课程。

DevOps 的主要目标包括:

  • 更快的软件开发周期: 缩短发布与部署新功能之间的时间,在保持稳定性的同时实现更快速的发布节奏。
  • 持续集成与持续交付(CI/CD): 将代码集成、测试与部署流水线自动化,以改进交付。
  • 提升协作:鼓励软件开发团队与运维团队密切沟通。
  • 运营效率:通过自动化减少人工操作、降低错误并提升生产率。

DevOps 的核心组件包括:

  1. CI/CD 流水线:
    • 代码的自动化测试、构建与部署。
    • 为开发者提供更快的反馈回路。
    • 降低错误并提升稳定性。
  2. 基础设施即代码(IaC):
    • 通过代码而非人工流程来管理基础设施。
    • 确保一致性与稳定性。
    • 无需人工操作即可在数秒内完成新基础设施的搭建。
  3. 监控与可观测性:
    • 实时跟踪系统性能与应用健康状况。
    • 尽早发现并解决问题。

业界已有一系列标准工具可用于实现 DevOps 的核心组件。以下是最受欢迎的一些:

  • CI/CD 工具: Jenkins、GitLab CI/CD、CircleCI。
  • IaC 工具:Terraform、Ansible、Chef、Puppet。
  • 容器化与编排:Docker、Kubernetes。
  • 监控工具:Prometheus、Grafana、Datadog。

什么是 MLOps?

MLOps 在共享自动化目标的同时,扩展了 DevOps 的原则。MLOps 是一系列实践,旨在持续、可靠且高效地在生产环境中部署与维护机器学习。

 关键在于其关注生产环境中的机器学习,而非在本地机器上进行的小型实验训练的模型。

MLOps 可以对机器学习项目生命周期的各个阶段实现自动化与流程化。

机器学习项目生命周期,展示了机器学习项目的所有阶段,以及各角色通常负责的阶段。

机器学习项目生命周期。图片来源:作者

但我们为何首先需要 MLOps?为何应投入额外精力来搭建清晰的工作流与流程?坦率讲:前期确实需要大量额外投入,开发者可能会倾向于忽略它,以尽快将模型部署到生产。然而,这种做法会引入风险。

与传统软件开发一样,早期忽视清晰流程与最佳实践,会导致复杂性不断增加、可维护性随时间降低。

由于需要管理数据依赖、不断演化的模型与反馈回路等独特挑战,这一问题在 ML 系统中尤为突出。

正如具有影响力的论文“Hidden Technical Debt in Machine Learning Systems”所强调的,机器学习系统以不同于传统软件的方式累积技术债务。

因此,若不遵循 MLOps 原则,后期对失控的 ML 系统进行重构的成本,往往会超过从一开始就构建稳健工作流所需的投入。

如果您希望进一步了解该领域,推荐优秀课程 MLOps Concepts。

MLOps 的主要目标包括:

  • ML 全生命周期自动化: 简化数据收集、模型训练、部署与监控等流程,减少手动工作。
  • 可复现性与一致性:确保实验与工作流可重复,从而获得可靠结果。
  • 协作:促进数据科学家、ML 工程师、数据工程师与运维团队之间的沟通。
  • 可扩展性:使机器学习模型能够应对生产负载,并适应不断增长的数据与使用需求。
  • 应对 ML 特有挑战:处理数据分布变化、大规模数据集,以及模型再训练需求。

接下来看看 MLOps 的核心组件:

  1. 模型训练与再训练流水线:对训练流程进行自动化,包括:
    • 数据预处理与特征工程。
    • 模型验证与性能跟踪。
    • 按需对模型进行再训练以适应新数据。
  2. 模型与数据版本化及实验跟踪:
    • 对 ML 模型与训练数据进行版本控制,记录随时间的变更并支持回滚。
    • 通过实验跟踪监控超参数、指标及一次训练运行的所有结果。
  3. 数据流水线编排:
    • 自动化数据准备、转换与验证,确保其可靠且可重复。
    • 应对数据集变化带来的挑战。
  4. 监控与维护:
    • 持续跟踪生产环境中模型的性能,尽早发现模型漂移或性能退化等问题。
    • 自动触发模型再训练并自动化训练流程,以便快速按需更新模型。
  5. 基础设施即代码(IaC):
    • 使用 Kubernetes 与 Terraform 等工具,为 ML 工作负载提供与管理可扩展的基础设施。

MLOps 领域仍在快速发展。然而,用于实现核心组件的业界标准已然存在:

  • 实验跟踪: MLFlow 或 Weights and Biases。
  • 数据版本化: DVC(Data Version Control)。
  • 流水线编排:Apache Airflow、Kubeflow、Dagster。
  • 模型部署:TensorFlow Serving、Seldon Core、Amazon SageMaker。
  • 监控:Prometheus、Grafana、WhyLabs。
  • 基础设施即代码:Kubernetes、Docker、Terraform。

MLOps 与 DevOps 的差异

尽管 MLOps 构建于 DevOps 之上,因此有诸多重叠之处,但二者在关注点、所管理的工件、生命周期、工具与团队结构上存在差异。这主要源自机器学习工作流的独特挑战与需求。

在接下来的小节中,我将聚焦两者在特定方面的差异。

关注点与范围

DevOps 专注于软件应用,确保高效的开发、测试、部署与维护。 DevOps 以代码为中心。

MLOps 专注于机器学习模型与数据工作流,处理数据准备、模型训练、模型部署与监控等挑战。

对于 MLOps,关键在于必须对从数据准备到模型训练的端到端工作流进行跟踪并可复现。 因此,MLOps 以数据与模型为中心。

所管理的工件

DevOps 主要管理源代码、二进制包与配置文件等软件工件;而 MLOps 管理 ML 特有的工件,如模型、数据集、特征、实验配置与结果。

DevOps 工件相对静态,而 MLOps 工件因再训练与数据变化而具有动态性。

因此,关键差异在于 MLOps 必须同时管理软件代码与数据驱动工件的生命周期。这也是 MLOps 构建于 DevOps 之上、并在部分方面进行扩展的原因。

生命周期

DevOps 聚焦构建、测试、部署与监控等阶段。一旦应用进入生产,其行为通常可以完全预测。

MLOps 在涵盖 DevOps 相同阶段的同时,增加了数据预处理、特征工程、模型训练与再训练,以及数据或概念漂移的监控。

应用的行为更难预测,且高度迭代,因为模型需要频繁更新以适应数据集的变化。

因此,关键差异在于 MLOps 的生命周期以数据为驱动,而 DevOps 的生命周期更侧重代码。

工具与流水线

DevOps 以代码为核心,依赖 CI/CD 流水线来自动化构建、测试与部署阶段。常用工具包括 Gitlab CI/CD、Jenkins 或 Terraform。

MLOps 则需要构建数据处理、模型训练与模型部署的流水线。因此,它需要创建数据与训练工作流的工具与流水线,可使用 MLFlow、Kubeflow、Airflow 或 SageMaker 等工具。

在某些情况下,MLOps 流水线还需要支持如 GPU 等特殊基础设施,这是 DevOps 流水线通常不需要的。

团队结构

DevOps 涉及软件与运维团队的协作。同时职责分工明确:软件工程师专注于编码,运维团队专注于基础设施。

MLOps 项目则涉及数据科学家、ML 工程师、数据工程师与运维团队。此外,若数据科学家并非主要领域专家,还需要引入领域专家。

这意味着两种学科在公司内部需要不同的组织结构。

MLOps 与 DevOps 的重叠领域

既然我们已经讨论了差异,现在来关注两者的重叠领域。

重申最重要的一点:MLOps 构建于 DevOps 之上,并进行扩展以适应机器学习的独特挑战。二者都专注于自动化工作流、提升协作,并确保质量与可扩展性。

CI/CD 流水线

两者都通过CI/CD 流水线来自动化其工作流。MLOps 与 DevOps 都需要管理需要构建、测试与部署的代码。

MLOps 进一步将其扩展到数据验证、模型训练与部署的流水线。

不过,二者通常都使用 CI/CD 来简化从开发到生产的迁移。

基础设施管理

两者都使用基础设施即代码(IaC)来自动化地提供、管理与扩展基础设施,无需手动步骤。Docker、Terraform 与 Kubernetes 等工具在两个领域都被广泛使用。

两者都涉及应用服务器、数据库与 API 的供给。MLOps 额外需要为处理大规模数据集、分布式训练与模型服务提供相应的基础设施。

监控与可观测性

DevOps 与 MLOps 都依赖监控系统来尽早发现问题并确保可靠性。Prometheus 与 Grafana 等工具在两个领域都很常见。

两者都需要监控应用性能、可用性与日志,以用于调试。不过,MLOps 还需监控模型特有指标,如准确率、漂移与延迟。

何时使用 MLOps 或 DevOps

在了解重叠与差异之后,我们可以讨论何时采用哪种学科。

如前所述,MLOps 以数据为中心,在数据驱动型项目中总是合适的。例如自动驾驶、实时分析或图像识别等项目。

此外,对于以机器学习为核心功能的产品,如推荐系统(如 Netflix、Amazon)、金融服务中的欺诈检测,或自然语言处理应用(如聊天机器人),MLOps 也至关重要。只要 ML 模型需要频繁更新与再训练,也应采用 MLOps。

相比之下,DevOps 更适用于以网页服务、移动应用或 API 为重点的传统软件应用,例如电商平台、内容管理系统或软件即服务(SaaS)工具。

当您旨在缩短开发周期、快速部署新功能,同时确保系统可靠性时,采用 DevOps 也非常合适。

挑战与注意事项

MLOps 与 DevOps 都是能够简化工作流、提升效率的强大方法。然而,它们也伴随着挑战。

要成功落地这些方法,需要解决文化挑战、工具链复杂性与可扩展性问题。

接下来我将聚焦我所经历的一些挑战。

文化挑战

DevOps 涉及软件开发人员与运维团队之间的协作。

MLOps 则加入了数据科学家、数据工程师与 ML 工程师。这提升了跨职能协作的需求。

这些群体各自有不同的优先事项与专长:

  • 软件开发人员:专注于代码。
  • 运维团队:关注基础设施及其可靠性与可扩展性。
  • 数据科学家:优先进行实验并追求模型性能,关注代码,但对整洁代码原则的重视低于软件开发者。
  • 数据工程师:专注于数据流水线。
  • ML 工程师:专注于 ML 应用的基础设施与可扩展性。

不同的专长与优先事项,常常会导致沟通不畅与目标不一致。

变革阻力是另一项需要克服的挑战。两种方法都具有颠覆性,旨在自动化工作流并改变人们的思维与工作方式。这常常导致人们抗拒并拒绝将这些工作流融入日常工作。

工具链复杂性

两种方法都包含众多需要提供与学习的工具。然而,与 MLOps 相比,DevOps 的工具生态更标准化、复杂度更低。

MLOps 牵涉多种工具,其集成可能复杂且耗时。

团队必须投入时间学习这些工具,而运维团队需将其集成到公司的基础设施中,这可能带来困难。

可扩展性

两种方法在可扩展性方面也存在挑战。DevOps 主要关注扩展应用与服务以满足用户需求;而 MLOps 需要应对数据与模型的增长。

对于 MLOps,更独特的挑战会出现。ML 往往需要处理大规模数据集并训练大型模型,这可能需要如 GPU 或 TPU 等特殊基础设施。

数据增长在数据存储、处理以及版本化等方面带来挑战。此外,模型需要部署,低延迟要求会使模型服务变得特殊且具有挑战性。

这些挑战进一步凸显了自动化与 IaC 是应对困难的关键。

结论

本文讨论了 MLOps 与 DevOps,以及它们的相似与不同之处。

两者对于简化工作流与提升效率都至关重要。

不过,DevOps 主要关注传统的软件开发与部署流程,而 MLOps 则聚焦于数据与 ML 为中心的项目。

MLOps 本身建立在 DevOps 原则之上,因为 ML 项目同样包含软件部分,因此共享基础要素。

但 MLOps 进行了扩展,以应对 ML 特有挑战,如庞大且快速变化的数据集、需要进行版本管理与频繁再训练的 ML 模型,以及需处理数据漂移与概念漂移等问题的监控。

如果您有兴趣进一步了解 MLOps 与 DevOps,推荐查看以下课程:

FAQs

MLOps 与 DevOps 的主要区别是什么?

MLOps 管理机器学习的生命周期,包括数据工作流、模型训练与监控;而 DevOps 专注于传统的软件开发与部署流程。

MLOps 与 DevOps 可以一起使用吗?

是的,MLOps 构建在 DevOps 原则之上。大多数机器学习应用也涉及软件开发,因此通常需要结合两种实践。

MLOps 与 DevOps 常用哪些标准工具?

在 MLOps 中,常用工具包括 MLflow、Kubeflow 与 SageMaker;而在 DevOps 中,Jenkins、Kubernetes 与 Terraform 常用于 CI/CD 与基础设施自动化。

有效实施 MLOps 需要哪些技能?

要有效实施 MLOps,需要具备机器学习、数据工程与 DevOps 原则方面的专业知识,并熟悉 Kubernetes、Airflow 与 MLflow 等工具。


Patrick Brus's photo
Author
Patrick Brus
LinkedIn

我是一名云工程师,拥有坚实的电气工程、机器学习和编程基础。我的职业生涯始于计算机视觉领域,专注于图像分类,随后转向 MLOps 和 DataOps。我擅长构建 MLOps 平台、支持数据科学家,并交付基于 Kubernetes 的解决方案,以优化机器学习工作流。

主题
数据工程
MLOps

通过这些课程,深入学习机器学习与 MLOps!

课程

端到端机器学习

4 小时
17K
深入了解机器学习,学习如何设计、训练并部署端到端模型。
查看详情Right Arrow
开始课程
查看更多Right Arrow