Machine Learning Operations (MLOps)
MLOps 将 DevOps 实践应用于机器学习:对数据进行版本管理、构建自动化训练流水线、设置质量门禁、部署并监控漂移。
机器学习运维 (MLOps) 是一套实践和工具,用于可靠、可重复地构建、部署和维护生产环境中的机器学习 (ML)模型。它将 DevOps(用于自动化软件测试和发布)扩展到行为同时取决于数据和代码的系统:即使一行代码都没有变化,模型也可能退化,因为它所观察的世界发生了变化。模型本身只是这类系统的一小部分。Google 的 MLOps 架构指南指出,现实世界的 ML 系统中只有很小一部分是 ML 代码,其余部分包括数据收集和验证、服务基础设施及监控;NeurIPS 论文《机器学习系统中的隐性技术债务》则描述了这些外围系统不断累积的长期维护成本。
核心实践#
MLOps 通过几项实践将数据工程、模型开发和运维联系起来;这些实践不仅适用于代码,也适用于训练数据:
- 数据版本控制: 每个数据集快照都有不可变版本,因此可以追溯任何模型所用的确切数据。
- 实验跟踪: 每次训练运行都会记录代码版本、数据版本、超参数、指标和产物,以便比较和复现实验结果。
- 持续集成与交付: 自动化流水线会测试代码、验证传入数据、重新训练模型,并阻止任何未通过质量门槛的候选模型。
- 模型注册表: 系统会存储已批准的模型版本及其元数据、血缘关系和阶段(例如预发布或生产),因此部署和回滚都能指定确切版本。
- 模型服务: 模型通常会打包到容器中,通过 API 提供服务,或部署到边缘设备上。
- 模型监控: 系统会跟踪生产环境中的输入、预测、延迟和准确率,以检测漂移并判断何时需要重新训练。
Google 指南将成熟度分为三个级别。级别 0 下,数据科学家手动训练并交付模型。级别 1 会自动化训练流水线本身,增加持续训练(CT),在新数据到达或检测到数据漂移时自动重新训练并提供模型。级别 2 还会通过 CI/CD 自动构建、测试和部署流水线代码,使新版本流水线像新模型一样安全地投入生产。这些实践共同形成一个循环:
MLOps 实践#
- 制造业检测: 工厂新增产品线时,会对新的缺陷图像进行标注和版本控制,由流水线重新训练检测模型,然后将获批版本部署到每条生产线上的边缘摄像头,整个过程不会造成停机。
- 零售货架监控: 包装重新设计和店内光线变化会改变摄像头拍到的内容。监控系统会标记置信度下降的情况,将低置信度图像送去标注,并在重新训练的模型通过评估后将其部署到门店。
质量门槛会自动决定是否晋级。以下脚本会训练一个候选目标检测模型,在相同验证数据上评估候选模型和当前生产模型,并且仅当候选模型的 mAP50-95 更高时才将其导出为 ONNX:
from ultralytics import YOLO
# 训练候选模型;运行会将其权重、args.yaml 和 results.csv 保存到 project/name 下
candidate = YOLO("yolo26n.pt")
candidate.train(data="coco8.yaml", epochs=10, project="mlops", name="candidate")
# 质量门槛:在相同验证数据上评估候选模型和生产模型
candidate_map = candidate.val(data="coco8.yaml").box.map
production_map = YOLO("yolo26n.pt").val(data="coco8.yaml").box.map
# 仅晋级有提升的模型,并导出为服务栈支持的格式
if candidate_map > production_map:
candidate.export(format="onnx")在生产流水线中,调度程序或 CI 作业会在新的标注数据到达时运行类似脚本,并将导出的模型连同数据版本和指标一起注册。Ultralytics Platform在一个工作区中涵盖视觉模型的整个生命周期,提供不可变的数据集版本、带实时指标的云端训练、导出为 TensorRT 等格式、专用推理端点,以及已部署模型的监控。
MLOps 与相关术语的比较#
- DevOps: 自动化软件的构建、测试和发布,代码变更会触发流水线。MLOps 将数据和模型也作为受版本控制的资产,因此新数据或生产准确率下降也会触发流水线。
- LLMOps: 面向大语言模型应用的 MLOps 分支,重点关注提示词、检索、生成文本评估和 token 成本。
- 自动化机器学习 (AutoML): 自动化模型构建,例如选择算法和超参数。MLOps 管理模型周边的整个生命周期,从数据版本控制到监控,并且通常会将 AutoML 作为流水线中的一个步骤调用。
- MLflow和 Weights & Biases: 这些工具覆盖生命周期中的部分环节,例如实验跟踪和模型注册表。MLOps 是一种实践,会将这些工具与流水线、服务和监控结合起来。










