1. 课程导入

自动驾驶系统的研发,本质上是一场围绕“数据”展开的持续工程。感知模型需要海量标注数据训练,规控模块依赖场景回放验证,仿真平台需要真实路采数据构建测试集,而每一次算法迭代、每一次问题修复,都必须回答一个关键问题:这次改动基于哪一版数据?结果能否被复现?问题能否被追溯到源头?这正是数据版本管理与可追溯工程要解决的核心命题。

本课程面向自动驾驶数据工程师、算法工程师、测试验证工程师与研发管理者,系统讲解如何为数据建立“身份、血缘、状态与证据链”,让数据像代码一样可管理、可审计、可回滚。

一、学习目标

完成本课程后,学习者应具备以下能力:

  • 概念层:理解数据版本、数据血缘、数据快照、可追溯性、数据契约等核心术语的准确含义与边界。
  • 方法层:掌握数据版本编号策略、元数据建模、数据集切分与冻结、变更记录与审计日志的设计方法。
  • 工具层:能够使用 DVC、Git LFS、对象存储版本控制、数据湖表格式(如 Iceberg/Delta)等工具落地版本管理。
  • 工程层:能够设计从数据采集、清洗、标注、入库到训练、评测、上线的端到端可追溯链路。
  • 治理层:理解数据合规、权限、留存策略与版本管理之间的关系,能识别常见误区并复盘改进。

二、核心概念

在展开工程细节之前,需要先建立一组精确的概念坐标。自动驾驶数据版本管理不是简单的“文件改名”,而是一套围绕数据对象的标识、关系与状态体系。

概念含义在自动驾驶中的典型对象
数据版本某一时刻数据集合的不可变标识感知训练集 v2.3.1
数据血缘数据从产生到消费的上下游关系原始 rosbag → 抽帧 → 标注 → 训练集
数据快照对某一版本数据的完整或增量固化冻结的评测集 snapshot-2024Q2
可追溯性由结果反查数据来源与变更过程的能力模型 m-087 对应哪些标注批次
数据契约数据提供方与消费方约定的结构与质量约束字段 schema、采样率、标注规范版本
元数据描述数据的数据,是版本与血缘的载体采集时间、车辆 ID、传感器配置、标注人

其中,不可变性是版本管理的基石:一个已发布的版本不应被原地修改,任何变更都应产生新版本。只有这样,实验才可复现,问题才可定位。

三、整体框架

本课程的知识体系可以概括为“一条主线、四个层次、两类闭环”。一条主线是数据从采集到消费的全生命周期;四个层次分别是采集与接入层、治理与版本层、训练与评测层、审计与追溯层;两类闭环是数据质量闭环与模型效果闭环。

下面的 SVG 展示了本课程的整体框架:数据自下而上流动,元数据与版本标识贯穿始终,最终形成可追溯的证据链。

数据版本管理与可追溯工程 · 整体框架 采集与接入层 车载传感器 · rosbag · 视频流 · 点云 · 标注平台回传 · 仿真生成数据 关键动作:采集任务登记、原始数据落盘、校验与去重 治理与版本层 元数据建模 · 数据血缘 · 版本编号 · 快照冻结 · 数据契约 · 权限与合规 关键动作:打版本标签、记录变更、生成 manifest、维护血缘图 训练与评测层 数据集切分 · 训练任务绑定 · 模型版本 · 评测集冻结 · 指标归档 关键动作:数据版本与模型版本双向绑定、实验记录可复现 审计与追溯层 变更审计 · 问题回溯 · 影响分析 · 合规报告 · 数据留存与销毁 关键动作:由模型反查数据、由问题反查版本、生成追溯证据链 质量与效果反馈闭环 贯穿主线:元数据 + 版本标识 + 血缘关系 任何一层的数据对象都必须携带唯一标识、来源信息与变更记录,才能形成端到端可追溯能力。

四、典型场景:一次“模型退化”的追溯

假设某天发现新上线的感知模型在夜间场景下漏检率上升。如果没有版本管理与可追溯能力,团队只能靠记忆和聊天记录排查,耗时数天甚至无法定位。而在具备可追溯体系的情况下,排查路径是清晰的:

  1. 由模型版本号查到训练任务 ID;
  2. 由训练任务 ID 查到所用数据集版本与评测集版本;
  3. 由数据集版本查到其血缘上游:原始采集批次、标注批次、清洗规则版本;
  4. 对比上一稳定版本的数据构成,发现新增了一批夜间数据但标注规范未同步更新;
  5. 定位根因,回滚数据版本或修正标注,重新训练验证。

这个过程体现的正是本课程的核心价值:把“说不清”变成“查得到”,把“靠人记”变成“靠系统证”。

五、常见误区与复盘提示

误区一:把版本管理等同于文件备份。备份只解决“还在不在”,版本管理要解决“是哪一版、从哪来、改了什么、谁批准的”。

误区二:只给代码打版本,不给数据打版本。代码可复现但数据不可复现,实验结果依然无法重现。

误区三:元数据靠人工填表维护。人工维护必然滞后和失真,元数据应在数据流水线中自动采集与校验。

误区四:评测集随用随改。评测集一旦冻结就不应随意变更,否则历史指标失去可比性。

复盘建议:在课程学习过程中,每学完一个模块,回到自己团队的数据流程中问三个问题——这份数据有没有唯一版本号?它的上游来源能否自动查到?它的变更有没有留下审计记录?这三个问题就是可追溯工程的成熟度标尺。

六、本课程的结构预告

后续章节将沿着整体框架逐层展开:先讲数据采集与元数据基础,再讲版本编号与血缘建模,然后进入数据集切分、冻结与数据契约,接着覆盖训练评测中的版本绑定与实验复现,最后落到审计追溯、合规治理与工程落地案例。每一章都会给出可操作的方法、配置示例与检查清单,帮助你把概念转化为团队可执行的规范。

# 一个最小可追溯记录示例(manifest 片段)
dataset_version: perception-train-v2.3.1
parent_version: perception-train-v2.3.0
source_bags:
  - bag_id: 20240512_vehicle07_night_001
   采集时间: 2024-05-12T21:14:00+08:00
   传感器配置: cam_front_120fov + lidar_128
label_batch: label-2024-05-20-A
label_spec_version: spec-v1.7
clean_rule_version: clean-v0.9
frozen_at: 2024-06-01T10:00:00+08:00
approved_by: data-governance-group

当这样的记录成为每一版数据的标准配置,自动驾驶研发就从“经验驱动”迈向了“证据驱动”。这正是本课程希望带你建立的能力。