← 深度专题

从论文方法到车上功能

一篇方法论文要跨过哪些系统门槛,才有资格变成持续可交付的量产能力?

论文证明的是,一种方法在受控的数据和指标上有效;量产要求的是,它在固定算力、异步传感器、带噪声的导航、长尾交通和持续的版本迭代里,仍然安全可控。所以上车不是把模型导出到车端,而是让方法依次过六道门:实时性、训练与数据成本、输入退化、场景专项、规则护栏、持续验收。

9 个小节 · 约 15 分钟阅读

论文终点只是量产起点

论文通常回答:在某个数据集和指标上,这个结构是否比基线更好。量产必须回答:在目标 ODD、芯片、传感器和团队流程里,它能否长期稳定交付。两者的评价对象不同。论文可以固定数据、离线推理、一次性调参;车端系统要面对模块异步、导航跳变、热降频、长尾分布、法规差异,以及后续版本的回归。

上车后的问题,往往不在论文的主指标里。一份量产经验总结里就有这几类:路沿识别不准,会变成静态碰撞;自回归模型量产时只取 Top-1,多模态被主动丢掉;用奖励修好了过于保守的加塞,又带来过度积极。量产开发的单位不是一篇论文,而是一条可诊断、可回归、能持续收敛的能力链。

所以,每个候选方法都该有一张上车门禁表。少了任何一项,技术评审只完成了“模型可行性”,还没完成“产品可运行性”。

  • 算力:端到端延迟与尾延迟、峰值显存、功耗。
  • 成本:训练与标注的投入。
  • 输入:关键输入依赖,以及输入退化时的表现。
  • 覆盖:场景覆盖和规则边界。
  • 运维:可观测性、回滚方案、验收基线。
  1. 方法复现在同样的数据、输入和统计口径下复现论文增益,先排除训练技巧和数据差异。
  2. 系统预算测 P50、P95、P99 延迟和显存、功耗、吞吐、传感器同步,不只报模型单次前向的耗时。
  3. 退化设计为导航缺失、感知漏检、输入异步、低置信输出和模块超时,分别定义明确的行为。
  4. 专项收敛把长尾问题变成具名场景,配上自动挖数据的算子、训练配比、奖励和正反两套测试集。
  5. 系统护栏执行前加过滤、约束、交通规则和控制可行性检查,并保留归因信号。
  6. 持续验收离线、仿真、道路影子模式、灰度车队逐级放行;线上问题永久进入回归。

实时性不是 FPS 一列

先看一组论文报告的数字:UniAD 延迟 555.6 毫秒、1.8 FPS;VAD-Tiny 59.5 毫秒、16.8 FPS。这不是同卡对照:VAD 论文注明 UniAD 在 A100 上测、VAD 在 RTX 3090 上测,VAD-Tiny 的模型也更小。速度也不全来自矢量化:同一张表里,开环指标最好的 VAD-Base 仍要 224.3 毫秒。这类数字只能看量级,判断不了能不能上车。

所以架构的精度收益,必须和系统频率一起读。离线精度只是第一道门,计算路径和系统频率是另一道独立的门。如果规划按 10 Hz 运行,一个周期只有 100 毫秒:每一帧的模型推理要在周期里算完,还要给同步、后处理和通信留余量;从传感器到控制的整链路时延,是另一笔预算。

扩散模型的障碍更直接。典型的去噪要 20 到 100 步,每一步都跑一次 U-Net 或 Transformer,延迟不可控。成本也不只在步数上:U-Net 参数量大、输入分辨率高,显存和算力都吃紧;noise schedule 等超参又很敏感,调参困难。

截断扩散从带驾驶意图的锚点附近开始去噪,流匹配用少步 ODE 代替多步随机去噪,两者都在改写计算路径。省下的步数要拿别的东西换,上车前要查三件事:锚点能否覆盖该有的意图,速度场学得准不准,挑轨迹的打分器靠不靠得住。

大模型和 VLA 也不该硬塞进高频控制环。一种快慢系统的设想是:蒸馏出的轻量策略跑 10 Hz 以上,负责连续控制;VLA 加世界模型约 1 Hz,负责低频规划、异常处理和复杂博弈中的重规划。慢系统盯着快系统的置信度,只在未见场景或低置信时介入;介入的方式是调整目标、约束或奖励,而不是夺方向盘。AsyncDriver 也是这个思路:大模型异步给出高层指令,由实时规划器执行。这些设计给出的不是某个固定架构,而是一条原则:慢推理只能改变目标、约束或计划,不能阻塞车辆的实时安全环。

最终预算要按整条链路和最坏情况测。平均延迟覆盖不了 GC、显存换页、热降频、输入尺寸变化和候选数增加,量产门槛要同时规定 P99、超时行为和降级输出。

高频执行

  • 轻量感知、轨迹解码与控制
  • 固定周期和确定性的超时行为
  • 输入退化时仍有最小风险输出

低频推理

  • VLA、世界模型与复杂重规划
  • 提供语义目标、约束和异常判断
  • 异步更新,不占用主控制时钟

系统预算

  • P99 延迟、显存、功耗与温度
  • 候选数和采样步数的动态上限
  • 超时、置信度不足与回滚策略
实时性的对象是整条控制路径,不是论文表格里的一次模型前向。

训练成本最终表现为组织吞吐

端到端多任务训练要同时平衡十多个任务、几十种数据、几百个 loss,所以常用分阶段训练。感知按 2D 预训练、3D 单帧、3D 时序三步收敛。规划也分三步:冻结上游单独训;调小学习率,与感知联训;最后只对规划做强化学习微调。

两段式常被选作转向端到端的第一步,理由不全在技术上:感知模块已经基本收敛,规则规控缺少数据驱动,团队的协作方式也已成型。所以架构评审要把组织能否稳定迭代算进成本。数据规模能抬高能力上限,却不会自动消除梯度冲突、实验吞吐和组织接口的问题,训练仍要按问题拆成阶段。

各阶段要的数据量也不同。强化学习里,验证奖励写没写对约 10 条数据,优化单个任务每个任务增加百到千条 clip,全量训练约 10 万条 clip;一段式的模仿学习预训练,则大约要千万级 clip。这些数字不是通用定律,但说明不同阶段不能共用一个数据预算。10 条数据只能证明奖励方向没写反,不能证明全量分布已经收敛。

规模也掩盖不了质量。数据清洗分三层:基础信息是否正常,驾驶行为是否值得模仿,动作是否在辅助驾驶的能力范围内。多标签数据还要按层级配比,避免重复计数。模仿学习是在选老师,训练集里的错误导航、晚变道和新手驾驶,都会被模型忠实地复制。

扩散模型还带来 noise schedule、loss weight、采样步数和多模态坍缩等调参维度;强化学习带来奖励尺度、探索冲突和仿真吞吐。选方法时要比的是每周能完成多少次可信实验、一次回归要多久、失败能否定位,而不只是峰值指标。

  • 预训练、单任务修复、全量联合训练和车端部署,分别计时、分别计费。
  • 每次实验都记下数据版本、采样配比、loss 与奖励配置、仿真器版本。
  • 先用小样本验证信号是对的,再扩到专项和全量;小样本的结果不能当覆盖结论。
  • 训练吞吐要算上数据生产、自动标注、人工抽检、仿真 rollout 和回归评测。
  • 无法稳定复现的 1 分提升,通常不如能持续迭代的 0.3 分提升。

导航不是可靠常量,而是会抖动的上游模型

无图架构把高精地图拆成两块:感知提供局部几何,低精度的 SD 导航地图提供从 A 到 B 的长期语义。所谓无图,不是不用地图,而是不再拿厘米级高精地图做局部定位和硬车道约束。导航仍要给出推荐车道、行点、剩余距离和机动先验。

问题是这些输入并不稳定。SD 行点会受定位漂移、地图误差、推荐跳变和模块异步影响。两段式端到端方案里的导航路径,是模型预测出来的参考线,自身也会抖动、偏航、弯折;它只表达“该往哪走”,不能直接控车。单模态接入下游会造成决策冲突,它的抖动和跳变也会传到最终轨迹上。

晚变道是“老师教错了”:模型倾向于贴着行点的轨迹变道,而行点的转折比期望轨迹靠后。给出的四条解法都不改网络结构:清洗变道晚的数据;对行点做缺失增强,让模型更依赖感知;模仿学习时让采集同分布,并用多模态输出替代单模态;用强化学习配合奖励函数优化。

地图等级也要进入产品策略。SDPro 比 SD 多了路口内拓扑、精确车道数、车道类型和联通关系,适合环岛和主辅路分叉;公交车道、难区分的非机动车道,更是只能靠它。模型不该假设处处都有 SDPro,而要显式识别地图的能力等级,为 SD、SDPro、导航缺失三种状态分别定义约束和降级。

对策是在训练里主动注入这些退化。四类行点增强,几乎就是车端的故障注入:

  • 横向偏移:给整条行点加常量或低频偏移,模拟定位横向漂移、车道中心线不准。
  • 纵向时序偏移:把行点索引整体前移或后移,模拟行点更新提前或滞后。
  • 随机丢点:模拟地图短暂不可用;收益是模型更依赖感知,不再过拟合行点。
  • 时间不一致:当前帧感知配上一帧行点,模拟模块异步和缓存,对真实车端非常关键。

车道级先验较强

  • 路口拓扑、车道数与车道类型
  • 支持超视距择道与合规约束
  • 仍需处理鲜度、定位和绑定误差

道路级语义

  • 推荐方向、行点和剩余距离
  • 依赖局部感知恢复车道几何
  • 约束应更软,避免盲从跳变

导航退化

  • 感知与最小风险策略接管
  • 禁止高风险的临时跨多车道动作
  • 恢复后先等时序稳定,再重新绑定
地图能力等级必须成为模型输入和系统状态,而不是部署团队口头知道的背景条件。

数据闭环要把一次修复变成复利

数据闭环不等于持续收集更多日志,核心是让问题可定义、可挖掘、可配比、可验证、可复用。一条完整的长尾闭环见下面的步骤。

真正产生复利的节点不是模型发版,而是数据算子进入标注流水线。数据算子是批量给数据打场景标签的规则或算法。它的准入有三条:正负样本各多于 20 或 30 条的评测集;准确率一般在 95% 以上;上线后定期抽检。没有这道准入,自动挖掘可能把错误标签放大到后续所有模型版本。

新增场景先统计现有占比 r,再对照经验阈值 T1、T2 分三路:高于 T1,先清洗再做配比实验;介于两者之间,先增补数据;低于 T2,判为长尾,定向采集后做难例微调。

配比也有讲究。多标签样本按 1/n 分摊,再逐层展开父子标签的配比;一段式预训练的千万级 clip 长短不一,配比按帧统计。一条高风险数据如果因为标签多被重复计数,“场景覆盖率”就会虚高。数据体系不是模型训练的配套,而是和模型平级的工程系统。

持续的数据闭环要和验收回归共用同一个场景标识。一次线上接管,从发现、定义、挖掘、训练到放行,都沿同一个 ID 追踪分母、模型变化和副作用;否则训练团队和测试团队会各自维护一套不相通的“场景”。

  1. 发现人工从场景库挑选、分析接管数据、汇总路测报告和客户反馈,三个入口进同一个长尾场景库。
  2. 分级紧急且危险的归 P0,定向采集、在线挖掘、离线挖掘三路并用;P1 走在线和离线挖掘;一般长尾归 P2,只做离线挖掘。
  3. 算子达到准召门槛的算子才进标注流水线,上线后持续抽检。
  4. 配比挖出的数据先过准确率校验,再按层级和多标签权重算真实占比,记录训练数据版本。
  5. 训练与验收专项集、邻接反例和全量回归同时通过,才进灰度。不通过先分诊:场景问题回到入口,数据问题回到挖掘,其他问题转去别的优化。
  6. 复利问题样例、场景定义和算子长期保留,让下一版本自动重测、再挖掘。

专项不是打补丁,而是管理冲突

拥堵加塞把量产问题的三层耦合暴露得很清楚。感知层有遮挡和目标 ID 抖动。预测层是双向博弈:对方在判断你让不让,你也在判断他是真插还是试探。规划层要在安全、效率和舒适之间选风险窗口。

这个场景里出过一次典型的奖励钻空子:模型学会原地等待,等导航车道的车全部过完才变道,安全,但不像人开车。根因被归到感知和数据分布:实车数据里自车低速、后车被遮挡,后向感知失真。只在变道关键区间给成功插入加奖励之后,行为更类人,却又变得过度自信、过度积极。

所以每个专项至少要有四件套:场景触发条件、模型或奖励的作用域、反向和邻接测试集、全量回归门槛。没有作用域就会污染其他任务,没有邻接反例就会在两个失效极端之间来回摆动。专项提升只证明局部有效,还要通过邻接反例、常规分布和全量回归,才能证明失效没有转移到别处。

落到修法上,不是一个万能奖励,而是一组带作用域的机制,原则是限定奖励的生效场景,尽量做到场景隔离。奖惩按“安全 > 法规 > 体感”排优先级,这也是量产奖励和验收指标都该遵循的结构。具体机制如下:

  • 导航变道:变道奖励只在关键区间生效。
  • 危险换道:用侧后车的速度和相对速度算安全距离,距离不够就罚。
  • 静态偏航:纵向距离和横向偏差联合,分两阶段用 Sigmoid 平滑释放换道驱动力。
  • 车道锁定:抑制来回横跳,但在绕行场景里必须禁用,避免和主动避障冲突。
  • 碰撞分类:算 TTC 前先排除后方追尾的目标,和直行非路口时正在远离的前车;VRU 既看轨迹交点,也看双方到达时间是否同步。
  • 碰撞清零:绕行中一旦碰撞,立即清空绕行奖励,不让效率收益抵消事故。

场景触发

  • 可观测、可复现、可统计
  • 明确入口与退出条件
  • 避免用模糊标签覆盖多个机理

局部优化

  • 奖励与规则只在作用域内生效
  • 区分感知、预测、规划的根因
  • 保留安全硬门与类人软目标

邻接回归

  • 成功与失败、让行与不让行成对出现
  • 专项提升不能损伤常规分布
  • 修复的副作用永久进入用例库
量产专项的成熟度,不看奖励有多少项,而看作用域和副作用能否被验证。

规则护栏仍然是系统的一部分

端到端的本质,是让感知信息少经过人工接口的压缩、更完整地传到决策规划。这是信息和训练链路上的定义,不等于执行链路没有约束。一套量产方案的后处理是:多模轨迹先融合导航和动静态信息做过滤,再横纵解耦打分,再做时空联合优化精修,最后交给控制。红绿灯同样是一条连续的工程链,下一节细说。

经典规控给了护栏的数学写法。Apollo EM Planner 里,DP 先在非凸空间定出可行通道和绕行、让行决策,QP 再在通道里优化平滑度,满足动力学和交通规则。时空语义走廊则把静态障碍、动态预测、红灯和车道边界,统一成 s-l-t 空间里的约束。学习式规划器可以替换候选生成或打分,但车辆动力学、道路边界和不可违反的规则,仍需可验证的表达。量产通常就这样分工:保留可验证的约束,让学习模块替代收益最大的生成和选择环节。

扩散模型的常见落地方式也一样:只生成 N 条候选,后面接规则、优化或强化学习来排序、筛掉风险,因为采样结果之间没有显式的概率或价值排序。多模态只是覆盖了候选,不等于选对了;Top-K 里有安全轨迹,掩盖不了 Top-1 选错。生成器决定候选的上限,排序器和约束器决定 Top-1 是否安全,所以评测要把候选覆盖率和最终选择的正确率分开看。

护栏必须可观测,不能悄悄改轨迹。每次过滤、约束触发、降级兜底和轨迹精修,都应留下原因码。否则线上只看得到最终轨迹,又会回到黑盒归因的困境:感知、定位、规划压在同一个潜空间里,出了事故,分不清是感知漏检还是规划决策错了。

护栏可能会限制一部分探索。但神经网络规划器还很难形式化地验证“绝对安全”,在这之前,护栏承担的是可审计的边界。优化方向是减少不必要的干预、提高可观测性,而不是无条件删掉它。

  • 候选生成器、排序器、约束器和控制器,分别记录输入、输出和原因码。
  • 碰撞、道路边界、逆行、信号灯和动力学约束,设为不可补偿的门槛。
  • 后处理改动幅度过大时,不该继续伪装成模型的正常输出,而要触发降级和数据回流。
  • 规则护栏同时进入训练奖励、离线诊断和发布验收,避免三套口径互相打架。
  • 任何规则专项都要有场景隔离,任何学习专项都要有硬约束和降级兜底。

最后一公里:论文讲到哪里,车上还剩多少

论文交出的是原始输出,车上执行的是后处理之后的轨迹,中间隔着上一节的过滤、打分和精修。自回归范式放到这条链上,还有三个量产缺陷:单步预测受上一步结果影响,横向不稳;逐步预测下一个动作,学不到“我这样做,未来会怎么变”;量产只取 Top-1,多模态缺失。

前两条出自生成范式本身,只有最后一条是部署时的主动选择:论文里展示的多模态,在车上被主动丢掉了。评审任何“端到端已量产”的说法,先问原始轨迹和执行轨迹之间隔了几层。

论文一侧对车端约束的回应,可以按“它在省什么”来读。DiffusionDrive 的截断扩散省去噪步数:对照的普通扩散策略走 20 步还坍缩成一束,它 2 步就给出多样的轨迹。ResAD 省生成空间:以自车当前状态建惯性参考,只预测归一化残差,不让模型从零学物理。Sparse4D 省感知算力:稀疏 query 直接从图像取特征,不铺满整张 BEV。FAST 省序列长度:用 DCT 转到频域、低频在前,再用 BPE 压缩。

四项工作省的东西不同,但都是在车端约束下做减法。动作词元怎么切,还会影响轨迹平不平顺:按加速度和横摆角速度建的码本,航向抖动多数时候比按位移增量建的小。评估任何生成式方案,端到端延迟都应是最先问的问题之一。

最干净的标本是红绿灯。检测和识别是论文和公开基准最常覆盖的两步;量产链路还要再走三步,车才知道该听哪盏灯、停在哪里,这三步主要是量产团队的工程账:

  1. 检测用 Sparse4D 系列模型,输出交通灯的 3D 框和 2D 框。
  2. 识别用分类模型(例如 ShuffleNet)给 2D 框赋上识别语义。
  3. 选灯把灯的朝向与车道、车流的朝向匹配,回答“这盏灯管不管我这条道”。
  4. 颜色与属性用 HMM 描述灯态转移,处理倒计时、故障、黄闪、绿闪。
  5. 绑定用斑马线、车道线末端和停止线构造刹停区域,再沿自车轨迹找刹停位置。

一次上车不等于完成量产

量产能力是持续接受测试,而不是一次 SOP 签字。每个模型版本,都要在相同的数据版本、仿真器、控制器和硬件预算下,与当前的量产基线对照;每个严重的线上问题,都要转成离线可重放、仿真可交互、道路可复核的三层用例。

验收要把模型指标和系统指标并列。能力侧看安全、导航、效率、舒适、交互和恢复;工程侧看 P99 延迟、超时率、温度降频、内存峰值、输入同步、护栏触发率和兜底成功率。模型分数上涨、护栏接管却翻倍,不能算能力提升。

公开基准和量产验收也不能共用一张总分表。公开基准解决外部可比性,其中的开环指标只适合快速迭代;量产验收回答的是本车 ODD 和系统责任。两者应互相引用,但不能互相替代。

下一层约束也已经摆在那里:车端跑百亿级参数模型,功耗和散热压力巨大,还要靠压缩和蒸馏;神经网络规划器难以形式化验证,长尾安全证明还没有着落;黑盒决策出了事故,车企、算法供应商、芯片厂商之间怎么划分责任,也悬而未决。

多模态大模型上车,还有四个公开问题:怎样做有效的闭环评测,怎样建长尾场景的基准来验证泛化,怎样实时部署,怎样有效挖掘它的常识推理能力,并和自动驾驶任务对齐。

所以 VLA、世界模型和强化学习应按成熟度分层接入:先做离线标注、场景生成、低频监督和候选评审,再依据验证逐步靠近主控制环,而不是因为论文趋势直接改写安全架构。前面的快慢系统设想,走的就是这条路。一句话可以当路标:VLA 解决“懂不懂”,世界模型解决“敢不敢”,强化学习解决“好不好”;量产要解决的,是这三件事在同一台车上同时成立。

最终的放行结论应是一个有限命题:在哪个 ODD、地图等级、天气、速度、硬件和版本条件下,通过了哪些门槛,还有哪些已知边界。这比“已量产端到端”更克制,也更有工程意义。

  1. 冻结基线固定数据、仿真、控制器、硬件和验收口径,避免版本之间偷换条件。
  2. 双表验收能力指标与系统资源、护栏指标并列,任何一侧退化都要给出解释。
  3. 分层接入新技术VLA、世界模型、强化学习先进入低风险环节,依据验证结果逐步提高控制权。
  4. ODD 限定放行写明地图、道路、天气、速度和已知失效边界,支持灰度和快速回滚。
  5. 问题永久化线上问题转成场景 ID、数据算子和回归用例,后续版本不得再次出现。

相关术语

  • 数据闭环——从线上发现问题到归因、难例挖掘、数据配比、调整、开闭环评测、小流量验证,再回到发现问题的完整循环。
  • 场景隔离——同一个 reward 在不同场景下含义可能相反,所以 reward 不能全局常开,必须按场景生效。
  • 导航路径——两段式方案里由模型预测的一条宏观参考线:只表达该往哪走,不是可执行轨迹,不能直接控车。
  • 导航增强——主动注入定位漂移、行点缺失、更新延迟这些真实退化,防止模型过度依赖某一种完美导航输入。
  • 导航先验编码——把 SD 行点、导航动作、限速、候选与推荐车道编码成条件 token,经 cross-attention 注入规划 query。
  • 奖励钻空子——模型会最大化你写下来的数值,而不是你心里真正想要的驾驶行为——这是 RL 的本性,不是偶发 bug。
  • 奖励函数——把安全、效率、舒适、法规、人类偏好折算成一个可优化的数值信号,并用 KL 约束拴住策略别跑偏。
  • 开环与闭环——开环用数据集里的真实下一状态,闭环用环境动力学产生下一状态——前者看不到误差累积,后者才检验纠错能力。
  • 多模态轨迹——未来不是一个确定的点,而是一个分布:可以跟车、变道、让行、绕行,模型输出多条候选来表达这种不确定性。
  • 截断扩散与锚点——不从纯噪声出发,而是从聚类得到的轨迹锚点加少量噪声开始去噪,用少数几步换取车端实时性。
  • 自回归轨迹生成——把轨迹变成 next-token prediction,一步步生成——训练稳定、天然接 RL,但会误差累积、多模态容易坍缩。
  • 动作词元设计——「下一步」到底表示什么——不同的 token 定义会改变学习难度、噪声传播和极端场景表现。
  • 视觉-语言-动作模型——把视觉输入、语言/语义桥接和动作输出统一到一个多模态框架,适合更高层的意图和语义条件化。
  • 流匹配——不预测噪声,而是学习从噪声轨迹流向真实轨迹的连续速度场,推理时解 ODE——采样步数更少。

相关论文