在自动驾驶领域,主流做法是「看录像学习」——行为克隆(BC)。AI跟着人类开的轨迹进行模仿,看起来像那么回事,但一遇到录像里没见过的场景(比如前车急刹、侧方加塞),就很可能原地懵圈,犯下灾难性错误。问题的根源在于:AI从没在真正的闭环里自己开过,它不知道自己的错误行为会引发什么连锁反应。要解决这个问题,最直白的思路就是让AI在模拟器中自己跟自己练——也就是自博弈(Self-Play)。不是说自博弈很火吗?AlphaGo、星际争霸、Dota2……但为什么自动驾驶领域一直没怎么用上?因为缺一个能同时满足两个条件的模拟器:快(能跑上亿步)且能输出像素级画面(端到端模型需要相机图像)。之前的模拟器要么跑得飞快但只给矢量鸟瞰图(BEV),要么画面逼真但慢得像老牛拉破车。Gigapixel团队的前一作Gigaflow已经证明了用自博弈RL(强化学习)在矢量BEV上训练能得到鲁棒的驾驶策略,但痛点在于——矢量化BEV跟端到端模型需要的原始摄像头图像是两码事。于是他们横向拓展,把模拟器升级为能渲染透视视角(perspective rendering)的高吞吐引擎,并提出了更高效的训练方案——自博弈DAgger。整个方法分为三条腿走路(见图2):(a) 在矢量BEV模拟器中用自博弈RL训练一个教师模型(Teacher)。教师模型小而轻,运行方便,不怕RL的样本低效问题。它学到的驾驶行为非常稳健。(b) 在Gigapixel的像素级模拟器中,用自博弈DAgger把教师的知识蒸馏给学生。所有场景里的AI车辆都由学生策略控制,教师则「暗中」给出轨迹标签。这种多智能体同时参与的方式,让每个模拟器步都能产出海量训练数据。(c) 最后,通过轻量级感知适配,把学生从抽象的模拟器画面迁移到真实摄像头影像上。只微调感知模块的编码器,规划头不动。图2:端到端驾驶的自博弈训练流程。(a)在抽象模拟器中用自博弈RL训练矢量化的教师;(b)在Gigapixel中通过自博弈DAgger把教师蒸馏给像素级学生,所有智能体由学生控制,教师并行产生轨迹标签;(c)通过配对的模拟-真实观测对微调感知骨干,将学生适配到真实影像。为什么不自博弈RL直接训像素级模型?因为太慢了。看看图1,把DrivoR这种Transformer模型塞进RL循环,每一步都要前向+反向传播,每秒处理的步数骤降到几百。而教师模型只有270万参数,在矢量化状态上RL优化到250亿步都是可行的。所以用蒸馏代替RL,是现实的计算策略。图1:Gigapixel吞吐量 vs 分辨率。在1块NVIDIA A100L GPU上,对比不同渲染分辨率和策略架构下的智能体步数每秒(SPS)。当模型变大(如DrivoR),渲染不再是瓶颈,光栅化(Rast.)与光线追踪(RT)的差距变小。HUGSIM和RAP的吞吐量用其公开代码测得,慢了上千倍。自博弈DAgger与普通DAgger最大的区别在于:普通DAgger里只有主车是学习策略控制的,周围车辆要么回放日志要么用固定规则行为;而自博弈DAgger里场景中所有车辆都由学习策略控制,这样产生的交互场景才是真正「活」的。当策略在进化,它遇到的交互也在进化,自然就把训练数据推向了更丰富的长尾区域。而且每步产生的样本数不是1份,而是N份(N为场景中受控的智能体数量),效率成倍提升。
自博弈DAgger的数学表达
标准的DAgger(数据集聚合,Dataset Aggregation)目标函数为:其中dπstudent是学生策略下的状态分布,πexpert提供动作标签,L是动作损失。学生和专家可以通过不同的观测函数(Ostudent、Oexpert)来获取信息。自博弈DAgger把单学生的状态分布扩展为所有智能体都由学生控制时的联合状态分布,并且对每个智能体i收集标签:这里N是智能体数量,τi是教师为智能体i生成的轨迹目标。通过这种方式,每个模拟器步都产生了多份监督信号,训练效率大幅提升。论文作者还在图3中直观比较了自博弈DAgger与直接自博弈RL的样本效率差距:图3:自博弈DAgger vs 自博弈RL。在Gigapixel中训练CNN模型,自博弈DAgger(蓝线)仅用约3000分之一的步数就超越了直接RL的驾驶得分,逼近教师水平(虚线)。
高性能像素级模拟器Gigapixel
自博弈之所以在自动驾驶里迟迟无法铺开,一个关键瓶颈就是模拟器的速度。之前的高吞吐模拟器(如Gigaflow、PufferDrive)只能给矢量鸟瞰图,端到端模型不认;而能出逼真画面(如CARLA、HUGSIM)的模拟器,每秒只能跑几十步,根本没法支撑自博弈所需的几十亿步训练。Gigapixel的聪明之处在于:它做了一个简约但够用的模拟器。场景中的车辆、行人、骑手都用简单的立方体表示,车道线用细条,红绿灯用小球。看似简陋,但关键的几何关系和交互信息一个不少。用Madrona渲染引擎做批量化GPU加速,支持光栅化和光线追踪两种后端。在单张A100L GPU上,Gigapixel的光栅化渲染器在512×512分辨率下,能达到超过5万智能体步/秒(SPS)的吞吐量,比HUGSIM快约1000倍,比RAP快约4000倍。即便用光线追踪,速度也远超其他像素级模拟器。而且随着模型复杂度增加(比如用Transfomer架构),渲染就不再是瓶颈了。图1已经展示了这个对比。来直观感受一下Gigapixel的渲染效果(下图是光线追踪和光栅化的对比):图7:光线追踪 vs 光栅化的Gigapixel渲染效果对比。光栅化吞吐量更高,但着色更简单;光线追踪视觉效果更丰富,但速度稍慢。两者都保留了必要的场景结构。下面这个GIF展示了Gigapixel渲染器生成的ego视角像素视图(蓝色立方体为其他车辆,细线为车道线,彩色小球为交通灯):Gigapixel渲染器生成的egocentric像素视图。蓝色立方体为车辆,细线为车道,彩色小球为交通灯。虽简约,但足够保留驾驶所需的几何与交互信息。
论文提供了多组直观的闭环驾驶对比视频。图5展示了一个经典场景——前车减速停车,自博弈训练的DrivoR能提前减速并绕行通过,而BC训练的DrivoR直直地撞了上去:图5:定性对比——靠近减速前车时的闭环驾驶行为。上方(绿色):自博弈训练的DrivoR,在前车停止时减速并规划平滑的侧向轨迹,绕过停下的车辆。下方(红色):BC训练的DrivoR,直行计划,距离前车越来越近,最终追尾。图6展示了另一种边缘情况——当车辆被挤到路肩附近时,自博弈策略能从容地转回车道,而BC策略则飞出道路:图6:路肩边缘的恢复行为。上方(绿色):自博弈训练的DrivoR缓慢转向,保持车辆在可行驶区域。下方(红色):BC训练的DrivoR未正确纠正,冲出路肩。下面这个GIF拼接了多个场景,左边是自博弈策略,右边是行为克隆策略,差异非常明显:自博弈策略(左侧) vs 行为克隆策略(右侧)在5个真实场景中的闭环驾驶对比。自博弈策略能提前减速、规划避让,而BC策略往往保持高速直行并导致碰撞。