4. 流水线工程基础
在自动驾驶数据闭环中,流水线工程是把数据、代码、模型和部署串成可重复、可观测、可回滚的自动化链路。很多团队在初期会把 CI/CD、MLOps、数据流水线和模型流水线混为一谈,导致职责边界不清、工具重复建设、故障定位困难。理解四者的区别与联系,是设计闭环编排系统的第一步。
一、核心概念与定位
CI/CD 关注的是代码与制品的持续集成和持续交付。它解决的是“代码提交后如何自动构建、测试、打包、发布”的问题,典型工具包括 Jenkins、GitLab CI、GitHub Actions、Argo CD 等。CI/CD 的输入是代码变更,输出是可部署的镜像或制品。
MLOps 是一套面向机器学习全生命周期的工程实践与平台能力,它覆盖数据管理、实验追踪、模型训练、模型注册、部署、监控和再训练。MLOps 不是单一工具,而是流程、角色、平台和规范的集合。CI/CD 可以看作 MLOps 在代码和部署环节的支撑能力之一。
数据流水线负责数据的采集、清洗、标注、转换、校验和版本化。在自动驾驶场景中,它处理的是路测数据、传感器原始数据、标注结果和特征数据。数据流水线的输出是高质量、可追溯的数据集版本。
模型流水线负责从数据集到可部署模型的自动化训练与评估链路,包括数据加载、特征工程、训练、超参搜索、评估、模型注册和打包。模型流水线的输入是数据版本和代码版本,输出是模型版本及其评估报告。
二、四者关系图解
下图展示了四者在自动驾驶数据闭环中的层次与数据流关系:CI/CD 作为横向支撑能力贯穿代码与部署;数据流水线和模型流水线是纵向的生产链路;MLOps 是覆盖全链路的治理与平台层。
三、区别与联系对照
| 维度 | CI/CD | MLOps | 数据流水线 | 模型流水线 |
|---|---|---|---|---|
| 核心对象 | 代码、配置、制品 | ML 全生命周期 | 数据与标注 | 模型与评估 |
| 触发条件 | 代码提交、合并请求 | 数据/模型/策略变更 | 新数据到达、标注完成 | 数据集版本更新、代码更新 |
| 典型输出 | 镜像、服务版本 | 可治理的 ML 资产 | 数据集版本、特征表 | 模型版本、评估报告 |
| 关键指标 | 构建成功率、部署频率 | 实验可复现率、模型迭代周期 | 数据质量、标注一致性 | 模型精度、训练耗时 |
| 失败影响 | 发布阻塞 | 迭代效率下降 | 模型输入偏差 | 模型效果回退 |
四、方法流程:如何协同工作
在自动驾驶数据闭环中,四者通常按以下顺序协同:
- 数据触发:新路测数据回传后,数据流水线自动执行清洗、标注质检和版本化,产出数据集版本 v1.2。
- 模型训练触发:数据集版本更新事件触发模型流水线,绑定该数据版本和对应训练代码版本,启动训练与评估。
- CI/CD 支撑:训练代码变更通过 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%
六、常见误区与复盘
误区二:数据流水线和模型流水线混在一起。数据清洗和标注质检属于数据流水线,训练和评估属于模型流水线。混在一起会导致职责不清、重跑成本高。
误区三:忽视版本绑定。模型必须绑定数据集版本和代码版本,否则出现效果回退时无法定位是数据问题还是代码问题。
误区四:只关注训练,不关注反馈闭环。没有线上监控和再训练触发,模型会逐渐失效。
复盘时建议检查三个问题:数据版本是否可追溯?模型训练是否可复现?部署和回滚是否自动化?如果这三个问题的答案都是肯定的,说明四层流水线已经形成了健康的协作关系。