【三分钟看懂 SimWAM】(下):91.5 PDMS 背后,强化学习与推理速度究竟说明了什么

上篇讲清了 SimWAM 最核心的结构:视频专家和动作专家在训练阶段联合学习,但隔离注意力不允许动作 token 偷看未来帧 token。视频生成负责把交通动态教进当前观察表征,部署时则移除未来视频 rollout,由动作专家直接规划轨迹。
这解决了“世界模型太慢”的一半问题。
另一半问题是:只靠模仿学习,动作模型优化的仍然是“像不像数据里的专家轨迹”,而不是一条轨迹是否真正兼顾安全、合规、效率与舒适。
SimWAM 因此在联合 Flow Matching 训练之后,又加入了一段只针对动作专家的强化学习。

图 1 NAVSIM 上的 PDMS—延迟对比:SimWAM 位于高分、低延迟区域;横轴越小、纵轴越高越好
从确定性 ODE 到随机 SDE:先让模型拥有“可选方案”
原始 Rectified Flow 使用确定性 ODE 从噪声积分到轨迹。同一个场景、同一份初始条件,通常会得到一条确定轨迹。
这对模仿学习没有问题,却不适合强化学习。强化学习需要模型对同一场景探索多种动作,比较哪些方案更好;策略更新还需要可计算的转移概率。确定性的 Flow ODE 既缺少自然探索,也没有方便使用的转移密度。
作者参考 Flow-GRPO,把 ODE 改写成保持相同边缘分布的随机微分方程(SDE)。直觉上,它没有推翻原来学到的生成分布,而是在采样过程中加入结构化随机性,让同一场景可以生成多条合理但不完全相同的轨迹。
每个场景采样 8 条候选轨迹,再用 NAVSIM 的组合 PDM 奖励评价:
- 是否发生碰撞;
- 是否留在可行驶区域;
- 是否有效向前行驶;
- 与潜在碰撞之间的时间裕量;
- 轨迹是否舒适。
模型根据组内相对优劣更新策略。为了保留联合训练已经蒸馏进来的动态先验,强化学习阶段只更新动作专家中的 LoRA,不重新训练整个视频专家。
作者还没有平均用力,而是重点训练模仿策略 PDMS 低于 90 的困难场景。实验显示,困难子集训练在 1.5 万步时达到 91.5;继续训练后反而略有下降,说明这里同样存在收益饱和。
91.5 PDMS,到底说明了什么
NAVSIM 的核心指标 PDMS 不是单一轨迹误差。它同时考虑 NC(无碰撞)、DAC(可行驶区域遵从)、EP(自车前进效率)、TTC(碰撞时间裕量)和 C(舒适度)。其中 NC 与 DAC 还会作为乘法惩罚:发生碰撞或明显驶出可行驶区域,综合分会受到直接打击。
SimWAM 在 navtest 上只使用一枚前视相机,输入分辨率为 $384\times672$,最终达到 91.5 PDMS。
比最终数字更能说明问题的是逐步消融:
| 配置 | PDMS | 相对前一步 |
|---|---|---|
| 仅 Action DiT | 86.6 | - |
| 加入未来视频联合训练 | 90.3 | +3.7 |
| 再加入强化学习 | 91.5 | +1.2 |
这组结果对应一条清晰的因果链:视频联合训练主要补上动态理解,强化学习再把轨迹从“模仿专家”推向“直接优化驾驶质量”。两者合计带来 4.9 分提升。
与论文比较的单相机方法相比,SimWAM 比 DriveLaW 高 2.4 分,比 DriveWAM 高 1.4 分,比 SGDrive 高 0.4 分。这里的“领先”应限定为论文给定版本、NAVSIM navtest 和对应实验设置,不宜外推成真实道路上的普遍优势。
省掉未来视频,不等于动作生成已经变成 1-NFE
SimWAM 的延迟优势很容易被一句“推理时不生成未来”说得过头。
论文在单张 NVIDIA A100 上测试,标准配置使用 10 个动作 Flow 采样步:
| 动作采样步数 | PDMS | 延迟 |
|---|---|---|
| 1 | 68.9 | 115 ms |
| 5 | 90.1 | 297 ms |
| 10 | 90.3 | 518 ms |
| 20 | 90.2 | 968 ms |
这说明 SimWAM 省掉的是未来视频生成的开销,不是把动作生成也压缩成一次前向。标准配置仍需要 10 步 Flow 采样;直接降到 1 步时,PDMS 会从 90.3 大幅降到 68.9。
因此,SimWAM 与“1-NFE 动作生成”解决的是两个不同瓶颈:
- SimWAM:去掉测试时的未来视频 rollout;
- 1-NFE 方法:继续压缩动作 Flow 本身的迭代采样。
两条路线并不冲突,反而很可能可以叠加。对真正追求高频控制的端侧系统而言,SimWAM 已经砍掉了最昂贵的视频生成支路,但 297—518 ms 的动作采样延迟仍有继续优化的空间。
分辨率消融也体现了同样的工程取舍。从 $192\times352$ 提升到 $384\times672$,PDMS 增加 1.4 分,延迟只增加 9 ms;再升到 $768\times1344$,只多 0.3 分,却又增加 55 ms。因此作者选择 $384\times672$ 作为精度与计算量的折中。
可替换的视频老师,是 SimWAM 最实用的地方
视频专家和动作专家不共享权重,只通过统一注意力接口的交互。这意味着,视频生成模型升级时,不必重写动作专家和推理流程。
论文替换了四种视频骨干:
| 视频模型 | PDMS |
|---|---|
| LTX-Video | 88.7 |
| Wan2.1-1.3B | 90.2 |
| Cosmos2.5 | 90.4 |
| Wan2.2-5B | 90.3 |
经过驾驶视频预训练的 Cosmos2.5 得分最高,而轻量 LTX-Video 明显较低。这既说明接口确实可替换,也说明“老师的动态先验质量”仍然重要:架构解耦不等于随便换一个视频模型都同样有效。
动作专家也能独立缩放。其规模从 0.21B 增加到 1.02B 时,PDMS 从 89.9 稳步升至 90.3。实际部署时,可以让大视频专家只在训练集群里工作,再根据车端预算选择较小的动作专家。
强化学习究竟把车开得哪里不一样
论文给出的两个案例很直观。只做模仿学习的 Ours-IL 在路口和狭窄街道上更保守,轨迹向前推进较短;加入强化学习后,Ours-RL 沿导航方向走得更远,同时仍保持在可行驶区域内,并与周围车辆留出安全距离。
这并不是说强化学习让车辆“更激进”,而是它开始直接权衡安全、合规与前进效率,不再只追求复刻数据中的单条专家轨迹。

图 2 两个 NAVSIM 场景中的 Ours-IL 与 Ours-RL:红圈标出强化学习后轨迹推进更充分的位置
零样本迁移不错,但还不能等同于真实道路验证
作者把只在 NAVSIM 上训练的 SimWAM 直接拿到 nuScenes 做开放环规划,没有微调,也没有使用地图、3D 占据或检测框等额外监督。
它取得了 0.96 m 的平均 L2 误差和 0.04% 的平均碰撞率。后者是论文表中最低值,说明学到的动态先验在数据集变化后仍表现出较好的安全性。
不过这里必须划清边界:
- NAVSIM 是非反应式规划 benchmark,不是车辆与环境实时交互的闭环实车实验;
- nuScenes 结果是开放环评估,低碰撞率不等于已经通过真实道路闭环验证;
- 论文证明的是“训练期未来视频监督可以提升规划”,没有证明生成的未来视频就是唯一真实未来。
所以,SimWAM 更适合被理解为一个干净、强劲且便于扩展的研究基线,而不是一套已经可以直接上车量产的完整自动驾驶系统。
想自己跑起来:先做一条样本的 Smoke Test
官方仓库已经放出代码与权重。环境使用 Python 3.10:
git clone https://github.com/H-EmbodVis/SimWAM.git
cd SimWAM
conda create -n simwam python=3.10 -y
conda activate simwam
python -m pip install -r requirements.txt
python -m pip install -e navsim --no-deps
python -m pip install -e . --no-deps
数据仍需按照 NAVSIM v1.1、nuPlan 与地图资源的官方说明准备。完成模型和数据准备后,可以先用作者提供的监督学习权重做单样本检查:
CKPT=./weights/SimWAM.pt \
TASK=navsim_uncond_front_384x672_1e-4 \
NPROC_PER_NODE=1 \
bash experiments/navsim/run_eval_navsim.sh \
EVALUATION.max_samples=1 \
EVALUATION.num_inference_steps=2 \
EVALUATION.save_videos=false
这条命令的用途是确认环境、权重和数据路径能否跑通,并不复现论文的 10 步完整精度。论文给出的监督训练脚本默认是 4 个节点、每节点 8 个进程;因此,从头训练不是普通单卡“快速开始”,建议先做 smoke test,再根据自己的硬件修改并行配置。
最后:世界模型可以留在训练场,不必一直坐在驾驶座上
SimWAM 最值得记住的,不是又叠了一套更复杂的自动驾驶模块,而是它重新安排了世界模型出现的时间。
过去的逻辑是:每次开车前,先把未来生成出来。
SimWAM 的逻辑则是:让未来视频在训练阶段塑造动态表征,部署时只保留真正负责行动的路径。
这背后是一条很有普适性的工程原则:昂贵的生成过程如果主要承担“教会模型理解世界”的作用,就不一定要原样保留到部署阶段。
对自动驾驶如此,对机器人控制也一样。训练可以允许模型慢慢想、反复模拟;真正上车、上机器人之后,系统需要留下的是那些已经被压进策略里的有效知识,以及一条足够短、足够稳定的行动链路。