RISE:给自动驾驶装上一个会"见好就收"的大脑

想象你正在开车,前方是一条空荡荡的笔直马路,没有车、没有人、连红绿灯都没有。这时候你会怎么做决策?大概率是瞄一眼路况,直接踩油门往前开,根本不需要在脑子里预演接下来十秒钟可能发生的十种情况。
但如果换个场景,你正开到一个车流密集的十字路口,左边有辆车打算变道,右边人行道上有几个行人正要过马路,这时候你的大脑会不自觉地开始"推演":如果那辆车真的变道,我该怎么办?如果行人突然加速横穿,我需要提前减速吗?
这两种场景需要的思考深度完全不一样。可现在很多自动驾驶系统的做法是什么呢?不管路况简单还是复杂,统统用同一套"预判未来"的流程,跑满固定的步数再决定怎么开。这就是这篇论文想要解决的问题。
这篇来自COWARobot(酷哇科技)团队的论文提出了一个叫RISE的框架,核心思路就一句话:让自动驾驶系统自己判断,什么时候该多想一步,什么时候可以直接下决定。
核心问题:为什么"一刀切"的想象力是个大麻烦
要理解RISE解决的问题,得先说清楚现在的自动驾驶大脑是怎么工作的。
近几年,一类叫做世界动作模型的系统开始流行起来。
世界动作模型(World Action Models,简称WAM):这是一种在做出驾驶决策之前,先在"脑海"里模拟一遍未来可能发生什么的AI系统。它不是简单地看一眼当前画面就决定怎么打方向盘,而是先想象几秒钟后的世界会变成什么样,再据此规划动作。
这个思路听起来很合理,毕竟人类司机也是这么干的,会预判前车会不会急刹、行人会不会突然窜出来。问题出在"想象"这件事本身是有成本的。系统每往前推演一步,就要多花一份计算时间,这在实际路上意味着实打实的延迟。
论文里提到,现有的WAM系统基本分成三种流派。第一种是"边想边规划",观测到的信息和预测的未来信息一起丢给规划模块处理;第二种是"先想完再规划",把整个未来轨迹推演完,再传给规划模块生成动作;第三种干脆放弃想象,直接从当前画面规划。这三种做法有一个共同点:不管路况如何,推演的深度是固定死的,要么都推演到底,要么压根不推演。
这就好比你请了一个私人司机,无论是在小区里挪车还是在高速上超车,他都要先闭眼在脑子里演练满十秒钟的路况才敢动方向盘。挪车这种简单场景被硬生生拖慢了效率,而真正需要深思熟虑的高速超车场景,如果司机的演练深度不够,反而可能酿成事故。如果不做区分处理,简单场景被浪费的计算资源和复杂场景可能不够用的风险,这两笔账都算不清楚。
论文提出了一个关键概念,叫做未来规划增益。
未来规划增益(Future Planning Gain):指的是继续往下推演一步,相比于现在就停下来做决定,规划质量能提升多少。如果这个增益很大,说明多想一步是值得的;如果增益很小甚至是负的,那就没必要再往下推演了。
这里有个特别重要的细节容易被忽略:这个增益不是一次性算好就固定不变的,而是每往前推演一步就要重新评估一次。这就像你在下棋,每走一步棋都要重新判断"我还要不要继续往后想",而不是开局前就决定"我这盘棋固定要想五步"。棋局是动态变化的,路况也是。
方法解读:RISE到底怎么做到"随机应变"
搞清楚了问题,接下来看RISE具体怎么解决。整个系统可以拆成两大块:世界动作模型本体,和一个叫做调度器的轻量级附加模块。
先说世界动作模型本体,它由三个部分组成。
编码器(Encoder)负责把摄像头拍到的画面转换成AI能理解的数字表示,这里用的是一个叫V-JEPA 2的现成视觉模型,把连续几帧画面压缩成携带语义信息的向量。
预测器(Predictor)是负责"想象未来"的模块,它会根据当前状态和车辆的动作,一步一步往后推演,生成未来几个时间点的场景表示。
规划器(Planner)则是最终拍板的角色,它综合当前观测和预测器提供的未来推演结果,生成具体的行驶轨迹。
这三件套本身并不新鲜,很多WAM系统都是这个架子。RISE真正的创新在于调度器,也就是那个决定"要不要继续想象"的模块。
调度器由两个子部件组成:潜在评估器和推演门。
潜在评估器(Latent Evaluator)的任务是在每一步推演之后,给出两组数字。第一组叫风险画像,衡量目前已经暴露出来的风险有多大;第二组叫未来规划增益画像,预测如果继续往下推演,规划质量还能提升多少。
推演门(Rollout Gate)则拿着这两组数字做最后的裁决:如果继续推演带来的预期收益,能盖过额外计算的代价,就下达"继续推演"的指令;否则就喊停,让规划器直接基于现有信息出结果。
这个设计其实很像医院里的分诊台。急诊科不会让每个病人都做全套CT加核磁共振检查,护士会先看一眼症状,感冒发烧的直接开药走人,胸痛气短的立刻安排深度检查。分诊台判断的依据不是病人挂号的顺序,而是继续检查能带来多大的诊断价值,能不能覆盖检查本身的时间和资源成本。如果没有分诊这一步,所有病人都做全套检查,医院的CT机器排队能排到三天后,真正需要抢救的病人反而被拖延。RISE的推演门干的就是这件事,只不过分诊的对象换成了每一个驾驶场景。
那么这个"停"或"走"的决策具体是怎么落地的呢?论文里给出了一个简洁的数学表达:在每个推演深度,系统都要做一次二元判断,判断的依据是当前推演深度下,继续推演能不能换来正向的收益。一旦某一步判断为"停",或者已经到达系统设定的最大推演深度,推演就结束,把手头已有的这段"未来预演"交给规划器去生成最终轨迹。
这里有个细节值得说一下:调度器并不是一次性预测"这个场景总共需要推演几步",而是走一步看一步。这种设计的好处是,它不需要提前对场景做"简单/复杂"的分类,而是让每一步的决策自然地累积成一个因地制宜的推演深度,可能是0步,也可能是数据集允许的最大步数。
数据的难题:假如没发生的事故谁来告诉AI
讲完了调度器怎么工作,还有一个问题没解决:潜在评估器怎么知道什么样的场景是"高风险"的?
这里遇到了一个很现实的数据困境。自动驾驶公司手里的真实行车记录,只记录了实际发生的那一种结果。比如某辆车经过某个路口时安然无恙地开过去了,但记录里永远不会告诉你,如果当时稍微晚刹车零点几秒,会不会撞上旁边突然变道的车。
这就好比你想训练一个消防员判断火情严重程度,但你手头的历史资料里,火灾要么已经被扑灭要么根本没发生大规模蔓延,你压根没有"如果没及时救援会烧成什么样"的对照样本。没有这种"假如"的数据,消防员很难学会精准判断险情的分级。
为了解决这个问题,团队专门构建了一个叫CounterDrive的反事实数据集。
CounterDrive:这是一个专门为RISE打造的反事实驾驶数据集,里面的视频不是真实发生的行车记录,而是通过AI视频生成技术,从真实场景的某一帧画面出发,生成的"假如接下来发生了事故"的模拟视频。
具体的制作流程是这样的:先从NAVSIM和nuScenes这两个自动驾驶公开数据集里挑选一些关键帧,然后用视觉语言模型给这个画面写一段近景描述(比如"前方有一辆SUV,左侧车道有一辆轿车"),再让视觉语言模型基于这个描述编造一个物理上说得通的事故情节(比如"自车径直追尾了前方的SUV")。这两段文字加上一段固定的相机视角约束提示词,一起喂给一个叫Wan 2.7的视频生成模型,就能生成一段十秒钟、1080p分辨率的"反事实"驾驶视频。
生成完视频之后,团队还用一个叫OpenVO的视觉里程计工具,从生成的视频里反推出车辆的运动轨迹和动作序列。这一步是为了让生成的视频不仅要"看起来像事故",还要能提取出可用于训练的轨迹数据。
但光靠AI生成还不够可靠,毕竟AI有时候会生成一些不符合物理规律的诡异画面,比如车辆瞬移或者轨迹和画面对不上。所以团队还专门请了标注员对每一条生成视频做人工审核,标记出事故发生的具体帧数、事故的类型(是自车导致的,还是对方车辆导致的,还是正常无事故),以及生成过程中是否出现了明显的画面扭曲。审核不合格的视频会被直接剔除。
经过这一轮筛选,最终留下来的CounterDrive数据集包含了nuScenes的2432条训练片段和511条测试片段,以及NAVSIM的5013条训练片段和1000条测试片段。这些留下来的每一条反事实片段,都会和它对应的真实原始片段配成一对,用来教AI区分"正常"和"危险"两种未来之间的界限在哪里。
这里有个特别巧妙的设计,叫时序局部化的风险标定。
时序局部化风险标定:由于事故不是一开始就能预判出来的,而是随着场景发展逐渐显现的,所以训练时不能简单粗暴地说"这条反事实视频从头到尾都比真实视频风险高",而是要精确到"从事故征兆出现的那一帧开始"才判定为风险更高,事故征兆出现之前的两段视频风险应当是差不多的。
这就像你回看一场足球比赛的录像,判断一次任意球是不是有威胁,不能说整场比赛的每一分钟都很危险,而是要精确到球员起脚射门那一刻之前,那种紧张感才真正开始累积。如果不做这种时序上的精细区分,AI很可能会把"事故发生前完全正常的画面"也误判成高风险,这样一来风险判断就完全失去了参考价值。
三阶段训练:一步步教会AI什么时候该"想"
RISE的整个训练过程分成三个阶段,层层递进,每一阶段解决一个具体问题。
第一阶段训练的是预测器和一个初版规划器。预测器的任务是学会根据历史画面和车辆动作,尽可能准确地推演出未来的场景表示,这一步用真实数据和CounterDrive数据一起训练,让预测器见识过更多样化的未来走向,而不只是"什么都没发生"这一种剧本。初版规划器则是在这个基础上,学会怎么根据不同深度的推演结果生成合理的行驶轨迹。
第二阶段是整个系统里最费心思的部分,训练的是潜在评估器和最终版规划器。这一步要解决的核心问题是:怎么把"这条轨迹有多危险"这件事变成一个可学习的数字。团队设计了一个基于几何规则的固定风险评估器,用来自动打分,比如碰撞风险、太靠近其他车辆的风险、轨迹本身的误差、乘坐舒适度等等,综合成一个风险分数。真实数据用这个固定评估器打分作为监督信号,而CounterDrive的反事实数据由于没有可靠的未来物体几何信息,就用前面提到的时序局部化排序损失来监督,也就是让模型学会"事故发生后,反事实场景的风险分数必须显著高于真实场景"。
学完风险判断之后,还有一步叫做风险引导的潜在优化,通俗理解就是:拿到一段推演出来的未来轨迹后,如果发现它风险偏高,系统会对这段"想象"做一次小幅度的微调,往风险更低的方向拉一拉,然后再把这个优化后的版本交给规划器去生成最终动作。这一步的思路有点像你写完一篇文章后,重新读一遍把明显的病句改一改,再定稿发出去。
第三阶段单独训练推演门,这一步把前两阶段训练好的所有模块都冻结起来,只用真实数据的完整推演结果(也就是在每一个推演深度上都跑一遍规划、都打一次分)来教推演门什么时候该喊停。这里引入了一个叫计算代价权重的参数,用来控制系统对"多想一步值不值得"的偏好程度,如果这个权重设得越大,系统就越倾向于早点停下来,避免浪费计算资源。
实验结果:数字说话
理论讲完了,实际效果到底怎么样呢?论文在两个业内公认的评测基准上做了验证:NAVSIM(分v1和v2两个版本)和nuScenes。
在NAVSIM v1上,RISE拿到了91.5的PDMS综合得分,这是目前所有对比方法里最高的。
PDMS(Predictive Driving Model Score):这是NAVSIM评测体系里的一个综合打分指标,融合了无碰撞率、可行驶区域符合度、自车前进度、舒适度、碰撞时间等多项子指标,分数越高代表整体驾驶规划质量越好。
对比一下同期的其他方法:DriveFuture拿到90.7分,EponaV2拿到90.4分,DAWN和Drive-JEPA都在89分左右。RISE超过第二名将近1分,这个差距在这类高度优化过的benchmark竞赛里已经不算小了。
在NAVSIM v2上,RISE同样表现亮眼,拿到90.8的EPDMS,在九项子指标里拿了七项第一或并列第一,尤其是TTC(碰撞时间)指标达到98.7分,明显领先其他方法。
而在nuScenes数据集上,RISE的平均L2轨迹误差只有0.31米,平均碰撞率只有0.10,这两项也都是所有对比方法中最好的成绩。
数字之外,还有几组对照实验特别值得说一说。
第一组是拆解实验,也就是分别去掉调度器和CounterDrive,看看单独加进去各自能提升多少。结果显示,只加CounterDrive能把NAVSIM的EPDMS从88.9提升到89.8,只加调度器能提升到90.4,两个一起加上去才是最好的90.8。这说明这两个组件是互补的,各自解决不同的问题,CounterDrive让未来预测学得更全面,调度器让计算资源分配更合理。
第二组对照实验更有意思,比较的是不同的"停止推演"策略。团队设计了两种简单粗暴的替代方案:一种叫随机停止,就是给每个场景随机分配一个0到4之间的推演深度;另一种叫潜在边际停止,就是看连续两步推演出来的场景表示够不够接近,接近了就认为可以停了。结果随机停止方案的延迟最低,只有264毫秒,但EPDMS只有89.5;潜在边际方案延迟反而更高,达到308毫秒,效果也只有89.7。而RISE的调度器方案用了287毫秒的延迟,换来了90.8的EPDMS。这组数据传递的信息很直接:判断"该不该继续想"这件事,光靠猜或者光看推演结果收不收敛都不够,必须真正对接到"这样做对最终规划质量有没有实质性提升"这个核心问题上。
第三组实验回答了一个很根本的问题:到底有没有必要做自适应推演?团队把每个测试场景都固定跑一遍0到4这五个推演深度,然后看哪个深度分数最高,按这个"最佳深度"给场景分组。结果发现,1248个场景在完全不推演(深度为0)时表现最好,而4036个场景需要推演到深度3,2180个场景需要推演到深度4才最好。对于那些"深度0最优"的场景组,如果强行让它们推演到深度4,EPDMS反而从89.9掉到88.4;反过来,对于"深度4最优"的场景组,从深度0推演到深度4,EPDMS能从88.5提升到91.1。
这组数据狠狠打脸了"一刀切"策略的合理性。论文还配了几张典型场景的截图作对照:深度为0的场景大多是空旷的直路,前方没什么车辆和行人;深度1到2的场景开始出现红绿灯、车辆或者道路施工;深度3到4的场景则是密集的人流或者交叉路口车流,未来演变的不确定性明显更高。这个分布图直观地印证了论文一开始提出的那个核心观点:驾驶场景的复杂程度天差地别,用固定深度的推演去应对所有场景,本质上就是在拿一把尺子去量所有形状的东西。
第四组实验专门验证了CounterDrive对安全场景识别能力的提升效果。没有用CounterDrive训练的模型,在识别反事实测试集里"哪个场景更危险"这件事上表现得几乎和随机瞎猜差不多,AUC分数只有0.49到0.52,事故识别准确率也只有0.51。而用了CounterDrive训练之后,AUC分数飙升到0.93到0.96,准确率提升到0.96。
AUC(Area Under Curve):这是一个衡量分类器区分能力的指标,取值范围在0到1之间,0.5代表和随机猜测没有区别,越接近1代表区分能力越强。
这个对比数据说明,光靠真实行车记录训练出来的模型,几乎学不到什么叫"危险",因为它见过的场景里事故本来就没有真正发生过。而给它看过大量的"假如没及时刹车会怎样"的反事实视频之后,模型才真正学会了区分安全和危险之间的那条线。
第五组实验测试了这套调度器方案能不能迁移到别的系统架构上。团队把调度器直接嵌入到另一个叫DAWN的世界动作交互模型里,完全不改动它原本的预测器和规划器,结果PDMS从89.1提升到90.3,其中前进度指标提升了2.7分,碰撞时间指标提升了2.3分,同时碰撞得分依然保持满分100。这说明调度器不是一个绑定在特定架构上的技巧,而是可以像插件一样,插到不同的世界动作模型里都能起作用。
最后一组是定性对比,团队展示了几组真实道路场景下,RISE和另一个对比方法Drive-JEPA生成的轨迹和真实人类驾驶轨迹的对比图。在转弯和路口场景里,Drive-JEPA经常出现明显偏离车道几何形状的轨迹,而RISE始终紧贴人类实际驾驶的路线;在弯道场景里,哪怕推演深度是0,RISE依然能准确跟随参考轨迹,而Drive-JEPA的偏差要明显得多。
局限和未来方向
论文也很坦诚地承认了几点局限。首先,目前所有实验都局限在自动驾驶这一个领域,这套自适应推演的思路能不能推广到其他需要"世界模型"的场景(比如机器人操作),还没有验证过。其次,由于生成和筛选反事实样本的成本不低,CounterDrive目前还没有做到和NAVSIM训练集一对一的完整覆盖,只是选取了一部分场景来构建反事实版本。团队表示未来会考虑把这套思路扩展到更多领域,同时进一步扩大反事实数据集的规模。
写在后面
读完这篇论文,最让我意外的一个细节是那个"每个场景最优推演深度"的分组实验。它不是理论推导出来的结论,而是实打实跑了五种固定深度、拿数据说话得出来的分布。1248个场景需要0步,4036个场景需要3步,这种分布本身就说明了一件事:所谓"复杂场景"和"简单场景"的边界不是人为划定的类别,而是每个场景自己"长"出来的属性,只有让系统亲自去试才能知道答案。
另一个让我反复琢磨的地方是CounterDrive这个数据集的构建逻辑。用AI生成"没有发生的事故"来补全训练数据的空白,这个思路听起来简单,但背后其实是在回答一个更深层的问题:真实世界的数据天然是有偏的,因为绝大多数时候,糟糕的结局没有发生,恰恰是因为司机或者系统提前规避了风险。如果只用发生过的事情训练AI判断风险,AI永远学不会那些"差一点就出事"的临界状态长什么样。这种用生成模型去填补现实数据结构性缺陷的做法,或许在很多其他需要风险判断的领域都值得借鉴,比如医疗诊断里那些"如果没有及时治疗会恶化成什么样"的场景。
论文里还有一个没细讲但值得追问的问题:调度器学会的"什么时候该多想",到底是在学一种通用的驾驶直觉,还是仅仅在拟合NAVSIM和nuScenes这两个数据集里的场景分布?如果换到一个完全陌生的城市、完全不同的交通规则下,这套判断标准还成立吗?
Q&A
Q1:RISE是什么?
A:RISE是COWARobot团队提出的一个自适应推演框架,用于给自动驾驶的世界动作模型增加一个"调度器",让系统根据每个驾驶场景的实际复杂程度,自主决定要不要继续推演未来、推演到多深,而不是对所有场景都用固定的推演步数。
Q2:CounterDrive数据集是用来做什么的?
A:CounterDrive是一个反事实驾驶数据集,专门用AI视频生成技术从真实行车记录的关键帧出发,生成"假如接下来发生了事故"的模拟视频,用来弥补真实行车记录里只有一种结局、缺乏危险场景对照样本的问题,帮助模型学会区分安全和危险。
Q3:RISE和其他自动驾驶方法相比效果怎么样?
A:RISE在NAVSIM v1上拿到91.5的PDMS综合得分,在NAVSIM v2上拿到90.8的EPDMS,在nuScenes上平均L2误差只有0.31米、平均碰撞率只有0.10,均超过了当时的其他对比方法,同时还能减少不必要的推演计算量。