论文链接https://arxiv.org/pdf/2602.22801项目主页https://zhengyinan-air.github.io/Hyper-Diffusion-Planner/清晨的城市道路上一辆搭载了扩散模型规划器的测试车驶入环岛前方电动车突然变道、对向车辆抢行模型本应规划出多模态的避让轨迹却因训练设计的缺陷要么轨迹抖动剧烈、要么陷入单一策略的模式塌缩最终不得不人工接管。这是扩散模型在自动驾驶落地中最常见的困境在仿真中表现亮眼的扩散模型一旦进入真实道路的闭环场景就会因误差累积、设计冗余、数据不足等问题彻底暴露能力短板。长期以来扩散模型在自动驾驶规划中的应用始终困在“开环仿真”的舒适区强先验设计的堆砌掩盖了模型本身的潜力也让业界始终质疑扩散模型真的能成为自动驾驶端到端规划的核心方案吗针对这一问题清华AIR与小米汽车联合团队推出Hyper Diffusion Planner (HDP)从扩散损失空间、轨迹表示、数据缩放三大维度系统性重构扩散模型设计并融合轻量化强化学习后训练在Xiaomi SU7上完成6类城市场景、200km实车闭环测试实现较基础模型性能10倍提升首次让纯扩散模型在真实道路中跑起来、跑稳了、跑安全了。本文将从问题本质到技术细节全面拆解HDP的核心创新与落地思路为扩散模型在自动驾驶端到端规划的工业化应用提供全新范式。1. 核心痛点扩散模型自动驾驶落地的三道“坎”扩散模型凭借强大的生成与多模态建模能力成为机器人决策、自动驾驶规划的研究热点但从仿真到实车必须跨越三大核心挑战这也是HDP研究的核心出发点任务特性不匹配扩散模型的经典设计源于图像生成而自动驾驶规划轨迹是低维、强约束、强时序相关的决策输出直接沿用图像生成的损失与表征设计会导致训练不稳定、轨迹抖动、闭环性能退化闭环误差放大开环仿真中的微小轨迹偏差在真实道路的连续决策中会不断累积最终演变为碰撞、偏离车道等安全风险而现有方法缺乏对闭环稳定性的针对性设计强先验掩盖模型潜力为降低学习难度现有方案普遍引入anchor轨迹、goal点等强先验设计或依赖复杂的规则后处理既增加了工程冗余也让扩散模型的原生能力无法被充分验证和释放数据规模限制涌现小数据量下扩散模型极易发生模式塌缩无法生成多模态的驾驶轨迹而自动驾驶领域的主流基准数据集规模有限难以支撑扩散模型的能力涌现。针对以上问题HDP团队提出“无锚点、无目标点”的纯扩散模型设计思路从基础训练范式到工程落地进行全链路优化最终实现扩散模型在自动驾驶端到端规划中的原生能力释放。2 HDP整体框架从模仿学习预训练到强化学习后训练的双阶段设计HDP的核心框架分为模仿学习IL预训练和强化学习RL后训练两大阶段整体架构如图1所示核心设计围绕扩散损失空间优化、轨迹表示双优融合、大规模数据缩放、轻量化RL后训练四大模块展开全程摒弃强先验设计仅通过纯扩散模型的设计优化和数据驱动实现从“能生成轨迹”到“能实车闭环”的跨越。图1 Hyper Diffusion Planner (HDP) 整体框架HDP的基础模型由场景编码器和扩散解码器构成场景编码器Scene Encoder基于工业级感知骨干网络处理相机、激光雷达多模态输入生成BEV特征并通过OD Tokens目标检测、LD Tokens车道检测、Navi Tokens导航信息融合场景与导航特征扩散解码器(Diffusion Decoder):基于纯Transformer扩散模型以融合后的特征和带噪轨迹Token为输入通过去噪过程生成规划轨迹无任何锚点、目标点等强先验约束。图2详细拆解了 HDP 的模型架构分为感知与编码、解码与生成两大核心部分。感知端由 Perception Backbone感知骨干网络和 Navi Encoder导航编码器组成将多模态感知数据转化为 BEV 特征再生成 OD、LD、Navi 三类 Tokens 并融合解码端为基于 Transformer 的 Diffusion Decoder先将带噪轨迹 τₜ拆分为 L 个 Noised Tokens叠加位置嵌入和自车状态嵌入后经自注意力块融合 token 信息再通过交叉注意力块整合感知 / 导航 Tokens 与轨迹 Tokens扩散时间步 t 则通过自适应层归一化块融入模型最终经 MLP 层输出预测噪声完成轨迹生成的核心计算完整呈现了从输入特征到噪声预测的全流程网络结构。接下来我们将从四大核心技术模块出发逐一拆解HDP的设计细节与创新点其中所有公式均采用MathJax3行内格式确保学术准确性与可读性。3. 核心创新1重新定义扩散损失空间找对规划任务的“训练坐标系”扩散模型的训练核心是学习去噪过程经典方法会训练模型预测噪声ϵ \epsilonϵ、扩散速度μ t \mu_tμt或干净数据τ 0 \tau_0τ0三种量之一并搭配对应的损失函数形成9种预测-损失组合。但图像生成的经典配置并不适配自动驾驶规划任务原因在于图像是高维无约束的生成结果而规划轨迹是低维流形上的强约束决策错误的损失空间会导致训练慢、轨迹差、闭环不稳。3.1 扩散模型的基础去噪公式扩散模型的前向过程将干净轨迹τ 0 \tau_0τ0逐步加噪为带噪轨迹τ t \tau_tτt公式为3.2 9种预测-损失组合的系统性对比团队对τ 0 \tau_0τ0-pred预测干净轨迹)、u − p r e d u-predu−pred预测扩散速度)、ϵ − p r e d \epsilon-predϵ−pred预测噪声三种预测方式与τ 0 \tau_0τ0-pred直接监督干净轨迹、u − l o s s u-lossu−loss监督扩散速度、ϵ − l o s s \epsilon-lossϵ−loss监督噪声三种损失函数的所有9种组合进行了开环实验实验结果如表1所示3.3 最优配置τ 0 \tau_0τ0-pred τ 0 \tau_0τ0-loss从实验结果和学习动力学分析τ 0 \tau_0τ0-pred τ 0 \tau_0τ0-loss是自动驾驶规划任务的最优扩散损失配置核心优势体现在两点1.收敛速度快训练稳定性高规划轨迹τ 0 \tau_0τ0处于低维流形模型更容易捕捉其特征而ϵ \epsilonϵ和μ t \mu_tμt处于高维空间需要更大的模型容量训练过程易出现震荡。从学习曲线图3可看出τ 0 \tau_0τ0-pred模型的开环得分随训练步数快速上升而其他配置则表现出明显的不稳定性生成轨迹质量高动力学一致性好ϵ \epsilonϵ-pred等模型在低噪声的最终去噪阶段难以估计微弱的噪声信号易生成高频伪影导致轨迹抖动、航向突变而τ 0 \tau_0τ0-pred直接预测干净轨迹能有效抑制噪声生成的轨迹更平滑末段抖动更少几何质量和动力学一致性更优图4。这一设计的核心意义为扩散模型在自动驾驶规划任务中校准了“基础训练坐标系”让后续的表征设计、数据扩展能够真正发挥效果而非在错误的训练方向上做无用功。4 核心创新2Hybrid Loss混合损失函数兼顾轨迹几何与动力学的“双优解”确定最优损失空间后团队发现轨迹表示方式存在典型的权衡问题trade-off自动驾驶规划的轨迹表示主要有两种方式二者各有优劣单一表示无法满足实车闭环的需求1.Waypoint表示航点表示直接预测轨迹的空间坐标全局几何对齐性好能精准匹配道路结构但速度曲线易出现剧烈抖动舒适性差闭环中易因速度突变引发安全风险2.Velocity表示速度表示)预测轨迹的速度序列通过积分得到空间坐标速度曲线平滑动力学一致性好但对全局轨迹形状的恢复能力不足易出现轨迹偏形、偏离车道等问题。为解决这一问题HDP提出Hybrid Loss混合损失函数实现两种表示方式的优势融合既保证全局几何趋势又维持局部动力学平顺成为模型从“能跑”到“跑得稳”的关键。4.1 Hybrid Loss的设计思路Hybrid Loss的核心设计是模型仍输出速度序列保证数值稳定性训练时同时施加速度监督和积分后的航点监督既约束局部速度的平顺性又约束全局轨迹的几何形状。4.2 Hybrid Loss的理论有效性证明团队从理论上证明Hybrid Loss并非简单的损失叠加而是等价于P-范数下的有效扩散得分匹配损失其最小值仍为扩散模型的边际得分函数保证了扩散训练的原生有效性定理如下这一证明的核心意义在于Hybrid Loss在融合两种表示优势的同时没有破坏扩散模型的训练原理避免了因额外损失引入的得分函数偏差保证了训练的理论严谨性。4.3 Hybrid Loss的工程优化在工程实现中航点损失的积分过程会导致未来时间步的梯度累积造成梯度分布失衡。团队通过梯度解耦窗口解决该问题将超出窗口大小 的轨迹历史梯度解耦仅在窗口内传播梯度既保证了训练稳定性又不影响损失的约束效果伪代码见论文附录Algorithm 1。4.4 实车闭环的性能提升Hybrid Loss在实车闭环测试中实现了全指标提升如图7所示相比单一的Waypoint或Velocity表示Hybrid Loss在成功率、车道居中性能、速度合规性三大核心闭环指标上均有显著提升其中成功率提升49.2%成为模型实现实车稳定闭环的关键设计。5、核心创新3近亿级真实数据缩放激发扩散模型的多模态“涌现”能力扩散模型的多模态生成能力是其作为自动驾驶规划器的核心优势但这一能力的发挥高度依赖数据规模。现有自动驾驶基准数据集如NAVSIM仅有约100K帧训练数据小数据下扩散模型极易发生模式塌缩无法生成多模态的驾驶轨迹只能输出单一僵化的策略难以应对真实道路的复杂交通交互。为验证数据规模对扩散模型的影响团队开展了100K帧到70M帧的受控数据扩展实验系统验证了真实驾驶数据的“涌现”效应这也是首次在工业级规模数据上验证扩散模型在自动驾驶规划中的scaling特性。5.1 数据缩放的核心实验结果1.多模态能力显著增强通过轨迹散度分数Divergence Score衡量模型的多模态生成能力分数越高表示轨迹的多样性越强。实验发现100K帧小数据下散度分数几乎为0模型完全模式塌缩当数据规模提升至20M帧时散度分数快速上升模型能生成多种合理的轨迹策略图8、图9例如同一场景下的减速避让、绕行避让等不同行为2.开环与闭环指标持续提升从10M帧到70M帧模型的开环得分提升约10%闭环得分提升超20%实现了性能随数据规模的线性增长图10验证了HDP在工业级数据下的可扩展性3.长尾交通交互覆盖能力提升大规模数据让模型学习到更多复杂的交通场景如加塞、无保护左转、避让弱势道路参与者等在长尾场景下的闭环成功率显著提升避免了小数据下的策略泛化不足问题。5.2 数据缩放的核心结论只有在足够大的真实数据规模下扩散模型的多模态能力才能被充分激发而这一能力在现有基准数据集的规模下难以体现。HDP的设计摒弃了强先验让模型的能力完全由数据驱动这一特性使其具备工业化大规模部署的潜力——随着自动驾驶路测数据的持续积累HDP的性能将持续提升而无需对模型结构进行大幅修改。6、核心创新4轻量化RL后训练让扩散模型“跑得更安全”模仿学习预训练能让模型学到“像人开车”的行为但在安全关键场景如跟车停车、避让行人/非机动车、路口让行等模仿学习缺乏对安全约束的显式优化模型可能会生成存在安全风险的轨迹。为解决这一问题团队在模仿学习预训练的基础上引入与Hybrid Loss兼容的轻量化强化学习后训练策略将安全偏好注入扩散模型实现从“能开”到“开得更安全”的进阶最终得到HDP-RL模型。与现有扩散模型的RL方法相比HDP的RL策略具有实现简单、计算量小、兼容现有训练管线的核心优势。6.1 带KL正则的离线RL优化目标6.2 RL-Hybrid Loss融合安全偏好的加权损失现有扩散模型的RL方法通常将去噪过程拆分为多步MDP用PPO等算法优化实现复杂且计算量巨大。HDP则提出RL-Hybrid Loss将RL的权重直接融入Hybrid Loss相当于“加权监督学习”无需修改扩散模型的核心结构工程复杂度极低。RL-Hybrid Loss的公式为其中e x p ( β r ) exp(\beta r)exp(βr)为安全回报的权重回报越高越安全的样本在训练中的权重越大P PP为Hybrid Loss中的正定矩阵保证与预训练的损失兼容。6.3 RL后训练的理论有效性6.4 安全性能的实车提升RL后训练让HDP-RL在安全关键场景的闭环成功率实现显著提升图11c跟车停车场景提升25.0%、避让弱势道路参与者VRUs提升13.8%、路口让行提升5.3%实现了安全相关行为的针对性强化。同时由于RL策略仅优化安全目标模型不会出现过度保守的行为保证了驾驶效率。7.200km实车闭环测试HDP的核心性能成果HDP在Xiaomi SU7上完成了6类城市驾驶场景、200km真实道路闭环测试测试场景包括起步、跟车停车、导航变道、避让VRUs、路口让行、左右转弯覆盖了城市道路的主流场景。所有模型均仅采用轻量的轨迹平滑后处理无任何规则化的重后处理真实反映了扩散模型的原生能力。不同模型版本的核心性能指标如表2所示从实验结果可得出三大核心结论1.性能提升超10倍HDP的闭环综合得分达75.38较基础模型的7.83提升约10倍首次实现纯扩散模型在实车闭环中的高性能表现2.Hybrid Loss是闭环性能的关键拐点加入Hybrid Loss后模型的闭环成功率从34.72跃升至61.88稳定性得分从9.24跃升至53.88证明轨迹表示的双优融合是实现实车稳定闭环的核心3.数据缩放与RL后训练实现性能持续进化近亿级数据缩放让模型的稳定性得分进一步提升至79.53RL后训练让安全关键场景的成功率再提升最终HDP-RL实现闭环综合得分76.20达到实车落地的性能要求。同时HDP在实车测试中展现出高效的推理速度模型转换为ONNX格式后通过TensorRT优化实现硬件加速结合DPM-Solver快速采样推理速度达到10Hz完全满足车端实时性要求。8. 研究意义与行业启示清华小米的HDP研究不仅是扩散模型在自动驾驶端到端规划中的一次成功的实车验证更为自动驾驶的端到端落地提供了全新的技术范式和行业启示核心意义体现在三点8.1 验证了纯扩散模型作为自动驾驶规划器的可行性HDP摒弃了所有强先验设计仅通过扩散模型的原生设计优化和数据驱动实现了实车闭环的高性能表现打破了“扩散模型只能做仿真无法做实车”的固有认知证明扩散模型的多模态、生成式能力完全可以成为自动驾驶端到端规划的核心竞争力。8.2 明确了扩散模型自动驾驶落地的三大核心设计原则团队通过系统性的实验为扩散模型在自动驾驶规划中的设计提供了明确的原则选对损失空间、融合轨迹表示、规模化真实数据这三大原则不仅适用于HDP也为其他扩散模型的自动驾驶研究提供了通用的设计思路避免了无意义的试错。8.3 为端到端自动驾驶的工业化落地提供了可扩展的框架HDP的设计具备数据驱动、轻量化、高可扩展的特性随着路测数据的积累模型性能可持续提升RL后训练策略兼容现有训练管线无需大幅修改模型推理速度满足车端实时性要求工程落地难度低。这一框架让端到端自动驾驶从“实验室研究”走向“工业化部署”成为可能。8.4 重新定义了自动驾驶端到端的核心竞争力数据与模型设计的双轮驱动HDP的研究证明在端到端自动驾驶中强先验设计的价值正在降低而高质量的真实数据和优秀的模型原生设计将成为核心竞争力。未来自动驾驶的端到端落地将不再是“规则模型”的混合方案而是“数据驱动模型模型释放能力”的纯学习方案。9 总结与展望从仿真中的“纸上谈兵”到实车上的“真刀真枪”HDP通过对扩散模型的系统性重构首次让纯扩散模型在自动驾驶端到端规划中实现了200km实车闭环的高性能表现回答了业界的核心质疑扩散模型在自动驾驶规划中的潜力完全可以被真正发挥出来。HDP的核心创新在于回归扩散模型的原生设计从损失空间、轨迹表示、数据缩放三大维度解决了与自动驾驶规划任务的不匹配问题并通过轻量化RL后训练实现了安全性能的强化最终形成了一套从训练到落地、从仿真到实车的完整解决方案。未来团队将从三个方向继续优化HDP一是融合效率与安全的多目标RL回报函数让模型在安全的同时保证驾驶效率二是进一步提升模型的长尾场景泛化能力通过数据增强、跨域学习等方法覆盖更多复杂交通场景三是实现HDP与感知、控制的全链路端到端融合打造真正的端到端自动驾驶系统。此次清华与小米的合作将学术界的理论创新与工业界的工程落地完美结合为扩散模型在自动驾驶的工业化应用迈出了关键一步。我们有理由相信随着扩散模型设计的持续优化和真实数据的不断积累纯扩散模型驱动的端到端自动驾驶将成为未来自动驾驶的主流范式让自动驾驶从“规则定义”走向“数据生成”最终实现更智能、更安全、更通用的自动驾驶体验。classHybridVLoss(nn.Module):def__init__(self,global_config:GlobalConfig,task_config):super(HybridVLoss,self).__init__()self.global_configglobal_config self.task_configtask_configdef_detached_integral(self,velocity:torch.Tensor,detach_window_size:int10)-torch.Tensor: Integrate velocity to get position, with clipped gradient inside a sliding window to stabilize training. Code adapted from: https://github.com/ZhengYinan-AIR/Hyper-Diffusion-Planner/blob/main/HDP-nuplan/hdp_nuplan/utils/traj_kinematics.py#L3 Args: velocity: torch.Tensor of shape [B, A, T1, D], where D is the dimension of velocity (e.g., 2 for x and y) detach_window_size: int, the size of the sliding window for gradient clipping. Returns: cumulative_sum: torch.Tensor of shape [B, A, T1, D], the integrated position with detached gradients in the recent window. cum_detachtorch.cumsum(velocity.detach(),dim-2)cum_normaltorch.cumsum(velocity,dim-2)# number of gradient from previous timesteps contained in:# shifted: [0, 1, 2, ..., window_size-1, window_size, ...., T] -# shifted: [T-window_size1, T-window_size2, ...,T, 0, 1, 2, ...., T - window_size] -# sum_recent: [0, 1, 2, ..., window_size-1, window_size, ...., window_size]shiftedtorch.roll(cum_normal,shiftsdetach_window_size,dims-2)shifted[...,:detach_window_size,:]0sum_recentcum_normal-shifted cum_detach_shiftedtorch.roll(cum_detach,shiftsdetach_window_size,dims-2)cum_detach_shifted[...,:detach_window_size,:]0cumulative_sumcum_detach_shiftedsum_recentreturncumulative_sumdefforward(self,preds_v:torch.Tensor,truth_v:torch.Tensor,truth_theta:torch.Tensor,truth_xy:torch.Tensor,truth_xy_current:torch.Tensor,lr:torch.Tensor,dt:float0.1,hybrid_loss_xy_weight:float0.1)-torch.Tensor: Args: preds_v: torch.Tensor of shape [B, A, T, 2], predicted velocity in x and y directions truth_v: torch.Tensor of shape [B, A, T, 1], ground truth velocity magnitude truth_theta: torch.Tensor of shape [B, A, T, 1], ground truth heading angle truth_xy: torch.Tensor of shape [B, A, T, 2], ground truth positions in x and y directions truth_xy_current: torch.Tensor of shape [B, A, 1, 2], current position in x and y directions lr: torch.Tensor of shape [B, A, T, 1], weight for each point in the loss calculation, can be used to mask out invalid points Returns: hybrid_loss: torch.Tensor, the combined loss of velocity and position truth_vxtruth_v*torch.cos(truth_theta)truth_vytruth_v*torch.sin(truth_theta)truth_vxytorch.cat([truth_vx,truth_vy],dim-1)loss_vtorch.norm(preds_v-truth_vxy,dim-1,keepdimTrue)preds_xytorch.cat([truth_xy_current,preds_v*dt],dim-2)preds_xyself._detached_integral(preds_xy,detach_window_size10)[...,1:,:]loss_xytorch.norm(preds_xy-truth_xy,dim-1,keepdimTrue)hybrid_lossloss_vhybrid_loss_xy_weight*loss_xy lr_counttorch.sum(lr).clamp(1.0)hybrid_losstorch.sum(hybrid_loss*lr)/lr_countreturnhybrid_lossdef_detached_integral(self,velocity:torch.Tensor,detach_window_size:int10)-torch.Tensor: Integrate velocity to get position, with clipped gradient inside a sliding window to stabilize training. Code adapted from: https://github.com/ZhengYinan-AIR/Hyper-Diffusion-Planner/blob/main/HDP-nuplan/hdp_nuplan/utils/traj_kinematics.py#L3 Args: velocity: torch.Tensor of shape [B, A, T1, D], where D is the dimension of velocity (e.g., 2 for x and y) detach_window_size: int, the size of the sliding window for gradient clipping. Returns: cumulative_sum: torch.Tensor of shape [B, A, T1, D], the integrated position with detached gradients in the recent window. cum_detachtorch.cumsum(velocity.detach(),dim-2)cum_normaltorch.cumsum(velocity,dim-2)# number of gradient from previous timesteps contained in:# shifted: [0, 1, 2, ..., window_size-1, window_size, ...., T] -# shifted: [T-window_size1, T-window_size2, ...,T, 0, 1, 2, ...., T - window_size] -# sum_recent: [0, 1, 2, ..., window_size-1, window_size, ...., window_size]shiftedtorch.roll(cum_normal,shiftsdetach_window_size,dims-2)shifted[...,:detach_window_size,:]0sum_recentcum_normal-shifted cum_detach_shiftedtorch.roll(cum_detach,shiftsdetach_window_size,dims-2)cum_detach_shifted[...,:detach_window_size,:]0cumulative_sumcum_detach_shiftedsum_recentreturncumulative_sum_detached_integral 代码深度解析梯度裁剪窗口积分技术这段代码实现了带梯度裁剪的滑动窗口积分是扩散轨迹规划器中稳定长序列训练的核心技术。它解决了速度→位置积分过程中的梯度爆炸问题同时保持轨迹的物理连续性。代码逐行解析def_detached_integral(self,velocity:torch.Tensor,detach_window_size:int10)-torch.Tensor:# velocity: [B, A, T1, D] Bbatch, Aagent, Ttime, Ddim(x,y)# 1. 无梯度累积切断所有历史梯度cum_detachtorch.cumsum(velocity.detach(),dim-2)# [B, A, T1, D]# 2. 有梯度累积保留完整梯度链cum_normaltorch.cumsum(velocity,dim-2)# [B, A, T1, D]# 3. 构造近期窗口关键shiftedtorch.roll(cum_normal,shiftsdetach_window_size,dims-2)# 循环右移shifted[...,:detach_window_size,:]0# 修复边界前window_size步置0sum_recentcum_normal-shifted# 仅保留最近window_size步的累积# 4. 构造早期历史无梯度cum_detach_shiftedtorch.roll(cum_detach,shiftsdetach_window_size,dims-2)cum_detach_shifted[...,:detach_window_size,:]0# 5. 合成最终位置早期历史(无梯度) 近期窗口(有梯度)cumulative_sumcum_detach_shiftedsum_recentreturncumulative_sum
Hyper-Diffusion-Planner(1): 论文解读
论文链接https://arxiv.org/pdf/2602.22801项目主页https://zhengyinan-air.github.io/Hyper-Diffusion-Planner/清晨的城市道路上一辆搭载了扩散模型规划器的测试车驶入环岛前方电动车突然变道、对向车辆抢行模型本应规划出多模态的避让轨迹却因训练设计的缺陷要么轨迹抖动剧烈、要么陷入单一策略的模式塌缩最终不得不人工接管。这是扩散模型在自动驾驶落地中最常见的困境在仿真中表现亮眼的扩散模型一旦进入真实道路的闭环场景就会因误差累积、设计冗余、数据不足等问题彻底暴露能力短板。长期以来扩散模型在自动驾驶规划中的应用始终困在“开环仿真”的舒适区强先验设计的堆砌掩盖了模型本身的潜力也让业界始终质疑扩散模型真的能成为自动驾驶端到端规划的核心方案吗针对这一问题清华AIR与小米汽车联合团队推出Hyper Diffusion Planner (HDP)从扩散损失空间、轨迹表示、数据缩放三大维度系统性重构扩散模型设计并融合轻量化强化学习后训练在Xiaomi SU7上完成6类城市场景、200km实车闭环测试实现较基础模型性能10倍提升首次让纯扩散模型在真实道路中跑起来、跑稳了、跑安全了。本文将从问题本质到技术细节全面拆解HDP的核心创新与落地思路为扩散模型在自动驾驶端到端规划的工业化应用提供全新范式。1. 核心痛点扩散模型自动驾驶落地的三道“坎”扩散模型凭借强大的生成与多模态建模能力成为机器人决策、自动驾驶规划的研究热点但从仿真到实车必须跨越三大核心挑战这也是HDP研究的核心出发点任务特性不匹配扩散模型的经典设计源于图像生成而自动驾驶规划轨迹是低维、强约束、强时序相关的决策输出直接沿用图像生成的损失与表征设计会导致训练不稳定、轨迹抖动、闭环性能退化闭环误差放大开环仿真中的微小轨迹偏差在真实道路的连续决策中会不断累积最终演变为碰撞、偏离车道等安全风险而现有方法缺乏对闭环稳定性的针对性设计强先验掩盖模型潜力为降低学习难度现有方案普遍引入anchor轨迹、goal点等强先验设计或依赖复杂的规则后处理既增加了工程冗余也让扩散模型的原生能力无法被充分验证和释放数据规模限制涌现小数据量下扩散模型极易发生模式塌缩无法生成多模态的驾驶轨迹而自动驾驶领域的主流基准数据集规模有限难以支撑扩散模型的能力涌现。针对以上问题HDP团队提出“无锚点、无目标点”的纯扩散模型设计思路从基础训练范式到工程落地进行全链路优化最终实现扩散模型在自动驾驶端到端规划中的原生能力释放。2 HDP整体框架从模仿学习预训练到强化学习后训练的双阶段设计HDP的核心框架分为模仿学习IL预训练和强化学习RL后训练两大阶段整体架构如图1所示核心设计围绕扩散损失空间优化、轨迹表示双优融合、大规模数据缩放、轻量化RL后训练四大模块展开全程摒弃强先验设计仅通过纯扩散模型的设计优化和数据驱动实现从“能生成轨迹”到“能实车闭环”的跨越。图1 Hyper Diffusion Planner (HDP) 整体框架HDP的基础模型由场景编码器和扩散解码器构成场景编码器Scene Encoder基于工业级感知骨干网络处理相机、激光雷达多模态输入生成BEV特征并通过OD Tokens目标检测、LD Tokens车道检测、Navi Tokens导航信息融合场景与导航特征扩散解码器(Diffusion Decoder):基于纯Transformer扩散模型以融合后的特征和带噪轨迹Token为输入通过去噪过程生成规划轨迹无任何锚点、目标点等强先验约束。图2详细拆解了 HDP 的模型架构分为感知与编码、解码与生成两大核心部分。感知端由 Perception Backbone感知骨干网络和 Navi Encoder导航编码器组成将多模态感知数据转化为 BEV 特征再生成 OD、LD、Navi 三类 Tokens 并融合解码端为基于 Transformer 的 Diffusion Decoder先将带噪轨迹 τₜ拆分为 L 个 Noised Tokens叠加位置嵌入和自车状态嵌入后经自注意力块融合 token 信息再通过交叉注意力块整合感知 / 导航 Tokens 与轨迹 Tokens扩散时间步 t 则通过自适应层归一化块融入模型最终经 MLP 层输出预测噪声完成轨迹生成的核心计算完整呈现了从输入特征到噪声预测的全流程网络结构。接下来我们将从四大核心技术模块出发逐一拆解HDP的设计细节与创新点其中所有公式均采用MathJax3行内格式确保学术准确性与可读性。3. 核心创新1重新定义扩散损失空间找对规划任务的“训练坐标系”扩散模型的训练核心是学习去噪过程经典方法会训练模型预测噪声ϵ \epsilonϵ、扩散速度μ t \mu_tμt或干净数据τ 0 \tau_0τ0三种量之一并搭配对应的损失函数形成9种预测-损失组合。但图像生成的经典配置并不适配自动驾驶规划任务原因在于图像是高维无约束的生成结果而规划轨迹是低维流形上的强约束决策错误的损失空间会导致训练慢、轨迹差、闭环不稳。3.1 扩散模型的基础去噪公式扩散模型的前向过程将干净轨迹τ 0 \tau_0τ0逐步加噪为带噪轨迹τ t \tau_tτt公式为3.2 9种预测-损失组合的系统性对比团队对τ 0 \tau_0τ0-pred预测干净轨迹)、u − p r e d u-predu−pred预测扩散速度)、ϵ − p r e d \epsilon-predϵ−pred预测噪声三种预测方式与τ 0 \tau_0τ0-pred直接监督干净轨迹、u − l o s s u-lossu−loss监督扩散速度、ϵ − l o s s \epsilon-lossϵ−loss监督噪声三种损失函数的所有9种组合进行了开环实验实验结果如表1所示3.3 最优配置τ 0 \tau_0τ0-pred τ 0 \tau_0τ0-loss从实验结果和学习动力学分析τ 0 \tau_0τ0-pred τ 0 \tau_0τ0-loss是自动驾驶规划任务的最优扩散损失配置核心优势体现在两点1.收敛速度快训练稳定性高规划轨迹τ 0 \tau_0τ0处于低维流形模型更容易捕捉其特征而ϵ \epsilonϵ和μ t \mu_tμt处于高维空间需要更大的模型容量训练过程易出现震荡。从学习曲线图3可看出τ 0 \tau_0τ0-pred模型的开环得分随训练步数快速上升而其他配置则表现出明显的不稳定性生成轨迹质量高动力学一致性好ϵ \epsilonϵ-pred等模型在低噪声的最终去噪阶段难以估计微弱的噪声信号易生成高频伪影导致轨迹抖动、航向突变而τ 0 \tau_0τ0-pred直接预测干净轨迹能有效抑制噪声生成的轨迹更平滑末段抖动更少几何质量和动力学一致性更优图4。这一设计的核心意义为扩散模型在自动驾驶规划任务中校准了“基础训练坐标系”让后续的表征设计、数据扩展能够真正发挥效果而非在错误的训练方向上做无用功。4 核心创新2Hybrid Loss混合损失函数兼顾轨迹几何与动力学的“双优解”确定最优损失空间后团队发现轨迹表示方式存在典型的权衡问题trade-off自动驾驶规划的轨迹表示主要有两种方式二者各有优劣单一表示无法满足实车闭环的需求1.Waypoint表示航点表示直接预测轨迹的空间坐标全局几何对齐性好能精准匹配道路结构但速度曲线易出现剧烈抖动舒适性差闭环中易因速度突变引发安全风险2.Velocity表示速度表示)预测轨迹的速度序列通过积分得到空间坐标速度曲线平滑动力学一致性好但对全局轨迹形状的恢复能力不足易出现轨迹偏形、偏离车道等问题。为解决这一问题HDP提出Hybrid Loss混合损失函数实现两种表示方式的优势融合既保证全局几何趋势又维持局部动力学平顺成为模型从“能跑”到“跑得稳”的关键。4.1 Hybrid Loss的设计思路Hybrid Loss的核心设计是模型仍输出速度序列保证数值稳定性训练时同时施加速度监督和积分后的航点监督既约束局部速度的平顺性又约束全局轨迹的几何形状。4.2 Hybrid Loss的理论有效性证明团队从理论上证明Hybrid Loss并非简单的损失叠加而是等价于P-范数下的有效扩散得分匹配损失其最小值仍为扩散模型的边际得分函数保证了扩散训练的原生有效性定理如下这一证明的核心意义在于Hybrid Loss在融合两种表示优势的同时没有破坏扩散模型的训练原理避免了因额外损失引入的得分函数偏差保证了训练的理论严谨性。4.3 Hybrid Loss的工程优化在工程实现中航点损失的积分过程会导致未来时间步的梯度累积造成梯度分布失衡。团队通过梯度解耦窗口解决该问题将超出窗口大小 的轨迹历史梯度解耦仅在窗口内传播梯度既保证了训练稳定性又不影响损失的约束效果伪代码见论文附录Algorithm 1。4.4 实车闭环的性能提升Hybrid Loss在实车闭环测试中实现了全指标提升如图7所示相比单一的Waypoint或Velocity表示Hybrid Loss在成功率、车道居中性能、速度合规性三大核心闭环指标上均有显著提升其中成功率提升49.2%成为模型实现实车稳定闭环的关键设计。5、核心创新3近亿级真实数据缩放激发扩散模型的多模态“涌现”能力扩散模型的多模态生成能力是其作为自动驾驶规划器的核心优势但这一能力的发挥高度依赖数据规模。现有自动驾驶基准数据集如NAVSIM仅有约100K帧训练数据小数据下扩散模型极易发生模式塌缩无法生成多模态的驾驶轨迹只能输出单一僵化的策略难以应对真实道路的复杂交通交互。为验证数据规模对扩散模型的影响团队开展了100K帧到70M帧的受控数据扩展实验系统验证了真实驾驶数据的“涌现”效应这也是首次在工业级规模数据上验证扩散模型在自动驾驶规划中的scaling特性。5.1 数据缩放的核心实验结果1.多模态能力显著增强通过轨迹散度分数Divergence Score衡量模型的多模态生成能力分数越高表示轨迹的多样性越强。实验发现100K帧小数据下散度分数几乎为0模型完全模式塌缩当数据规模提升至20M帧时散度分数快速上升模型能生成多种合理的轨迹策略图8、图9例如同一场景下的减速避让、绕行避让等不同行为2.开环与闭环指标持续提升从10M帧到70M帧模型的开环得分提升约10%闭环得分提升超20%实现了性能随数据规模的线性增长图10验证了HDP在工业级数据下的可扩展性3.长尾交通交互覆盖能力提升大规模数据让模型学习到更多复杂的交通场景如加塞、无保护左转、避让弱势道路参与者等在长尾场景下的闭环成功率显著提升避免了小数据下的策略泛化不足问题。5.2 数据缩放的核心结论只有在足够大的真实数据规模下扩散模型的多模态能力才能被充分激发而这一能力在现有基准数据集的规模下难以体现。HDP的设计摒弃了强先验让模型的能力完全由数据驱动这一特性使其具备工业化大规模部署的潜力——随着自动驾驶路测数据的持续积累HDP的性能将持续提升而无需对模型结构进行大幅修改。6、核心创新4轻量化RL后训练让扩散模型“跑得更安全”模仿学习预训练能让模型学到“像人开车”的行为但在安全关键场景如跟车停车、避让行人/非机动车、路口让行等模仿学习缺乏对安全约束的显式优化模型可能会生成存在安全风险的轨迹。为解决这一问题团队在模仿学习预训练的基础上引入与Hybrid Loss兼容的轻量化强化学习后训练策略将安全偏好注入扩散模型实现从“能开”到“开得更安全”的进阶最终得到HDP-RL模型。与现有扩散模型的RL方法相比HDP的RL策略具有实现简单、计算量小、兼容现有训练管线的核心优势。6.1 带KL正则的离线RL优化目标6.2 RL-Hybrid Loss融合安全偏好的加权损失现有扩散模型的RL方法通常将去噪过程拆分为多步MDP用PPO等算法优化实现复杂且计算量巨大。HDP则提出RL-Hybrid Loss将RL的权重直接融入Hybrid Loss相当于“加权监督学习”无需修改扩散模型的核心结构工程复杂度极低。RL-Hybrid Loss的公式为其中e x p ( β r ) exp(\beta r)exp(βr)为安全回报的权重回报越高越安全的样本在训练中的权重越大P PP为Hybrid Loss中的正定矩阵保证与预训练的损失兼容。6.3 RL后训练的理论有效性6.4 安全性能的实车提升RL后训练让HDP-RL在安全关键场景的闭环成功率实现显著提升图11c跟车停车场景提升25.0%、避让弱势道路参与者VRUs提升13.8%、路口让行提升5.3%实现了安全相关行为的针对性强化。同时由于RL策略仅优化安全目标模型不会出现过度保守的行为保证了驾驶效率。7.200km实车闭环测试HDP的核心性能成果HDP在Xiaomi SU7上完成了6类城市驾驶场景、200km真实道路闭环测试测试场景包括起步、跟车停车、导航变道、避让VRUs、路口让行、左右转弯覆盖了城市道路的主流场景。所有模型均仅采用轻量的轨迹平滑后处理无任何规则化的重后处理真实反映了扩散模型的原生能力。不同模型版本的核心性能指标如表2所示从实验结果可得出三大核心结论1.性能提升超10倍HDP的闭环综合得分达75.38较基础模型的7.83提升约10倍首次实现纯扩散模型在实车闭环中的高性能表现2.Hybrid Loss是闭环性能的关键拐点加入Hybrid Loss后模型的闭环成功率从34.72跃升至61.88稳定性得分从9.24跃升至53.88证明轨迹表示的双优融合是实现实车稳定闭环的核心3.数据缩放与RL后训练实现性能持续进化近亿级数据缩放让模型的稳定性得分进一步提升至79.53RL后训练让安全关键场景的成功率再提升最终HDP-RL实现闭环综合得分76.20达到实车落地的性能要求。同时HDP在实车测试中展现出高效的推理速度模型转换为ONNX格式后通过TensorRT优化实现硬件加速结合DPM-Solver快速采样推理速度达到10Hz完全满足车端实时性要求。8. 研究意义与行业启示清华小米的HDP研究不仅是扩散模型在自动驾驶端到端规划中的一次成功的实车验证更为自动驾驶的端到端落地提供了全新的技术范式和行业启示核心意义体现在三点8.1 验证了纯扩散模型作为自动驾驶规划器的可行性HDP摒弃了所有强先验设计仅通过扩散模型的原生设计优化和数据驱动实现了实车闭环的高性能表现打破了“扩散模型只能做仿真无法做实车”的固有认知证明扩散模型的多模态、生成式能力完全可以成为自动驾驶端到端规划的核心竞争力。8.2 明确了扩散模型自动驾驶落地的三大核心设计原则团队通过系统性的实验为扩散模型在自动驾驶规划中的设计提供了明确的原则选对损失空间、融合轨迹表示、规模化真实数据这三大原则不仅适用于HDP也为其他扩散模型的自动驾驶研究提供了通用的设计思路避免了无意义的试错。8.3 为端到端自动驾驶的工业化落地提供了可扩展的框架HDP的设计具备数据驱动、轻量化、高可扩展的特性随着路测数据的积累模型性能可持续提升RL后训练策略兼容现有训练管线无需大幅修改模型推理速度满足车端实时性要求工程落地难度低。这一框架让端到端自动驾驶从“实验室研究”走向“工业化部署”成为可能。8.4 重新定义了自动驾驶端到端的核心竞争力数据与模型设计的双轮驱动HDP的研究证明在端到端自动驾驶中强先验设计的价值正在降低而高质量的真实数据和优秀的模型原生设计将成为核心竞争力。未来自动驾驶的端到端落地将不再是“规则模型”的混合方案而是“数据驱动模型模型释放能力”的纯学习方案。9 总结与展望从仿真中的“纸上谈兵”到实车上的“真刀真枪”HDP通过对扩散模型的系统性重构首次让纯扩散模型在自动驾驶端到端规划中实现了200km实车闭环的高性能表现回答了业界的核心质疑扩散模型在自动驾驶规划中的潜力完全可以被真正发挥出来。HDP的核心创新在于回归扩散模型的原生设计从损失空间、轨迹表示、数据缩放三大维度解决了与自动驾驶规划任务的不匹配问题并通过轻量化RL后训练实现了安全性能的强化最终形成了一套从训练到落地、从仿真到实车的完整解决方案。未来团队将从三个方向继续优化HDP一是融合效率与安全的多目标RL回报函数让模型在安全的同时保证驾驶效率二是进一步提升模型的长尾场景泛化能力通过数据增强、跨域学习等方法覆盖更多复杂交通场景三是实现HDP与感知、控制的全链路端到端融合打造真正的端到端自动驾驶系统。此次清华与小米的合作将学术界的理论创新与工业界的工程落地完美结合为扩散模型在自动驾驶的工业化应用迈出了关键一步。我们有理由相信随着扩散模型设计的持续优化和真实数据的不断积累纯扩散模型驱动的端到端自动驾驶将成为未来自动驾驶的主流范式让自动驾驶从“规则定义”走向“数据生成”最终实现更智能、更安全、更通用的自动驾驶体验。classHybridVLoss(nn.Module):def__init__(self,global_config:GlobalConfig,task_config):super(HybridVLoss,self).__init__()self.global_configglobal_config self.task_configtask_configdef_detached_integral(self,velocity:torch.Tensor,detach_window_size:int10)-torch.Tensor: Integrate velocity to get position, with clipped gradient inside a sliding window to stabilize training. Code adapted from: https://github.com/ZhengYinan-AIR/Hyper-Diffusion-Planner/blob/main/HDP-nuplan/hdp_nuplan/utils/traj_kinematics.py#L3 Args: velocity: torch.Tensor of shape [B, A, T1, D], where D is the dimension of velocity (e.g., 2 for x and y) detach_window_size: int, the size of the sliding window for gradient clipping. Returns: cumulative_sum: torch.Tensor of shape [B, A, T1, D], the integrated position with detached gradients in the recent window. cum_detachtorch.cumsum(velocity.detach(),dim-2)cum_normaltorch.cumsum(velocity,dim-2)# number of gradient from previous timesteps contained in:# shifted: [0, 1, 2, ..., window_size-1, window_size, ...., T] -# shifted: [T-window_size1, T-window_size2, ...,T, 0, 1, 2, ...., T - window_size] -# sum_recent: [0, 1, 2, ..., window_size-1, window_size, ...., window_size]shiftedtorch.roll(cum_normal,shiftsdetach_window_size,dims-2)shifted[...,:detach_window_size,:]0sum_recentcum_normal-shifted cum_detach_shiftedtorch.roll(cum_detach,shiftsdetach_window_size,dims-2)cum_detach_shifted[...,:detach_window_size,:]0cumulative_sumcum_detach_shiftedsum_recentreturncumulative_sumdefforward(self,preds_v:torch.Tensor,truth_v:torch.Tensor,truth_theta:torch.Tensor,truth_xy:torch.Tensor,truth_xy_current:torch.Tensor,lr:torch.Tensor,dt:float0.1,hybrid_loss_xy_weight:float0.1)-torch.Tensor: Args: preds_v: torch.Tensor of shape [B, A, T, 2], predicted velocity in x and y directions truth_v: torch.Tensor of shape [B, A, T, 1], ground truth velocity magnitude truth_theta: torch.Tensor of shape [B, A, T, 1], ground truth heading angle truth_xy: torch.Tensor of shape [B, A, T, 2], ground truth positions in x and y directions truth_xy_current: torch.Tensor of shape [B, A, 1, 2], current position in x and y directions lr: torch.Tensor of shape [B, A, T, 1], weight for each point in the loss calculation, can be used to mask out invalid points Returns: hybrid_loss: torch.Tensor, the combined loss of velocity and position truth_vxtruth_v*torch.cos(truth_theta)truth_vytruth_v*torch.sin(truth_theta)truth_vxytorch.cat([truth_vx,truth_vy],dim-1)loss_vtorch.norm(preds_v-truth_vxy,dim-1,keepdimTrue)preds_xytorch.cat([truth_xy_current,preds_v*dt],dim-2)preds_xyself._detached_integral(preds_xy,detach_window_size10)[...,1:,:]loss_xytorch.norm(preds_xy-truth_xy,dim-1,keepdimTrue)hybrid_lossloss_vhybrid_loss_xy_weight*loss_xy lr_counttorch.sum(lr).clamp(1.0)hybrid_losstorch.sum(hybrid_loss*lr)/lr_countreturnhybrid_lossdef_detached_integral(self,velocity:torch.Tensor,detach_window_size:int10)-torch.Tensor: Integrate velocity to get position, with clipped gradient inside a sliding window to stabilize training. Code adapted from: https://github.com/ZhengYinan-AIR/Hyper-Diffusion-Planner/blob/main/HDP-nuplan/hdp_nuplan/utils/traj_kinematics.py#L3 Args: velocity: torch.Tensor of shape [B, A, T1, D], where D is the dimension of velocity (e.g., 2 for x and y) detach_window_size: int, the size of the sliding window for gradient clipping. Returns: cumulative_sum: torch.Tensor of shape [B, A, T1, D], the integrated position with detached gradients in the recent window. cum_detachtorch.cumsum(velocity.detach(),dim-2)cum_normaltorch.cumsum(velocity,dim-2)# number of gradient from previous timesteps contained in:# shifted: [0, 1, 2, ..., window_size-1, window_size, ...., T] -# shifted: [T-window_size1, T-window_size2, ...,T, 0, 1, 2, ...., T - window_size] -# sum_recent: [0, 1, 2, ..., window_size-1, window_size, ...., window_size]shiftedtorch.roll(cum_normal,shiftsdetach_window_size,dims-2)shifted[...,:detach_window_size,:]0sum_recentcum_normal-shifted cum_detach_shiftedtorch.roll(cum_detach,shiftsdetach_window_size,dims-2)cum_detach_shifted[...,:detach_window_size,:]0cumulative_sumcum_detach_shiftedsum_recentreturncumulative_sum_detached_integral 代码深度解析梯度裁剪窗口积分技术这段代码实现了带梯度裁剪的滑动窗口积分是扩散轨迹规划器中稳定长序列训练的核心技术。它解决了速度→位置积分过程中的梯度爆炸问题同时保持轨迹的物理连续性。代码逐行解析def_detached_integral(self,velocity:torch.Tensor,detach_window_size:int10)-torch.Tensor:# velocity: [B, A, T1, D] Bbatch, Aagent, Ttime, Ddim(x,y)# 1. 无梯度累积切断所有历史梯度cum_detachtorch.cumsum(velocity.detach(),dim-2)# [B, A, T1, D]# 2. 有梯度累积保留完整梯度链cum_normaltorch.cumsum(velocity,dim-2)# [B, A, T1, D]# 3. 构造近期窗口关键shiftedtorch.roll(cum_normal,shiftsdetach_window_size,dims-2)# 循环右移shifted[...,:detach_window_size,:]0# 修复边界前window_size步置0sum_recentcum_normal-shifted# 仅保留最近window_size步的累积# 4. 构造早期历史无梯度cum_detach_shiftedtorch.roll(cum_detach,shiftsdetach_window_size,dims-2)cum_detach_shifted[...,:detach_window_size,:]0# 5. 合成最终位置早期历史(无梯度) 近期窗口(有梯度)cumulative_sumcum_detach_shiftedsum_recentreturncumulative_sum