先画清边界:一段式不是删掉所有模块
一段式端到端把动态目标、静态道路、导航和自车状态放进同一条可学习的信息流,让规划损失能影响共享表征。它并不要求取消编码器、后处理或控制器。规划器这一端怎么接输入,可以看一种量产方案:动态元素带位置、尺寸、航向、速度和预测轨迹;静态元素有路沿、车道线、箭头及其属性;SD 导航另外提供推荐车道、行点和剩余距离。三路各自编码,汇成环境特征,再由自车的多模态 Query 做交叉注意力,回归出轨迹。注意,这套接法里规划器只读结构化结果,按专题 01 的判据属于两段式的第二段;一段式会再给规划器接一条直读上游特征的旁路,规划器本身的结构可以几乎一样。
换个角度看,规划器本质上是一个轨迹解码器。查询来自自车状态,或者自车状态加导航。它读取的场景信息,可以是 BEV 特征、图像特征、动静态感知结果、导航和时序历史,也可以是它们的组合。输出是轨迹及其概率,也可以直接是控制量。所谓“感知规划一体化”,改变的主要是中间接口能不能学,地图拓扑、交通灯语义和车辆动力学并不会凭空消失。
导航也不是可有可无的附加信息,它决定候选分布朝哪里展开。经典规控靠参考线;有的方案把导航车道和行点直接写成场景 token;GoalFlow 先从目标点词表里选出一个目标点。真正的分歧在于用硬参考线、软导航 token 还是目标点词表,而不是要不要目标。导航条件太强也会出问题:模型容易照着 SD 行点去变道,结果变道偏晚。一个补法是随机丢掉一部分行点,做导航增强,逼模型更多依赖感知。
量产方案在生成器之后,还保留一整条执行链。多模轨迹先过滤,过滤时融合导航和动静态信息。接着做横纵解耦的打分,再做时空联合优化来精修轨迹,最后交给控制。端到端改变的是哪些接口可以学,不是取消“生成、选择、优化、控制”这几件事。所以评审一个一段式系统,至少要问清四个边界:规划器收到什么,生成器输出什么,谁从多条候选里选出一条,执行前还有哪些硬约束。只看网络结构图,会漏掉真正决定可用性的选择器和安全链路。
- 输入:传感器或它的场景表征,动态目标、地图和导航 token,自车历史与车辆状态。
- 输出:单条轨迹,多条轨迹及其分数,或者能进一步解码成控制量的动作 token。
- 执行前:导航一致性过滤,碰撞与可行驶区检查,时空优化,控制跟踪。
- 训练边界:共享表征是否被规划损失更新,比界面上还叫不叫“模块”,更能区分一段式和传统串联。
四种规划器,其实在解同一个条件生成问题
统一的写法,是从当前场景 s 生成未来轨迹 τ,也就是学一个 π(τ|s)。差别在三处:τ 怎么表示,训练目标怎么定,推理时怎么搜索。Query 回归型直接输出连续轨迹。Query 打分型先备好锚点或轨迹词表,再给每个候选打分;VADv2 的词表,就是从人类驾驶示范里挑出的 4096 条轨迹。AR 把轨迹拆成有顺序的离散动作 token。Diffusion 从带噪声的整段轨迹出发,反复去噪。Flow Matching 学的是从噪声轨迹流向真实轨迹的连续速度场。
经典规控给了一个绕不开的物理参照。Frenet 采样和 Lattice 先撒出一批候选,再按代价挑;时空搜索在 s-l-t 空间里按代价扩展节点;走廊方法先划出安全可行的空间,再在里面优化。说到底都是两步:先把可行的动作铺开,再按安全、效率、舒适和动力学选出一条。学习型规划器没有取消这个问题,只是把候选分布、代价,或者两者一起交给数据去学。所以比较生成模型时仍要检查四件事:候选有没有覆盖正确的机动,轨迹是否动力学可行,和他车的预测是否交互一致,最终选轨能不能解释。
Query 方案是重要的基线。回归型结构简单,容易和感知 Query 统一,但单条轨迹的 MSE 容易把几种合理的未来平均成一条;要出多模态,得靠多组 Query 加正负样本匹配。打分型靠锚点词表,稳定地给出多模态候选,上限却受词表覆盖约束。AR、Diffusion 和 Flow 的价值,是用不同的生成假设扩大候选的表达能力,而不是绕开候选覆盖和选择这两个基本问题。把它们放进同一个框架,是为了公平比较;但框架统一不等于差异消失:表示有盲区,搜索有成本,信用分配的粒度也各不相同。
AR
离散序列
- 表示:
acc / yaw_rate或dx / dy / dyaw这类动作 token。 - 训练:teacher forcing 下的 next-token 交叉熵。
- 推理:逐个 token 采样或取 Top-K,串行解码。
- 主要风险:量化误差,exposure bias,早期分支一旦选定就坍缩成单一模式。
Diffusion
整段轨迹的分布
- 表示:整段轨迹;可以从锚点附近起步,也可以只生成相对参考轨迹的残差。
- 训练:在随机时间步上回归噪声或 score。
- 推理:多条候选迭代去噪,候选之间可以并行。
- 主要风险:采样延迟,候选没有天然排序,锚点有盲区。
Flow
连续速度场
- 表示:从噪声轨迹到真实轨迹的概率路径。
- 训练:在任意时刻回归速度场。
- 推理:解条件 ODE,可以少步积分。
- 主要风险:少步时的质量,以及目标条件和选择器靠不靠得住。
AR:从场景 token 到动作 token,再自回归还原轨迹
AR 的第一步不是“套一个 GPT”,而是定义动作词表。常用的动作表示有两类:一类用 acc 和 yaw_rate,便于对应车辆控制和动力学;另一类用局部坐标下的 dx、dy、dyaw,直接表达相邻时刻的位姿变化。两类在量产里各有短板。acc / yaw_rate 总体表现更好,航向抖动多数时候也小得多,但急加减速时大加速度的动作很稀疏,表现会差很多。dx / dy / dyaw 在极端场景下相对更真实,但更难学;解码成框的中心点后再算航向,还会把抖动进一步放大。
连续动作可以按固定区间分 bin,也可以用 K-means 聚类建码本。Plan-R1 按车辆、行人、骑行者分别建码本,每类 [1024, 3],每一条记录 x、y 和航向。匹配真值时,它比较的是框的平均角点距离,而不是中心点距离;这样,位置相同、朝向不同的两个动作,不会被当成同一个。
场景侧也要 token 化。每个 token 由四块组成:矩形框 Polygon、折线 Polyline、属性 Property 和有效位 Mask。一个动态目标在每个历史时刻占一个 token。车道线、路沿、停止线和红绿灯带上各自的几何与属性。导航车道把是否推荐、车道序号、车道类型、距路口距离和转向语义写进 Property;导航行点作为一条 Polyline。Transformer decoder 在这些场景条件上,预测下一个动作 token。
训练时,连续的真值动作先匹配到最近的离散 token。teacher forcing 让每一步都看到真实历史,用交叉熵最大化 p(z_t | z_<t, context)。所以所有时间步可以并行训练,损失单一,梯度稳定。推理时就不一样了:模型要把刚预测的 token 解码成下一时刻的位姿,再把这段自己预测的历史喂回去,直到生成完整的 T 步轨迹。训练和推理的这种错位,正是误差累积的来源。Top-K 或采样可以给出多模候选,序列似然可以当排序信号,但似然高,不等于长期的安全收益高。
AR 的实时性瓶颈来自因果串行:动作 token 越密、预测时域越长,解码次数就越多。减少 token 数、一次输出一段动作块,或者分层先出意图再出细动作,都能降延迟,但会改变信用分配的粒度和闭环纠错的频率。DriveVLA-W0 的对比里,AR 的延迟随 token 数线性增长,Query 和 Flow Matching 基本恒定。这是架构趋势,不等于任何具体实现都一定更慢。
- 构建动作词表把连续控制量或相邻位姿变化离散成 token;检查码本覆盖率、量化误差,以及不同速度区间的分辨率。
- 编码场景上下文融合自车历史、动态目标、道路拓扑、交通灯、导航和有效性 mask;别只用视觉 token,丢掉车端必需的语义。
- 监督预训练用 teacher forcing 做 next-token 交叉熵,先得到一个能开、接近人类分布的策略初始解。
- 自回归推理逐步采样 token、更新局部位姿并回灌;同时监控解码延迟、非法 token、误差累积和分支过早收缩。
- 候选排序与约束不能只按序列似然执行;仍要做碰撞、可行驶区、导航、舒适度和控制可跟踪性检查。
Diffusion:不是把轨迹画成图片,而是对动作序列做条件去噪
Diffusion 规划器把整段未来轨迹或动作序列当作随机变量。训练时,从专家轨迹 τ 采一个时间步 t,加入高斯噪声;网络以场景 s、时间步 t 和带噪轨迹 x_t 为输入,回归加进去的噪声,或者等价的 score。在 Diffusion Policy 里,视觉观测可以用 FiLM 注入 Conv1D,也可以作为 Transformer 交叉注意力的 key 和 value。自动驾驶的实现通常还会接入 BEV、agent、地图、自车状态和导航目标,所以它不是无条件地“从噪声里造一条线”。
推理从一组噪声轨迹开始,从 x_T 一路去噪到 x_0。候选之间可以并行,但每条候选内部仍要调用多次 decoder。原版 Diffusion 需要的采样步数多,车端扛不住。DiffusionDrive 用 K-means 聚出锚点,代表直行、转弯、变道这类意图。它只在锚点附近按截断的 schedule 加噪,再用两步左右的 decoder 局部恢复,这就是截断扩散。它用结构先验换来了速度;但锚点词表没覆盖到的新机动,截断采样也会把这块盲区固化下来。
ResAD 更进一步,不预测整条轨迹。它先由当前的自车状态构造一条惯性参考,对参考加扰动,得到多个初始意图;再让 Diffusion 生成相对参考的归一化残差。这样,不同预测时刻的残差分布更一致,网络只需学“在物理先验上要修多少”,等于把驾驶物理放进了生成空间的先验。急转、紧急避障、低速博弈这类惯性参考本身就不好的场景,要单独验证残差空间是否仍能覆盖真值。
Diffusion 的多模态只是候选能力,不是决策能力。基础模型生成 N 条轨迹之后,必须有打分头、轨迹排序器、模式选择器或外部代价函数,选出最后一条。DiffusionDrive 同时预测分数和轨迹。ResAD 明确输出 Top-1 和 Top-5。DiffusionDriveV2 先用分数选出 Top-K,再学习排序。评测时要把“真值是否在 Top-K 里”和“Top-1 是否选对”分开,否则分不清失败出在生成器还是选择器。
- 定义生成空间选整段轨迹、锚点附近的轨迹,或惯性参考上的残差;做好坐标归一化和物理可行性检查。
- 构造场景条件把 BEV 或透视特征、agent 与地图、自车状态、导航或目标点注入去噪器,别只依赖随机噪声。
- 随机时间步训练给专家轨迹加噪,回归噪声或 score;可以同时保留监督规划损失,避免生成目标和驾驶目标脱节。
- 截断或少步去噪从锚点周围初始化多组候选,按固定步数迭代;实测端到端的 P50 和 P99 延迟,而不是只报 decoder 单步耗时。
- 排序和执行前检查用可行驶区、碰撞、导航、舒适和目标一致性选出 Top-1,再经规则过滤、时空精修和控制。
Flow Matching:学习“往哪里流”,再用 ODE 把噪声推成轨迹
Flow Matching 同样学习条件轨迹分布,但训练对象从 Diffusion 的噪声或 score,换成了速度场。对每条专家轨迹 τ,采一个高斯噪声 ε 和一个时刻 t∈[0,1],在线性概率路径上构造 x_t=(1-t)ε+tτ,目标速度就是 τ-ε。模型 v_θ(x_t,t,s) 看到场景编码 s 和当前的中间轨迹 x_t,回归“此刻该往哪个方向走”。训练仍是可并行的均方误差,训练时不需要完整地解一遍 ODE。
推理从 x_0=ε 出发,按 dx/dt=v_θ(x,t,s) 做 Euler 或更高阶的积分,直到 x_1 成为轨迹。因为学的是确定性 ODE,初始噪声和条件相同,路径就相同;换不同的初始噪声,仍能生成多模候选。步数可以比典型的 Diffusion 少,但步数越少,数值积分和模型逼近的误差越大。“可少步甚至一步”是方法的上限,要用闭环安全和候选覆盖去验证,不能直接写成量产事实。
GoalFlow 给出了 Flow 在规划器里的完整接口。感知模块先生成 BEV 特征。目标点词表结合自车状态和 BEV,用距离分和可行驶区合规分选出目标点。轨迹解码器以 BEV 和目标点为条件做 Flow Matching。最后,轨迹打分器从多条候选里选一条。可见 Flow 并没有取消离散先验和选择器,它换掉的只是“从目标到完整轨迹”这段连续生成。
Flow 的实时优势也离不开轨迹长度和网络结构。它可以并行更新整段轨迹,延迟不像 AR 那样随动作 token 数串行增长。但总预算里还有别的账:ODE 求解要调用网络的次数,也就是 NFE;还有候选数、场景交叉注意力和最后的打分器。“少步”是有条件的潜力,换了硬件、候选数和网络规模,不一定还成立。工程验收应报告 NFE、候选数、端到端频率、最坏延迟,以及闭环里降频运行的影响。
- 采样端点从专家数据取目标轨迹 τ,从简单分布取噪声轨迹 ε,保留场景条件 s。
- 随机选取中间时刻构造
x_t=(1-t)ε+tτ,让模型覆盖从纯噪声到真实轨迹的整条概率路径。 - 回归条件速度场最小化
v_θ(x_t,t,s)与τ-ε的差;场景编码、导航或目标点决定生成方向。 - 少步 ODE 推理从多组 ε 出发积分到 t=1;用 NFE 和端到端延迟衡量“少步”,而不是看方法名称。
- 目标与候选选择先验证目标点词表的覆盖,再验证轨迹打分器能否把安全、可行驶、导航一致的候选排到 Top-1。
选轨是第一等公民:生成得多,不等于最后选得对
Lattice 采样、DP 加 QP、时空走廊,这些传统方法早就把候选生成和代价选优分开了。候选要覆盖足够的机动,代价再权衡障碍、道路边界、效率、平滑和动力学。学习型规划器仍守着这个结构,只是候选和代价都可能由网络产生。如果论文只报 minADE / minFDE,它测的是候选集里最好的那一条,证明不了系统实际执行的 Top-1 是对的。Top-K 里的最好成绩只能诊断生成器,不能当执行验收;验收要同时报 Top-1、约束失败率和闭环表现。何况开环指标本身和真实闭环驾驶的相关性就很弱,更适合拿来看训练有没有收敛。
AR 可以用 token 概率或序列得分排序,但局部最大似然不等于整段的长期回报。Diffusion 本身没有显式的似然排序,通常要外接打分头或排序器。Flow 也要目标点打分器和轨迹打分器。选轨至少要融合碰撞、TTC、可行驶区合规、导航一致性、限速、舒适、进度和可控性,还要写明冲突时谁优先。一套量产 reward 的做法可以参考:按安全、法规、体感排优先级,一旦发生碰撞,绕行相关的奖励直接清零。
选择器上游还有一层常被忽略:他车预测怎样和自车候选配套。边际预测给每辆车各自独立地输出候选和概率,拼在一起,容易出现轨迹互相重叠的组合,现实里这些组合不可能同时发生。联合预测把概率放在整个场景上,各车轨迹是配套的,能体现交互。以自车动作为条件的预测更进一步,把自车的每条候选和他车的反应一起评估。规划器如果只在固定的他车预测上打分,就把交互风险留给了执行时去兜底。
- 生成质量:真值或安全可行的轨迹是否进了 Top-K;直行、转弯、让行、绕行这些关键模式是否都覆盖到。
- 排序质量:Top-1 和 Top-K 里的最优差多少;排序分数是否按场景分层校准过。
- 约束质量:候选在道路、碰撞、交规和动力学上的硬失败率。
- 闭环质量:执行 Top-1 之后,环境的反馈是否让下一周期的候选发生正确的变化。
硬数字对撞:三条路线各自的账单
AR 的第一笔账是词表。按时间步 token 化,10 秒、10Hz 就要生成 100 个 token,序列长,误差累积严重。改成空间点 token 只要 10 到 20 个,代价是时间变成隐式的,速度和 jerk 要另加约束。同一条轨迹,表示方式决定了序列长度和误差的传播路径。词表大小也是一笔取舍账。AutoVLA 把动作码本从 256 扩到 4096,建模误差 ADE 和 FDE 一路下降。覆盖率从 256 时的 86.47%,升到 2048 时的 99.42%,使用率一直是 100%。扩到 4096,覆盖率满了,使用率却跌到 91.46%,近一成的码字用不上。AutoVLA 最终取 2048,按覆盖率和使用率一起定词表大小。
tokenizer 的选择可以直接测出来。同一套 AutoVLA 框架下,K-disk 聚类词表的 PDMS 是 80.54,换成 FAST 的 DCT 压缩只有 67.63。让视觉语言模型输出物理动作 token,是 80.54 分、3.95 秒;让它用文字写航点坐标,掉到 71.31 分、7.65 秒,慢了近一倍,还低了九分多。tokenizer 本身就是控制接口:选错了表示,模型看起来会预测,落到控制上却更差;换成文字航点,还更慢。
Diffusion 的账单是延迟。标准扩散推理典型要 20 到 100 步,每一步都要跑一遍完整网络,对实时自动驾驶几乎不可接受。DiffusionDrive 的解法,是用 K-means 聚出驾驶意图锚点,围绕锚点加噪,把去噪截断到 2 步。反直觉的是,对照组 Transfuser_DP 跑满 20 步,反而发生了模式坍缩;截断到 2 步的版本,保住了多样的模式。截断的价值不只是少跑几步,更在于把无结构的高斯探索,换成了围绕意图锚点的局部探索。
延迟曲线也要看全。DriveVLA-W0 在同一个模型上换了三种动作专家。Query 专家稳定在约 75 毫秒,Flow Matching 专家稳定在约 145 毫秒。AR 专家从约 75 毫秒起步,随 token 数线性增长,过了 14 个 token 左右才比 Flow 慢。同一组对比里还有一个时序示例,AR 反而比 Flow 更稳,但只能当参考。
生成之后,还有一段被低估的差距。AutoVLA 单次采样是 80.54 分,Best-of-N 是 92.12 分,差了 11.6 分。这说明更好的答案就在模型的分布里,只是一次采样未必拿得到;强化微调之后,单次采样升到了 89.11。GoalFlow 从反面给了证据:没有目标点引导时,生成的轨迹混乱分散;加上目标点词表的距离分和可行驶区合规分,轨迹才收拢。Diffuser 更早给出了这种分工的原型:生成器只管学轨迹分布,价值函数在采样时用梯度把轨迹引向高回报,不必重训生成器。三条证据指向同一个结论:选轨器不是生成器的附件,而是和它并列的第一等公民。
最后几个对照实验提醒:别把性能差异全算到路线头上。DrivingGPT 只加了一个动作位置编码,PDMS 就从 65.3 涨到 82.4,17 分来自一个 embedding,不是范式革命。DriveMoE 的专家数量有一个最好的点:6 个能力专家时 Driving Score 是 74.22,13 个降到 70.88,44 个只剩 68.22。一种可能的解释是切得太细,每个专家分到的数据不够。路线之间的排序,还会随数据规模和评测口径变化。还是 DriveVLA-W0 那三种动作专家:在约 10 万帧的 NAVSIM 上,PDMS 依次是 Query 88.4、Flow 87.2、AR 85.3。换到 7000 万帧的内部数据,比 ADE 和碰撞率,AR 反而最好。很多“路线 A 打败路线 B”的对比里,藏着的是这类工程变量。
- 词表:100 个时间步 token 对 10 到 20 个空间点 token;码本扩到 4096,误差还在降,使用率却跌到 91.46%。
- tokenizer:K-disk 80.54 对 FAST 67.63;物理动作 3.95 秒对文字航点 7.65 秒。
- 延迟:标准扩散 20 到 100 步,难以上车;DiffusionDrive 截断到 2 步,模式反而更全;AR 专家过了约 14 个 token 才比 Flow 慢。
- 生成与选择:单次采样 80.54 对 Best-of-N 92.12,更好的答案就在分布里。
- 单变量:一个位置编码加 17.1 分;能力专家 6 个最好,44 个反降;数据从 10 万帧换到 7000 万帧,路线排序跟着变。
与 RL 的接口:优化的是 token、去噪过程,还是整段候选
AR 天然给出一个策略 π_θ(a_t|s_t)。监督阶段的损失是 -log π(a_t^gt|s_t);到了强化学习阶段,只是在 log 概率上乘一个优势,再加上相对参考模型的 KL 约束。动作、环境步和 reward 的时间粒度也容易对齐。Plan-R1 就是这么做的:冻结世界模型那一路解码器,只更新规划解码器。两路一起 rollout,用在路、碰撞、限速、舒适四项规则奖励打分,再用 GRPO 做组内比较。
Flow-GRPO 把 Flow 的生成过程当成策略:同一个条件下采一组样本,按组内的相对 reward 调整速度场的方向,再用裁剪目标和 KL 限制更新幅度。它的原始实验是文生图,搬到轨迹上思路一样。它让整段轨迹的 reward 进入了连续生成器,但信用分配仍停在轨迹级别;少步采样降低了 rollout 成本,却不会自动保证 reward 是对的。
Diffusion 接 RL 有三种深度,区别在于 reward 作用在哪一层。改得越深,能改变的越多,训练也越难:
- Energy-Based:生成之后按
exp(βR)给样本重新加权,生成器参数不动。改动最小,主要优化的是选择,多模态可能退化。 - Value-Guided:去噪时加入价值梯度,把轨迹往高回报处引,不用重训生成器,多模态也能保留。前提是有一个可微、可靠的价值函数。
- Policy-Level:把整条去噪过程当作策略,用 PPO 或 GRPO 直接更新生成器,能改变分布。代价是多步 log 概率难算、轨迹级的信用分配和高方差,高维空间里也容易坍缩。DiffusionDriveV2 属于这一类。它的锚点内 GRPO 只在同一个锚点里比较,防止模式坍缩;锚点间 GRPO 引入全局视角,避免在一组差候选里“矮子里拔将军”。
AR + RL
逐动作的信用分配
- 策略似然明确,KL 和参考模型的接口直接。
- rollout 粒度与环境步对齐。
- 长期 reward 仍可能被错误地归因到早期 token。
Diffusion + RL
整轨迹与去噪链的信用分配
- 适合对完整的多模候选施加长期 reward。
- 可以选重排、采样引导、直接更新三种深度。
- 去噪链长,log 概率和信用分配都更复杂。
Flow + RL
速度场的信用分配
- 少步生成有利于降低组内 rollout 的成本。
- GRPO 可以用组内相对优势更新连续生成器。
- 仍依赖可靠的 reward、闭环环境和行为锚点。
终局判断:AR + RL 被看作量产首选,但代价要算清
量产经验里有一个判断:AR + RL 是目前绝大多数公司的选择,可以参考 Plan-R1 的范式。这里要分清两件事。“AR 接强化学习的接口最直接”是结构事实;“绝大多数公司都选它”是经验判断,不是行业统计;它说的是路线选择,不等于闭环强化学习已经落地,一份八家厂商的对照里,没有一家标注闭环强化学习已落地。支撑这个判断的,是下表左栏的五项。反观扩散策略,接在线策略梯度时要专门处理 log 概率难算、方差大的问题,DPPO 这类工作要攻克的正是这一关;AR 天生没有这一关。
反过来看,AR 也有三处实打实的短板。多模态弱:第一个关键时间步就得“选边站”,选完之后,条件分布就压成了单一模式。长期规划弱:它优化的是下一步的似然,不直接回答哪个动作能带来更好的远期结果;Diffusion 一次生成整段,reward 可以覆盖全程。误差累积高:训练时 teacher forcing 看的是真值历史,推理时吃的是自己的预测,这种 exposure bias 在真车上还会沿着动力学继续放大。所以选哪条路,本质上是看团队更愿意承担哪一类复杂性。
Diffusion 一方对自己的短板,也有了成体系的回应。起点是一句落地判断:Diffusion 擅长覆盖多个模式,但落地需要的是可排序、可筛选、可评估风险。它没有显式的概率排序,不像 AR 有似然,也不像 RL 有价值函数。所以量产的组合方式,是让 Diffusion 只生成候选,把筛选交给规则、优化或强化学习。DiffusionDriveV2 是这条路的论文版本,正面回答了“那些不是最优的候选由谁来管”。Flow-GRPO 补上了流匹配的先天缺口:确定性 ODE 没有探索空间,转成 SDE 才有可以优化的分布。生成器路线之争的真实形态不是三选一,而是各自按不同的顺序,补齐“生成、排序、优化”这三件套。
AR + RL
赢在接口与可控
- 可解释性:强,逐步决策,每一步都能回放。
- 信用分配:粒度清晰,reward 能对齐到每个 token;但长期 reward 仍可能被错归到早期 token。
- 动作控制:精细,还能在 token 级别加 KL 和参考模型约束。
- 在线 rollout:便宜。
- reward 注入:直接。
Diffusion + RL
赢在多模态与长期结构
- 多模态:强,从噪声采样,天然生成多解。
- 长期规划:更强,一次生成整段,reward 覆盖全程。
- 误差累积:低,不做逐步累积。
- 代价:reward 要反传整个去噪过程,信用分配模糊,训练容易震荡、不收敛。
路线评审:不要问“选 AR 还是 Diffusion”,先问七个可验证问题
方法名替代不了系统规格。更有用的评审方式,是把所有方案放回相同的工作量和相同的闭环场景,逐项比较表示、输入、训练、推理、选轨、实时性和强化学习接口。如果一个方案用了更多候选、更大的感知骨干或额外的规则优化,却只拿规划器的名字来比,结论就没有决策价值。
还要分清一句话概括和实测结论。“AR 一步一步解码,比较慢”“Diffusion 天然多模,并行解码”,这类概括适合当索引,但不包含实际的 token 数、去噪步数和硬件。前面那些量产判断,也属于经验总结。最终选型,要用本团队的数据分布、芯片预算、闭环仿真和安全约束复验。
- 表示:连续轨迹、动作 token、锚点或参考轨迹上的残差,还是速度场?表示的盲区怎么测?
- 输入:动态、静态、导航、自车历史是否齐全?异步、缺失和噪声训练过没有?
- 训练:监督目标是否覆盖了基本的驾驶分布?多模态有没有被平均掉,或者过早坍缩?
- 推理:token 数、NFE 或去噪步数、候选数和 P99 端到端延迟各是多少?
- 选轨:Top-K 覆盖和 Top-1 选择各有多好?失败能否定位到生成器或排序器?
- 闭环:执行动作改变场景后,是否重新产生合理的分支?预测是否以自车动作为条件?
- 优化:强化学习的动作粒度、reward、参考模型、KL、信用分配和安全兜底,分别放在哪里?
沿着主线继续
相关术语
- 一段式——规划器除了结构化结果,还能直读上游的共享特征,规划损失能回传更新表征——上限更高,但难归因、难闭环验证。
- Query 与候选轨迹——query 是模型内部「带槽位的探针」,proposal 才是解码后拿出来比较的候选结果。
- 自回归轨迹生成——把轨迹变成 next-token prediction,一步步生成——训练稳定、天然接 RL,但会误差累积、多模态容易坍缩。
- 动作词元设计——「下一步」到底表示什么——不同的 token 定义会改变学习难度、噪声传播和极端场景表现。
- 扩散模型轨迹生成——先给真实轨迹逐步加噪,再学习反向去噪——天然适合表达「未来有多个合理答案」,但多步去噪会拖慢推理。
- 截断扩散与锚点——不从纯噪声出发,而是从聚类得到的轨迹锚点加少量噪声开始去噪,用少数几步换取车端实时性。
- 流匹配——不预测噪声,而是学习从噪声轨迹流向真实轨迹的连续速度场,推理时解 ODE——采样步数更少。
- 多模态轨迹——未来不是一个确定的点,而是一个分布:可以跟车、变道、让行、绕行,模型输出多条候选来表达这种不确定性。
- 导航路径——两段式方案里由模型预测的一条宏观参考线:只表达该往哪走,不是可执行轨迹,不能直接控车。
- 逐步展开与误差累积——策略一步步展开未来时,前一步的输出会变成后一步的输入——错了就会沿着错误状态一路滚下去。
- 信用分配——整条轨迹拿到一个 reward,要把功过分配回生成过程中的哪一步——AR 的粒度天然对齐到每个 token,但长期 reward 仍可能错归到早期动作;Diffusion 要摊回多个去噪步。
- PPO 与 GRPO——都是策略优化算法;GRPO 用「同场景多条候选的组内相对好坏」算优势,省掉了单独的价值网络。
相关论文
- VAD:面向高效自动驾驶的向量化场景表示——黑盒与结构化之间的折中
- VADv2:通过概率规划实现端到端向量化自动驾驶——概率规划
- DiffusionDrive:端到端自动驾驶的截断扩散模型——截断 + 锚点换实时
- ResAD:端到端自动驾驶的归一化残差轨迹建模——惯性参考 + 残差
- GoalFlow:目标驱动的流匹配多模态轨迹生成——给流一个目标点
- Plan-R1:把安全可行的轨迹规划建模为语言建模——规划语言化 + GRPO
- DiffusionDriveV2:强化学习约束的截断扩散建模——锚内提质,锚间协调
- Flow-GRPO:通过在线强化学习训练流匹配模型——ODE 转 SDE 再 RL
- FAST:面向视觉-语言-动作模型的高效动作词元化——tokenizer 即控制接口
- Diffuser:用扩散做灵活的行为合成——value 引导采样
- DPPO:扩散策略的策略优化——diffusion 微调方法论