"端到端"这个词底下压着三个互相独立的问题。把它们拆开,新名词就不再吓人。
两个把模块化逼到墙角的问题
前六章的管线跑通了,现在看它的账单。
第一笔账是信息损失。感知模块把一整片像素的丰富信息压缩成一个标签:"98% 概率是车"。这个抽象过程丢掉的细微信息和上下文——那辆车的姿态透露的犹豫、轮胎的转向趋势——下游再也拿不回来。决策拿着这些残缺的标签做规划,规划的结果再交给控制,任何一环的误差都向下传递和放大。第 5 章末尾丁文超列的三条天花板(组合爆炸、仿真交互有限、泛化有限),根子也在这里:接口是人定义的,人定义不全世界。
第二笔账是复杂度。课件给量产端到端系统算过一笔训练账:十多个任务、几十种数据标注、几百个 loss 要同时平衡。而模块化系统的对应成本是数十个独立子系统各自的设计、调试和维护。两条路线各有各的复杂度,问题是哪种复杂度更值得背。
端到端的回应是:把感知到规划做成一张(或几张)可学习的网络,让信息以特征而不是标签的形式流动,让规划的梯度能回传去更新表征。但"端到端"是个被用滥的词——它底下其实压着三个互相独立的问题:系统接口长什么样、轨迹由什么生成器产生、模型用什么方式训练。这一章把三条轴分开讲,最后你会看到它们可以自由组合。
轴一:接口——一段式还是两段式
课件对端到端的本质定义很干净:全量感知信息到决策规划的无损传输;优势是信息无损、数据驱动、梯度可导,劣势是不可解释。分类有两套词汇:产业说一段式/两段式(中间有没有可读的结构化接口),学术说有/无辅助任务(训练时有没有额外监督)——两套词经常混用,对话时先对齐。
两段式先生成对象、地图、预测等结构化结果,再让学习式规划器消费;一段式让规划器直接读取更早的共享特征,规划损失能向前更新表征。注意真正的分界不是"几个模型",而是中间结果是不是不可绕过的唯一通道、训练信号能否跨阶段传播。
这条轴上的代表作构成一条清晰的取舍链。UniAD(CVPR 2023 最佳论文)用五类 Query 把检测、跟踪、建图、预测、占用、规划串成一条链,任务关系建模最好——代价是串行结构训练不稳、推理慢到 1.8 FPS(555 毫秒延迟),上不了车。VAD 改成并行多头加矢量化表示,VAD-Tiny 跑到 16.8 FPS——快了近十倍,代价是丢掉了任务间的显式关系。DriveTransformer 则宣称用纯稀疏 Transformer 四项全占(辅助任务、任务关系、训练稳定、效率)——注意这是论文自己的评分表,听宣称,看复现。
那产业为什么普遍先做两段式?课件给了三条原因,前两条是技术判断:单个感知模块已基本收敛、规则规控没有数据驱动效果不好;第三条是"团队合作形成习惯"——感知团队和规划团队既有的协作方式本身构成架构惯性。这条组织因素在论文里永远看不到,却常常是真正的决定因素。两段式在训练上的含义也很具体:把"感知与规划联合训练"那一步主动划掉,用存好的感知结果甚至感知真值训练规划器——省下联合调参的痛苦,代价是放弃跨阶段梯度,还埋下一个隐患:用真值训练的规划器,上车后面对的是更差的真实感知输出,训练和部署的输入分布不一致。
轴二:生成器——轨迹从哪来
不管接口怎么定,最后总要有个东西把轨迹产出来。三类生成器:
Query:一组可学习的查询向量——可以理解为训练出来的信息槽——从场景特征里提取生成轨迹所需的信息。共同抽象很简单:Q 来自自车状态和导航,K/V 来自场景(BEV 特征、动静态感知、时序记忆),一次交叉注意力,输出轨迹。直接回归一条轨迹容易糊成平均解,所以 VADv2 把它改成了分类:预先把动力学可行的轨迹空间聚成 4096 条轨迹词表,模型给词表打分——回归问题变分类问题,多模态天然成立。
AR(自回归):把轨迹离散成 token,像写句子一样逐段生成。词表大小是个真实的设计旋钮(TRAJEGLISH 试了 128 到 512,词表越大位移空间覆盖越密)。好处是能借用整套语言模型基建、TopK 采样天然多模态;代价是串行解码慢,且误差逐 token 累积。
Diffusion(扩散):从随机噪声轨迹出发多轮去噪。天然多模态、可并行解码;代价是去噪轮次带来时延。有一个变体值得单记:Diffusion-ES 用扩散做变异、用打分做选择,完全不需要梯度——这意味着碰撞检查、交规这类不可微的工程约束可以直接挂在打分器上,不用改模型。
三类生成器回答的都是"轨迹怎么产生",不决定系统是一段式还是两段式——UniAD 和 VAD 都是 Query 系,但一段式接 AR 或 Diffusion 的方案同样存在。
轴三:训练——IL、RL,以及为什么总是两个都要
模仿学习(IL):用人类驾驶示范做监督。它有一个从 2016 年的 NVIDIA-E2E(端到端鼻祖)就暴露、至今没有根治的问题:采集的数据全是在道路中心线上行驶的完美数据,模型一旦偏离就进入没见过的状态,误差越滚越大。NVIDIA 当年的解法沿用至今:用偏置相机人工制造"偏离状态",标签配上"2 秒内驶回中心线的转向半径"——主动制造错误,教模型怎么回来。IL 还有一个特有的坑叫因果混淆:模型可能学到"前车刹车灯亮"和"我要刹车"的相关性,却把因果搞反。
强化学习(RL):让策略在闭环环境里按长期回报改进,能练 IL 给不了的纠错和交互。代价是依赖可信的环境和奖励——奖励有漏洞,策略就会投机(急加速、贴边刷分)。
课件末章的三方法对照表把互补性说透了:IL 类人但规则遵循不足、泛化差;RL 守规矩、能探索,但类人性不足、样本效率低;生成模型逼真但算不动稀有行为。"在遵循交规的同时保持类人"——这句话就是训练侧的终极目标,也解释了为什么量产配方总是 IL 打底、RL 精修。
配方的具体形态(两段式版本):第一步冻结其他模块、只用模仿学习训练规划器,数据分布是最大的坑(场景和行为要够多样——这是下一章数据闭环的伏笔);第二步联合微调(两段式主动跳过);第三步用更小的学习率、更少的数据做 RL 精修。学习率逐步递减,先粗后精。
三条轴正交,混轴是最大的坑
把三条轴叠起来:接口(一段/两段)× 生成器(Query/AR/Diffusion)× 训练(IL/RL/组合),任意组合都存在或可能存在。所以听到任何新方案,先把它拆到三条轴上——"我们是 Diffusion 端到端"只回答了生成器轴,接口和训练还得追问。最常见的错误是把轴混成一条"技术演进路线",以为一段式必然用 Diffusion、用 Diffusion 必然要 RL——三个独立选择被压扁成一个新旧标签。
回到贯穿案例:同一个汇入路口的日志被拿来训练。相机、导航、车辆状态是输入,人类司机"等待、探出、汇入"的轨迹是模仿目标,感知结果做辅助监督。接口可选一段或两段,生成器可用词表打分、逐 token 生成或去噪采样,训练先 IL 后针对"探出过快"这类闭环失败谨慎加 RL。无论选哪个组合,前六章的问题——场景理解、交互、约束、可执行性——一个都没消失,只是换了地方被解决。
接到下一环
模型在数据上学会了,不等于车会开了。上一章的四条轨迹需求(安全、合规、舒适、高效)现在要拿出来验收,而验收本身是个深坑——下一章开场就是一个专门打脸的实验:一个不看任何感知的两层 MLP,在最流行的评测指标上打平了最先进的端到端模型。
本章速查
| 概念 | 一句话 |
|---|---|
| 两个动机 | 信息损失("98% 是车"压缩掉上下文)+ 误差逐环放大;几十模块 vs 几百个 loss 的复杂度换位 |
| 接口轴 | 分界是中间结果是否不可绕过、梯度能否跨阶段传播;产业词=一段/两段,学术词=有/无辅助任务 |
| UniAD vs VAD | 串行链任务关系最好但 1.8 FPS;并行矢量化 16.8 FPS 但丢任务关系 |
| 两段式的三个原因 | 感知已收敛、规则规控不行、团队协作惯性(组织因素) |
| 生成器轴 | Query(VADv2 4096 词表,回归变分类)/ AR(token 逐段生成)/ Diffusion(去噪,多样性换时延) |
| 训练轴 | IL 类人不守规矩(分布偏移+因果混淆),RL 守规矩不类人(奖励投机);量产=IL 打底 + RL 精修 |
| 纠错数据 | NVIDIA 偏置相机制造偏离状态+回正标签——主动造错误教纠错 |
| 混轴 | 最大的坑:把三个独立选择压成一条"演进路线" |
材料来源
| 课程 | 章节 | 页码 | 用在哪 |
|---|---|---|---|
| A | A-01 端到端任务概述 | p12, p20 | 信息损失("98% 概率是车")、误差累积、因果混淆、传统 vs 端到端框图 |
| B | B-01 端到端自动驾驶概述与课程介绍 | p13, p17-p20 | 端到端本质定义、产业/学术两套分类词汇、UniAD 五类 Query |
| B | B-04 基于 Query 的端到端 Planner | p6-p11, p21-p23 | QKV 共同抽象、四种范式评分表、VAD 矢量化、VADv2 4096 轨迹词表 |
| B | B-07 端到端模型的训练范式 | p5-p12 | 几百个 loss、多阶段训练、三步训练配方、产业选两段式的三条原因、感知 GT 输入风险 |
| C | C-08 数据驱动的规划方法 | p2, p42-p48, p50-p83 | Diffusion-ES 无梯度、GenAD、轨迹 token 词表、IL/RL/生成模型优缺点对照表 |
| C | C-09 数据驱动前沿算法与发展趋势 | p3-p27 | NVIDIA-E2E 纠错数据、UniAD/VAD 架构与 FPS 对比(1.8 vs 16.8) |