3. MLOps基础概念

在自动驾驶领域,机器学习模型不是“训练完就结束”的静态产物,而是一个需要持续演进、验证和运维的软件资产。MLOps(Machine Learning Operations)正是把机器学习工程与DevOps实践结合,让模型从数据到部署再到监控形成闭环。理解MLOps,首先要抓住五个核心概念:机器学习生命周期、持续集成(CI)、持续交付(CD)、持续训练(CT)和持续监控(CM)。它们不是孤立术语,而是一条相互咬合的流水线。

MLOps 五环闭环:从数据到监控再回到数据 机器学习生命周期 数据→训练→评估→部署 持续集成 CI 代码/数据/模型自动校验 持续交付 CD 模型打包、灰度、上线 持续训练 CT 新数据触发再训练 持续监控 CM 漂移、性能、安全告警 数据回流 难例、长尾、边缘场景 提交 发布 触发 反馈 回流 再训练

一、机器学习生命周期:不是直线,而是螺旋

机器学习生命周期通常包括:问题定义、数据采集与标注、特征工程、模型训练、评估验证、部署上线、监控运维。在传统软件中,代码是核心资产;在机器学习系统中,数据、代码、模型、配置四者共同决定系统行为。自动驾驶尤其特殊:模型面对的是开放道路的长尾场景,今天表现良好的模型,明天可能因为天气、光照、城市道路结构变化而退化。因此生命周期不是一次性直线,而是“部署—监控—发现新数据—再训练—再部署”的螺旋上升过程。

关键认知:模型上线不是终点,而是新一轮数据采集和迭代的起点。MLOps的目标是让这个循环尽可能自动化、可观测、可回滚。

二、持续集成 CI:把数据与模型也纳入质量门禁

持续集成在传统DevOps中指开发者频繁合并代码并自动构建、测试。在MLOps中,CI的范围被扩展:除了代码,还要对数据Schema、特征分布、模型精度、推理性能做自动校验。例如,每次提交新的数据处理脚本或模型结构,流水线应自动运行单元测试、数据校验和离线评估。

# 示例:MLOps CI 流水线关键阶段
stages:
  - lint           # 代码风格与静态检查
  - data_validate  # 数据Schema、缺失率、分布漂移检查
  - train_smoke    # 小样本快速训练,验证可运行
  - eval_offline   # 在固定验证集上评估mAP、召回率
  - model_gate     # 精度不低于基线才允许进入CD

自动驾驶场景中,CI还要特别关注数据版本。同一批图像如果标注版本不同,模型表现可能差异巨大。因此数据、标注、模型权重都应有唯一版本号,并与代码提交关联。

三、持续交付 CD:让模型安全地到达车端

持续交付强调“随时可发布”,但并不意味着每次提交都直接上车。自动驾驶模型的发布通常需要经过影子模式、灰度发布、A/B测试、区域分批等策略。CD流水线负责把通过CI的模型打包成可部署产物,并管理其从训练集群到车端推理引擎的路径。

阶段 核心动作 自动驾驶关注点
模型打包 导出ONNX/TensorRT,记录版本与依赖 推理延迟、显存占用、算子兼容性
影子模式 新模型只推理不控制,对比旧模型输出 分歧率、危险场景召回
灰度发布 按车辆、城市、时段逐步放量 接管率、急刹率、误检漏检
回滚 异常时快速切回上一稳定版本 回滚时间、版本可追溯

四、持续训练 CT:让模型跟上世界变化

持续训练是指当新数据积累到一定条件时,自动触发模型再训练。触发条件可以是时间周期(如每周)、数据量阈值(如新增10万帧)、或监控告警(如漂移指标超限)。CT不是简单重复训练,而是需要管理数据采样、难例挖掘、课程学习和模型蒸馏等策略。

实践建议:持续训练应保留“基线模型”和“候选模型”的对比评估。只有候选模型在固定测试集和新增难例集上都稳定优于基线,才进入CD流程。

五、持续监控 CM:上线后的眼睛和耳朵

持续监控覆盖三个层面:系统层(延迟、内存、GPU利用率)、数据层(输入分布漂移、传感器异常)、模型层(精度下降、置信度分布变化、对抗攻击)。自动驾驶还需要监控行为层指标,如每千公里接管次数、碰撞预警触发率等。

# 监控指标示例(伪代码)
metrics:
  system.latency_p99_ms: 45
  data.image_brightness_drift: 0.18
  model.detection_recall: 0.923
  behavior.disengagement_per_1k_km: 0.7
  alert.rule: "recall < 0.90 or drift > 0.25"

六、常见误区与复盘

  • 误区一:把MLOps等同于DevOps。MLOps还要管理数据版本、模型版本和实验追踪,复杂度更高。
  • 误区二:只监控系统指标,不监控数据分布。模型精度下降往往先表现为输入数据漂移。
  • 误区三:持续训练等于自动上线。CT只负责产生候选模型,CD负责安全发布,两者必须解耦。
  • 误区四:忽视回滚与可追溯。没有版本管理和回滚机制的MLOps,在自动驾驶场景中风险极高。

复盘要点:一个成熟的MLOps体系,应能回答四个问题——当前线上模型是哪个版本?它由哪些数据训练而来?它的实时表现如何?如果出问题,多久能回滚?

总结来看,机器学习生命周期提供全局视角,CI保证变更质量,CD保证发布安全,CT保证模型持续进化,CM保证问题可发现。五者形成闭环,才是自动驾驶MLOps平台真正的工程底座。