趋近智
如果你熟悉现代软件开发,很可能已经听过 DevOps 这个词。DevOps 是一套结合了软件开发(Dev)和 IT 运维(Ops)的实践方法,旨在缩短开发周期,并提供具有高软件质量的持续交付。其核心在于自动化、团队协作,以及提高软件发布的频率和可靠性。MLOps 将类似的原则应用于机器学习 (machine learning),同时引入了处理这些系统特有属性的特定考量。
不要将 MLOps 看作是 DevOps 的替代品,而应将其视为扩展其原则的专门学科。DevOps 流水线旨在管理和部署代码,而 MLOps 流水线则必须管理代码、模型和数据。这种区别正是这两种实践方式之间产生相似点和不同点的根源。
MLOps 和 DevOps 有着共同的目标:提高效率、减少错误并更快地交付价值。这两个学科都高度依赖一套共同的实践方法来实现这一目标。
虽然这些共享原则构成了 MLOps 的支柱,但事情并未止步于此。机器学习引入了行为与传统软件截然不同的组件,这要求我们调整并扩展这些实践。
MLOps 与 DevOps 的主要区别源于机器学习 (machine learning)的实验性和数据依赖性。传统的软件应用程序是确定性的;给定相同的输入,它总是产生相同的输出。相比之下,机器学习模型是概率性的。它的行为是从数据中学习得来的,而不是通过显式编程设定的。这导致了几个显著的区别。
DevOps 和 MLOps 生命周期的对比。MLOps 周期包括数据和模型特有的阶段,并且是由数据或模型性能的变化触发的,而不仅仅是代码更改。
在 DevOps 中,版本控制下的主要资产是应用程序源代码。当开发人员提交新代码时,流水线就会触发。而在 MLOps 中,你需要管理三个组件:
这三个组件中任何一个发生变化都可能触发流水线的新一轮运行。例如,如果你收到了一批新的训练数据,即使一行代码都没有改动,你可能也需要重新训练并重新部署模型。这需要一个能够与代码一起对数据和模型进行版本控制的系统,而这项任务超出了传统 DevOps 工具的范围。
持续集成/持续交付 (CI/CD) 的概念在 DevOps 中已经非常成熟。在 MLOps 中,这一概念被扩展为一个新想法:持续训练 (CT)。
DevOps 监控侧重于运行指标:CPU 使用率、内存、延迟和应用程序错误。这些对 MLOps 同样有用,但还远远不够。MLOps 需要额外的一层监控,专注于模型质量。
这包括跟踪:
这种模型特有的监控对于了解模型何时不再可靠以及何时需要重新训练或更换非常有用。
为了清晰地区分,以下是这两个学科在多个方面的直接对比。
| 维度 | DevOps | MLOps |
|---|---|---|
| 主要产物 | 应用程序代码、二进制文件 | 代码、数据和模型 |
| 流水线触发器 | 代码更改 | 代码、数据和模型性能衰退 |
| 版本控制 | 主要是源代码版本控制(如使用 Git)。 | 对代码、数据集和模型进行版本控制。 |
| 测试 | 单元测试、集成测试、UI 测试。 | 包括数据验证、模型验证和模型质量测试。 |
| 监控 | 系统运行状况(CPU、内存、延迟)。 | 系统运行状况加上模型性能(漂移、准确性、偏差)。 |
| 核心团队 | 开发人员、运维工程师。 | 数据科学家、机器学习 (machine learning)工程师、数据工程师、开发人员和运维人员。 |
| 实践方式 | 持续集成与交付 (CI/CD)。 | CI/CD 加上持续训练 (CT)。 |
理解这些差异是构建有效 MLOps 策略的第一步。虽然 MLOps 借鉴了 DevOps 的自动化和协作思维,但它调整了实践方法,以应对机器学习系统特有的、以数据为驱动的生命周期。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•