MLOps 只是在 CI/CD 的基础上增加了一些额外的步骤。
MLOps 从根本上改变了流水线的设计方式,因为模型是统计产物,会随着时间推移而退化。流水线必须考虑数据质量、模型版本控制和持续重新训练,而传统的 CI/CD 流程从未考虑过这些问题。
MLOps 流水线扩展了传统的 CI/CD 流程,增加了专为机器学习工作流程定制的模型训练、验证和监控阶段。传统的 CI/CD 侧重于代码部署,而 MLOps 则负责处理整个机器学习生命周期中的数据版本控制、实验跟踪和模型漂移检测。
旨在构建、部署和监控生产环境中机器学习模型的端到端工作流程。
通过持续集成和持续交付实践,构建、测试和部署应用程序代码的自动化管道。
| 功能 | MLOps管道 | 传统软件 CI/CD |
|---|---|---|
| 主要关注点 | 模型生命周期和数据工作流程 | 应用程序代码部署 |
| 关键阶段 | 数据验证、训练、评估、部署、监控 | 构建、测试、部署 |
| 版本控制 | 代码、数据、模型和功能 | 仅代码和配置 |
| 测试方法 | 模型准确性、偏差、漂移和数据质量测试 | 单元测试、积分测试和回归测试 |
| 监测需求 | 预测漂移、数据漂移、模型性能 | 应用程序正常运行时间、错误、延迟 |
| 可重复性 | 利用参数和工件进行实验跟踪 | 从版本化代码构建工件 |
| 计算要求 | 用于训练工作负载的 GPU/TPU 访问 | 标准构建服务器和运行器 |
| 常用工具 | MLflow、Kubeflow、SageMaker、Vertex AI | Jenkins、GitHub Actions、GitLab CI |
| 反馈回路 | 基于新数据的持续再训练 | 根据用户反馈进行迭代发布 |
传统的 CI/CD 流水线遵循相对线性的路径:代码提交、构建工件、测试,然后部署到生产环境。MLOps 流水线在此基础上增加了额外的阶段,包括数据验证、特征工程、模型训练和模型评估。这些额外的步骤反映了机器学习系统依赖于数据质量和模型行为,而不仅仅是代码正确性的现实。
在传统的持续集成/持续交付 (CI/CD) 中,版本控制主要关注源代码和配置文件,这足以复现构建过程。而机器学习运维 (MLOps) 的要求远不止于此:团队必须对数据集进行版本控制,追踪哪些数据用于训练,记录超参数,并存储模型工件。如果没有这些规范,复现模型结果几乎是不可能的,因此像 MLflow 这样的实验追踪工具已成为 MLOps 实践的核心。
软件持续集成/持续交付 (CI/CD) 依赖于确定性测试,其中输入产生可预测的输出。MLOps 测试则截然不同,因为模型是统计系统。团队需要添加测试,以验证数据模式、模型公平性、在保留数据集上的预测准确性以及检测偏差。即使模型通过了所有传统测试,如果输入数据分布发生变化,其在生产环境中的性能仍然会下降。
传统流水线通过错误率、响应时间和 CPU 使用率等指标来监控应用程序的健康状况。MLOps 监控更进一步,它会跟踪模型特定的信号,例如预测漂移、特征分布变化和下游业务指标。当检测到漂移时,流水线可以触发自动重新训练,而传统的 CI/CD 很少需要处理这种情况。
标准的 CI/CD 流程运行在配置适中的构建服务器上,因为编译和测试代码很少需要大量的计算资源。而 MLOps 流水线通常需要 GPU 或 TPU 来进行训练,还需要可扩展的存储空间来存储 TB 级的数据集。因此,大多数 MLOps 平台都构建在 Kubernetes 或托管云服务之上,以便按需配置专用硬件。
传统的持续集成/持续交付 (CI/CD) 主要由软件工程师和 DevOps 团队负责。而机器学习运维 (MLOps) 则需要数据科学家、机器学习工程师和运维人员之间的协作,因为其流程涵盖了研究实验和生产部署。对于采用 MLOps 实践的组织而言,这种文化转变往往比工具本身更为重要。
MLOps 只是在 CI/CD 的基础上增加了一些额外的步骤。
MLOps 从根本上改变了流水线的设计方式,因为模型是统计产物,会随着时间推移而退化。流水线必须考虑数据质量、模型版本控制和持续重新训练,而传统的 CI/CD 流程从未考虑过这些问题。
你可以直接使用像 Jenkins 这样的传统 CI/CD 工具进行机器学习,无需任何修改。
尽管 Jenkins 可以编排训练任务,但它本身缺乏对实验跟踪、模型注册和漂移监控的原生支持。大多数团队要么大幅扩展 Jenkins 的功能,要么采用专门的 MLOps 平台来弥补这些不足。
模型部署完成后,工作就完成了。
已部署的模型会随着真实世界数据偏离训练分布而出现性能下降。MLOps 流水线包含监控和重新训练循环,正是因为模型维护是一项持续性的工作,而非一次性事件。
MLOps 流水线完全取代了 DevOps 实践。
MLOps 建立在 DevOps 之上,而非取代它。基础设施即代码、自动化测试和持续部署等核心实践仍然至关重要。MLOps 只是在这些基础之上添加了机器学习相关的层。
在生产环境中,更多的数据总是能提高模型的性能。
如果没有适当的数据验证和质量检查,新数据可能会引入噪声、偏差或分布偏移,从而损害模型精度。MLOps 流程中包含专门的数据验证阶段,用于在这些问题进入训练阶段之前将其发现并解决。
如果您的交付物是具有确定性行为和完善测试的应用程序代码,请选择传统的 CI/CD 流程。如果您需要管理性能依赖于数据质量、需要实验跟踪以及需要持续监控模型漂移和性能下降的机器学习模型,请选择 MLOps 流水线。
AI编排系统通过统一的框架协调多个模型、工具和数据管道,而独立模型的使用方式则是直接调用单个AI模型来完成每个任务。组织通常会根据复杂性、规模以及对多步骤自动化的需求来选择合适的方案。
该比较通过分析亚马逊云科技(Amazon Web Services)和谷歌云(Google Cloud)的服务产品、定价模式、全球基础设施、性能、开发者体验以及理想应用场景,帮助企业选择最符合其技术和业务需求的云平台。
该对比通过分析 Docker 容器和虚拟机在架构、资源使用、性能、隔离性、可扩展性以及常见使用场景方面的差异,帮助团队决定哪种虚拟化方案最适合现代开发和基础设施需求。
Kafka 和 Flink 构成了一个分布式流处理生态系统,用于实时数据管道,而内存处理则通过将数据完全保存在 RAM 中来加速分析——它们各自满足速度、规模和持久性方面不同的架构需求。
Netflix 的内部机器学习平台提供高度集成、大规模的工具,专为流媒体个性化而打造;而独立的机器学习工具则为规模较小的团队提供灵活性和控制权。选择哪种工具取决于规模、定制需求和现有基础设施投入。