4. 流水线工程基础

在自动驾驶数据闭环中,流水线工程是把数据、代码、模型和部署串成可重复、可观测、可回滚的自动化链路。很多团队在初期会把 CI/CD、MLOps、数据流水线和模型流水线混为一谈,导致职责边界不清、工具重复建设、故障定位困难。理解四者的区别与联系,是设计闭环编排系统的第一步。

一、核心概念与定位

CI/CD 关注的是代码与制品的持续集成和持续交付。它解决的是“代码提交后如何自动构建、测试、打包、发布”的问题,典型工具包括 Jenkins、GitLab CI、GitHub Actions、Argo CD 等。CI/CD 的输入是代码变更,输出是可部署的镜像或制品。

MLOps 是一套面向机器学习全生命周期的工程实践与平台能力,它覆盖数据管理、实验追踪、模型训练、模型注册、部署、监控和再训练。MLOps 不是单一工具,而是流程、角色、平台和规范的集合。CI/CD 可以看作 MLOps 在代码和部署环节的支撑能力之一。

数据流水线负责数据的采集、清洗、标注、转换、校验和版本化。在自动驾驶场景中,它处理的是路测数据、传感器原始数据、标注结果和特征数据。数据流水线的输出是高质量、可追溯的数据集版本。

模型流水线负责从数据集到可部署模型的自动化训练与评估链路,包括数据加载、特征工程、训练、超参搜索、评估、模型注册和打包。模型流水线的输入是数据版本和代码版本,输出是模型版本及其评估报告。

二、四者关系图解

下图展示了四者在自动驾驶数据闭环中的层次与数据流关系:CI/CD 作为横向支撑能力贯穿代码与部署;数据流水线和模型流水线是纵向的生产链路;MLOps 是覆盖全链路的治理与平台层。

MLOps 平台与治理层(实验追踪 · 模型注册 · 监控 · 再训练策略) CI/CD 持续集成与持续交付(代码构建 · 单元测试 · 镜像打包 · 部署发布 · 回滚) 输入:代码提交 / 配置变更 → 输出:可部署镜像、服务版本、部署记录 数据流水线 Data Pipeline ① 数据采集:路测回传、传感器原始数据 ② 清洗与标注:去重、脱敏、标注质检 ③ 转换与校验:格式统一、schema 校验 ④ 版本化:数据集版本、血缘追踪 模型流水线 Model Pipeline ① 数据加载:绑定数据集版本 ② 训练与调参:分布式训练、超参搜索 ③ 评估与验证:指标对比、回归测试 ④ 注册与打包:模型版本、推理镜像 数据集版本 代码/配置 训练代码/镜像 模型部署 → 车端/云端推理服务 监控反馈

三、区别与联系对照

维度 CI/CD MLOps 数据流水线 模型流水线
核心对象 代码、配置、制品 ML 全生命周期 数据与标注 模型与评估
触发条件 代码提交、合并请求 数据/模型/策略变更 新数据到达、标注完成 数据集版本更新、代码更新
典型输出 镜像、服务版本 可治理的 ML 资产 数据集版本、特征表 模型版本、评估报告
关键指标 构建成功率、部署频率 实验可复现率、模型迭代周期 数据质量、标注一致性 模型精度、训练耗时
失败影响 发布阻塞 迭代效率下降 模型输入偏差 模型效果回退

四、方法流程:如何协同工作

在自动驾驶数据闭环中,四者通常按以下顺序协同:

  1. 数据触发:新路测数据回传后,数据流水线自动执行清洗、标注质检和版本化,产出数据集版本 v1.2。
  2. 模型训练触发:数据集版本更新事件触发模型流水线,绑定该数据版本和对应训练代码版本,启动训练与评估。
  3. CI/CD 支撑:训练代码变更通过 CI 完成单元测试和镜像构建;模型评估通过后,CD 将推理镜像部署到测试环境或灰度环境。
  4. MLOps 治理:实验追踪记录超参和指标,模型注册中心保存模型版本与血缘,监控系统采集线上指标并触发再训练。
关键原则:数据流水线保证“输入可信”,模型流水线保证“训练可复现”,CI/CD 保证“交付可自动化”,MLOps 保证“全链路可治理”。四者不是替代关系,而是分层协作关系。

五、案例场景:一次模型迭代的完整链路

假设某自动驾驶团队要优化夜间行人检测模型。数据团队从路测数据中筛选夜间场景,数据流水线完成标注质检后生成数据集版本 night-ped-v3。模型流水线自动拉取该版本,使用 train-night-v2 代码分支启动训练,产出模型 ped-night-20240612。评估显示召回率提升 3.2%,但误报率上升 0.8%。MLOps 平台记录该实验,并触发回归测试。CI/CD 将模型打包为推理镜像,部署到影子模式进行对比验证。线上监控发现误报集中在雨天场景,于是自动生成新的数据挖掘任务,进入下一轮闭环。

# 模型流水线配置片段示例
pipeline:
  name: night-pedestrian-detection
  data_version: night-ped-v3
  code_branch: train-night-v2
  train:
    framework: pytorch
    gpu: 8xA100
    epochs: 120
  eval:
    metrics: [recall, precision, f1, latency]
    threshold: recall >= 0.92
  register:
    model_name: ped-night
    stage: staging
  deploy:
    target: shadow
    traffic: 5%

六、常见误区与复盘

误区一:把 CI/CD 当成 MLOps。CI/CD 只覆盖代码和部署,无法管理数据版本、实验追踪和模型血缘。缺少 MLOps 会导致模型无法复现。
误区二:数据流水线和模型流水线混在一起。数据清洗和标注质检属于数据流水线,训练和评估属于模型流水线。混在一起会导致职责不清、重跑成本高。
误区三:忽视版本绑定。模型必须绑定数据集版本和代码版本,否则出现效果回退时无法定位是数据问题还是代码问题。
误区四:只关注训练,不关注反馈闭环。没有线上监控和再训练触发,模型会逐渐失效。

复盘时建议检查三个问题:数据版本是否可追溯?模型训练是否可复现?部署和回滚是否自动化?如果这三个问题的答案都是肯定的,说明四层流水线已经形成了健康的协作关系。