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