1. 课程导入

自动驾驶模型不是一次训练完成就固定不变的软件资产。车辆每天在真实道路上采集到的新场景、新天气、新交通参与者行为,会不断暴露出模型在长尾场景中的不足。如果仍采用“季度级人工标注—离线训练—整包发版”的传统节奏,模型能力提升速度将远远落后于数据增长速度。本课程要解决的核心问题,就是如何把数据闭环、持续训练、自动评估、安全发布组织成一条可重复、可度量、可审计的工程流水线。

学习目标

  • 理解自动驾驶模型持续训练(Continuous Training, CT)与自动迭代的完整技术框架,能画出从车端数据到模型上线的闭环链路。
  • 掌握数据回传、场景挖掘、自动标注、训练调度、模型评估、影子模式与灰度发布等关键环节的工程方法。
  • 能够为感知、预测、规划等不同模块设计合理的迭代指标,区分离线指标与在线指标、安全指标与体验指标。
  • 具备识别数据闭环中常见陷阱的能力,例如数据偏差、指标失真、版本回滚困难、训练与推理不一致等。

核心概念:从“训练模型”到“运营模型”

传统机器学习项目关注的是单次训练任务:准备数据集、选择网络结构、调参、导出模型。而自动驾驶持续训练工程关注的是模型生命周期。模型被看作一个需要持续运营的产品,其能力由数据分布、标注质量、训练策略、评估体系和发布机制共同决定。

几个关键概念需要先建立:

  • 数据闭环:车端采集→回传→清洗→挖掘→标注→训练→评估→发布→再采集,形成不断循环的反馈回路。
  • 触发式训练:不是按固定周期训练,而是当新数据积累到一定量、关键场景覆盖率下降或线上指标劣化时自动触发训练任务。
  • 影子模式:新模型在车端只推理不控制,与当前生产模型对比输出差异,用于安全验证。
  • 模型仓库与血缘:每个模型版本都关联数据集版本、代码提交、超参数和评估报告,保证可追溯、可复现。
  • 自动迭代:将上述环节用流水线编排起来,减少人工介入,使模型能够以天甚至小时为单位迭代。
持续训练工程的目标不是“训练得更快”,而是“让每一次模型更新都可信、可解释、可回滚”。速度必须建立在安全与可复现的基础之上。

整体框架:五层闭环架构

下图给出自动驾驶模型持续训练与自动迭代的整体框架。它由数据层、训练层、评估层、发布层和反馈层构成,五层之间通过版本化产物连接,形成闭环。

自动驾驶模型持续训练与自动迭代闭环 数据层 车端采集 / 回传 场景挖掘 / 清洗 自动标注 / 质检 训练层 数据集版本管理 分布式训练调度 超参搜索 / 蒸馏 评估层 离线指标回归 场景级通过率 安全边界测试 发布层 影子模式验证 灰度发布 / 回滚 OTA 版本管理 反馈层:线上指标监控与数据回流 接管率 / 急刹率 / 误检漏检 / 场景覆盖率 / 模型置信度分布 问题场景自动回传 → 补充数据集 → 触发下一轮训练 新数据回流 闭环运行的关键约束 1. 版本一致:数据、代码、模型、配置四者必须绑定同一版本号,保证可复现。 2. 评估门禁:新模型必须通过离线回归 + 场景级测试 + 安全边界测试才能进入发布。 3. 灰度可控:影子模式与灰度发布保证问题可发现、可回滚,避免一次性全量风险。 4. 指标驱动:每一轮迭代都要有明确的触发条件和验收标准,避免无效训练。

方法流程:一次自动迭代的典型链路

下面用一段伪代码描述自动迭代流水线的核心步骤。它体现了“触发—训练—评估—发布—反馈”的闭环逻辑。

pipeline: autonomous_driving_ct
trigger:
  - new_scene_count >= 5000
  - or online_kpi_drop("perception_recall") > 2%
  - or weekly_schedule

steps:
  1. collect_and_mine   # 回传数据,按场景标签挖掘长尾片段
  2. auto_label         # 自动标注 + 人工抽检,生成数据集版本 ds_v37
  3. train              # 基于 ds_v37 训练,产出 model_v128
  4. offline_eval       # 回归测试集 + 场景级测试,生成评估报告
  5. gate_check         # 若关键指标不达标,自动终止并通知
  6. shadow_deploy      # 影子模式上车,对比生产模型输出差异
  7. canary_release     # 灰度 5% 车队,监控接管率与误触发
  8. full_release       # 全量发布,更新模型仓库与血缘记录
  9. feedback           # 收集线上问题场景,回流至数据层

案例场景:一次“鬼探头”场景的迭代

某车队在城区道路连续出现“鬼探头”误刹问题:行人从遮挡物后突然出现,模型反应过晚。传统做法是人工收集片段、标注、训练,周期约两周。引入持续训练工程后,流程变为:车端检测到高急刹事件后自动回传片段;场景挖掘模块识别为“遮挡行人横穿”标签;自动标注生成边界框与轨迹;训练任务被触发,使用包含该场景的增强数据集;离线评估确认该类场景召回率提升;影子模式验证无误后灰度发布。整个过程压缩到 48 小时以内。

常见误区与复盘

误区 表现 正确做法
只追求训练频率 每天训练多个版本,但缺乏评估门禁 先建立评估体系,再提升迭代速度
数据版本与模型版本脱节 无法复现历史模型,问题定位困难 数据、代码、模型、配置统一版本绑定
离线指标好就上线 线上接管率反而上升 离线 + 影子 + 灰度三级验证
忽视长尾场景覆盖 常规场景表现好,极端场景失效 按场景标签统计覆盖率,主动补采
学习本课程时,建议始终带着三个问题:数据从哪里来、模型凭什么可信、出问题如何回滚。这三问贯穿持续训练工程的全部环节。
持续训练不等于无人值守。自动化的前提是评估标准清晰、回滚机制可靠、监控告警完备。缺少这些基础,自动化只会加速错误模型的扩散。