自动驾驶论文看多了会有一种感觉:几乎所有端到端方案都忙着“重建世界”。要么把多传感器稠密地投到BEV空间,要么把周围场景建成体素占用网格,再在显式表征之上做规划。AD-E2E-JEPA这条路线有点不一样。它把JEPA(联合嵌入预测架构)搬进了驾驶规划,核心思路不是重建,而是在压缩潜空间里做预测与规划。文章强调的卖点是零样本目标条件驾驶规划:换个城市、换一条没见过的路,模型不用重新训练也能规划出合理轨迹。
这篇内容适合三类人:做端到端自动驾驶的算法工程师,研究世界模型与自监督表征的同学,以及关心“自动驾驶模型到底能不能泛化到新环境”的产品和技术负责人。我会先从方向背景讲起,再拆解潜空间里的核心组件,然后重点分析零样本规划为什么能成立,最后聊聊从论文到真车部署之间,还有哪些容易被忽略的坑。
1. 端到端自动驾驶的“重建派”与JEPA的“反重建”逻辑
1.1 为什么要对“重建世界”这件事产生怀疑
现在主流端到端自动驾驶基本是这副模样:摄像头和激光雷达的数据进网络,先构建一个统一的显式表征——BEV语义图、占用体素、或者带深度的栅格——再在这个表征上做轨迹预测和规划。整个过程看起来顺理成章:先把世界“还原”出来,再让规划器去读这张图。
问题在于,还原出来的世界包含大量与驾驶决策无关的信息。车身的贴纸、路牌的纹理、树叶被风吹动的轨迹,这些细节在像素级或体素级重建里都要被认真估计,但规划器根本不需要知道这些。更麻烦的是,重建误差会被规划器放大:一个像素级的对不齐,映射到自车轨迹上可能变成一次无效避让或者误刹车。
研究世界模型的团队很早就意识到这一点。经典的生成式预测,比如预测下一帧RGB图像、预测占用网格的未来演变,本质上是在做“像素级赌博”——赌对了一大片纹理毫无意义,赌错了一个关键障碍物就要出事故。所以才有“预测潜空间,而不是预测像素”的提法。
JEPA的核心主张是:模型应该把观测压到一个抽象表示里,丢弃掉对任务无用的信息,只保留那些能支持预测和决策的结构。这和自监督学习的很多工作一致,但它不满足于只做静态表征,更强调在这个低维空间里做“未来预测”。预测目标不是某个具体像素值,而是未来状态编码出来的向量,通过对比或能量函数来约束。
1.2 AD-E2E-JEPA的位置:不是“加了一个新模块”,而是换了一套目标函数
把JEPA塞进端到端驾驶里,不是简单拿一个Transformer换掉另一个Transformer。改变的是整个学习信号:传统端到端方案靠“轨迹误差”“占用交叉熵”这类信号反向传播,AD-E2E-JEPA的训练主要靠“潜空间预测的一致性”和“目标条件下的行为匹配”。
这意味着,在训练阶段网络从来没见过“像素标签”或“逐帧光流”,它学到的是一个时空抽象的映射:给定当前场景的潜表示,给定一个目标,预测得到的未来潜轨迹要与后续真实观测编码出来的轨迹在嵌入空间里足够接近。
拿开车来类比:老司机看前方路况,不会去数路面上有多少条裂缝,而是瞬间形成一个“拥挤/畅通/有异常”的抽象判断,再据此做决策。JEPA要学的就是这种抽象判断,而且它明确地只保留“跟决策相关”的差异,压制其余方差。
这一条路线的吸引力在于:抽象表征天然具备跨场景泛化的能力。城市A里“前方车辆减速”的潜模式,和城市B里“前方车辆减速”的潜模式,只要编码器抽取的是行为层面的语义而不是城市特有的外观,它们就落在潜空间相近的位置。零样本规划的底层逻辑,从这里就已经埋下伏笔。
2. AD-E2E-JEPA架构拆解:压缩潜空间里到底发生了哪几步
2.1 上下文编码:从多传感器观测到场景潜变量
整个系统最前端是一个编码器,输入是多模态观测和自车状态。典型配置是前视或环视摄像头图像、毫米波雷达点云、自车速度与转向,有时还有高清地图矢量。这些异构输入各自通过对应的特征提取器,再在一个融合模块里对齐到自车坐标系。
关键是,编码器的输出不是给规划器的一张栅格图,而是一个固定维度的场景潜向量 z_t。这个向量带有明确的信息瓶颈:维度被压缩得很低,迫使模型把输入里最关键的时空关系抽出来。一个常见的做法是在这个阶段引入对比学习或方差-协方差约束,让向量内部维度之间尽量解耦,避免“所有信息都堆在一两个通道”这种偷懒行为。
这个潜向量还要和目标的编码共用同一个语义空间。目标可以是“右转驶入目标道路”“在某个地点靠边停车”“沿车道直行300米”这类结构化描述,也可以是相对坐标和走向的组合。目标编码器保证目标与场景的表示风格一致,后面的预测器才能把两者放到同一个坐标系里计算。
2.2 目标条件预测器:在潜空间里推演“接下来会发生什么”
拿到了场景潜向量和目标嵌入后,一个时序预测器开始工作。它的输入是场景上下文 z_t 和目标 g,输出是一段未来潜状态的序列,大致对应几秒内的场景演化与自车运动轨迹。这里要强调“目标条件”这个措辞:预测器被明确告知要达到什么,因此输出的不是唯一的最可能未来,而是“在满足目标条件下的合理未来”。
和逐帧自回归生成相比,潜空间预测省掉了大量中间解码步骤。你不需要先解码出一张未来图像,再在图像上找车道线;你直接在抽象的驾驶状态序列上推演。比如预测器可能输出“前方目标车减速,自车具备向左变道的时空间隙”这样的信息模式,而不是“三百个像素块如何流动”的视觉模式。
在实现层面,预测器通常会配合一个离散瓶颈。驾驶行为本身是高度模式化的——直行、变道、跟停、绕障、靠边,每一个都对应潜空间里的一小块区域。把预测结果离散化,好处是后续规划步骤可以在更小的空间里高效搜索,代价是连续轨迹的细腻程度受限,需要额外的细化模块补足。
2.3 规划器:在潜轨迹上挑一条,而不是在路点上暴力枚举
规划器拿到预测器给出的若干候选潜轨迹后,要根据代价函数挑一条。代价项通常包含:目标达成距离、安全间距、舒适性(加速度与转向变化率)、以及与交通规则的匹配度。
这一步我在复现类似方案时特别有感触:真正的规划搜索并不是在N条足尺轨迹里做完整评估,而是在潜空间里做快速筛选,再用一个轻量解码器把选中的潜轨迹细化成可执行控制序列。这种“先筛后精”的顺序,让整个推理的算力开销比直接在稠密栅格上做轨迹采样低一个数量级。
整个过程可以整理成下面这个流程,方便理解信息流向:
1. 多传感器观测 + 自车状态 -> 上下文编码器 -> 场景潜向量 z_t 2. 目标描述 -> 目标编码器 -> 目标嵌入 g 3. 预测器(z_t, g) -> 候选潜轨迹集合 {y_1, y_2, ...} 4. 代价评估与搜索 -> 选中最优潜轨迹 y* 5. 解码器将 y* 细化成轨迹/控制序列,交给下层控制器需要注意的是,第4步是可微的,整个训练可以从最后的轨迹损失一路传回编码器和预测器。这就是“端到端”真正的含义:感知、预测、规划共享同一套梯度信号,谁也别想逃避责任。
3. 零样本目标条件驾驶规划:为什么“没见过的城市”也能开
3.1 目标条件规划到底在解决什么
传统行为克隆模型是最朴素的映射:观测进,动作出。它确实能做到端到端,但模型不知道自己在执行什么意图。今天从A地开去B地要右转,明天从C地开去D地可能也要右转,两个任务里的右转动作在视觉上很像,但因为起始地不一样,整个上下文特征分布完全不同,模型很难把“右转”这个技能从具体环境中剥离出来。
目标条件规划把任务意图显式化,模型输入多了一个目标向量。训练时同一个场景可以配对多个不同的目标,同一个目标也可以配对多个不同的场景。模型必须学会的是“给定当前情境与意图,怎样动态地调整行为”,而不是记住某条具体路线上的固定转向序列。这一步是把“路线记忆”变成“驾驶技能”的关键。
3.2 零样本成立的三个机制
第一个机制是压缩带来的解耦。场景编码器被迫丢弃城市特异性外观,只保留行为相关的结构。新城市的道路几何虽然不同,但“前方堵车”“右侧车辆并入”“路口有行人横穿”这些交互结构,在潜空间里和训练城市高度相似。规划器看到的不是“水泥路 vs 柏油路”,而是“占据状态 a、速度状态 b、意图状态 c”这样统一的抽象。
第二个机制是目标编码的语义一致性。目标的表达是相对场景的,而不是绝对坐标的。“路口右转”在任何城市都是同一个嵌入;这个嵌入与场景上下文组合时,预测器知道要找的是“右转可通行的时空间隙”,而不是“与某地图瓦片匹配的路径”。
第三个机制是规划器本身的零样本属性。规划器的输入是潜向量,不是原始像素;输出是驾驶决策,不是视觉预测。它在潜空间里做的是一种“语义层面的推理”,这种推理天然比像素级推理更容易跨域转移。用一个类比来说:一个在中国开熟了车的老司机,到了欧洲第一次开车,虽然路牌文字和道路标线风格都变了,但他知道“跟车距离、变道时机、交叉口让行”的规则,适应几次就能开。潜空间里的规划器拥有的就是这种“驾驶规则记忆”。
3.3 评估零样本的标准姿势
看论文或自己复现时,要特别注意评估设置是不是真的“零样本”。合法的做法是:在一组城市(或一组场景类型)上训练,在完全未参与训练的城市上做闭环测试,中间不做任何微调,也不让评估集的数据出现在预训练阶段。很多号称零样本的工作,实际上只是“跨场景泛化”,数据分布有重叠。这两者有本质区别。
更严格的评估还会加一个维度:目标本身也是未见的。训练时模型见过“左转”“掉头”“靠边”,测试时给它一个“连续变两个车道后右转”的复合目标,看它是不是能组合已知技能。这种评估对潜空间的组合性要求更高,也是我更认可的零样本测试方式。
我在复现同类方案时发现,同样的模型架构,评估城市差异越大,潜空间表征的质量对结果的影响就越明显。如果编码器过度依赖训练城市的纹理特征,会出现“城市A表现极好,城市B直接翻车”的现象。反过来,如果编码器训练得足够好,换城市后的轨迹误差和平稳性指标下降幅度通常能控制在20%以内。
4. 训练与评估设计里最容易忽略的四个细节
4.1 数据配对策略比数据量本身更重要
目标条件模型并不只是“给一段日志轨迹加上目标标签”,配对方式直接影响学习效果。我在复现类似路线时踩过坑:同一个场景只配一个目标,模型最终退化成普通行为克隆,因为变量里没有出现“不同目标、同一场景”的对照,模型根本不需要学会区分意图。
合理的做法是让场景和目标交叉组合。一段包含直行、左转、右转的日志,可以按不同位置切分出多个目标,甚至人为构造“偏离演示路径但合法”的目标,迫使规划器学会多种达成方式。只有目标维度出现足够的对比,模型才会真正建立“场景+意图→行为”的条件映射。
4.2 传感器与坐标系的归一化
潜空间看起来抽象,但训练时喂进去的观测必须经过严格的坐标系统一。摄像头图像要做自车运动补偿,雷达点云要变换到自车坐标系,目标点的坐标也要做同样的变换。做过实车数据的人都知道,传感器时间戳不同步是常态,一根50毫秒的延迟就会让“目标位置与观测对齐”出现明显偏差,模型会在潜空间里学到虚假的时序相关。
如果你的数据来自仿真器,也要注意仿真器输出的速度、转向、位置单位是否归一化到同一尺度。潜空间对量纲极其敏感:速度这个特征如果数值范围远大于其他特征,编码器会优先保存速度信息,而把更重要的空间结构信息压掉。
4.3 评估要分“两碗饭”:闭环仿真与开放环分析
零样本规划最有力的证据来自闭环模拟器:让规划器真正接管车辆,跑完整条测试路线,统计成功率、碰撞率、路线偏差。但闭环结果存在随机性,不同初始种子、不同交通流配置结果可能差异很大。需要固定随机种子,多次重复实验取均值。
开放环行为克隆评估作为补充指标很有必要:在真实驾驶日志上计算规划轨迹与人类轨迹的位移误差和碰撞率。这个指标虽然不能证明闭环能力,但能帮助分析模型哪里学到了、哪里没学到,比如“目标右转的轨迹分布是否合理”“直行场景是不是过于保守”。
4.4 潜空间可视化是调试利器
不要把潜空间只当黑盒。把场景编码和目标编码投影到二维可视化图(比如UMAP),能直观看出模型有没有把语义相似的驾驶情境聚到一起。我在调试时就发现过问题:某些左转场景和直行场景在潜空间里纠缠不清,最后查出来是目标编码里“左转”和“直行”两条描述文本的归一化方式有误,导致语义区分度不够。
这种可视化还能用来做数据质检:哪些样本在潜空间里处于离群位置,往往是标注错误或传感器异常样本,直接过滤掉能显著提升训练稳定性。
5. 论文到工程:把压缩潜空间装进一辆真车会遇到什么
5.1 算力与部署:潜空间方案的实打实优势
潜空间路线最吸引工程团队的一点是推理链路明显变短。传统BEV方案在建图阶段就要跑一个很大的编码器,输出高分辨率特征图;潜空间方案只需要输出一个很小的向量,规划阶段的搜索空间也小,整体延迟可以控制在几十毫秒内。
模型体积也很友好。上下文编码器和预测器加在一起,参数量可以控制在现代车载计算平台能接受的范围内。省下来的显存可以分给冗余安全校验模块,这在实际工程里是很划算的交换。
5.2 安全边界:零样本不等于无人负责
必须把话说明白:零样本泛化说的是“语义技能可以迁移”,不代表“任何场景都能无监督跑通”。潜空间对长尾障碍物、异形车辆、突发交通管制这类罕见输入,有可能过度压缩,导致信息在编码阶段就已经丢失。规划器再聪明,也不可能基于丢失的信息做出正确判断。
所以在真车上部署时,潜空间规划器外面一定要套一层独立的安全护栏。这个护栏不依赖神经网络,可以是一个规则式的碰撞检测或责任安全模型,对规划器输出的轨迹做最终校验。我的建议是:潜空间方案负责提供拟人化的、平滑的驾驶行为;安全护栏负责兜底;两者之间通过接口解耦,互不干扰。
5.3 复现时最容易翻车的三个工程问题
第一是训练不稳定。潜空间预测的损失通常包含余弦相似度、对比损失、轨迹回归等多个项,每项的权重非常敏感。我遇到过的现象是:某个权重提高0.1,训练前期损失下降很快,但到了中期潜空间表征崩溃,所有向量挤成一个点。建议大权重项逐步加入,先在干净子集上跑通,再上全量数据。
第二是预测器训练时间不足。规划效果依赖预测器对潜轨迹的推演质量,而预测器是一个时序模型,需要较长序列的上下文才能收敛。很多人复现一两天看不到效果就换方案,其实这个方向训练周期比普通行为克隆长得多,要有耐心。
第三是回放缓冲的混合比例。如果训练数据里仿真和真实日志混合使用,两者的潜空间分布会有系统性差异。我建议按照任务比例采样,而不是简单按文件数混合。否则模型会偏向数据量大的来源,另一个来源的零样本性能会下降。
5.4 与主流路线的对照:怎么向团队解释这套方案
| 对照组 | 标注需求 | 跨城市迁移 | 行为拟人化 | 实现复杂度 | 成熟度 |
|---|---|---|---|---|---|
| BEV感知+规则规划 | 高(需要语义/实例/拓扑标注) | 中(依赖地图质量) | 中(规则驱动的保守) | 高 | 非常成熟 |
| 占用网络端到端 | 中(需要占用真值) | 中 | 中 | 高 | 较成熟 |
| 传统行为克隆 | 低 | 低 | 高(模仿演示) | 低 | 成熟 |
| AD-E2E-JEPA式潜空间规划 | 低(仅需驾驶日志和意图标签) | 高(潜空间语义泛化) | 高(端到端策略蒸馏) | 中 | 研究阶段 |
这张表不是让大家立刻放弃BEV方案,而是提供一个决策视角:如果产品核心诉求是跨城市快速部署、减少标注依赖,那潜空间方向值得投入研究资源;如果当下关注的是分钟级决策稳定性,成熟方案可能更适合量产。
6. 我的几点看法与复现建议
这个方向有几个地方我特别喜欢。一是它把“世界模型”从口号落实成了具体网络结构,编码器负责压缩、预测器负责推演、规划器负责决策,模块边界清楚,出问题容易定位。二是零样本目标条件规划这个提法在商业上有实际价值:自动驾驶公司每开一个新城市,最贵的往往不是数据采集,而是标注、质检和回归测试。如果模型能在不重新训练的情况下快速适配,整个扩张成本都会显著下降。
如果你打算动手复现或者基于这个思路做研究,我的建议是从一个小版本开始。不必一上来就在大型数据集上跑满配,先用轻量模拟器搭一个可控环境:十来个路线类型,三种目标,两个完全不同风格的场景地图。先跑通“城市A训练、城市B闭环测试”的完整流程,把潜空间的瓶颈设计做了比较、把训练损失的权重调稳,再逐步加数据和传感器模态。
还有一个容易被忽视的环节:实验记录一定要基层细。潜空间维数、目标编码方式、预测器层数、损失项权重,每一项组合都能导出完全不同的迁移表现。把这些配置做成可复现的实验清单,能省掉大量“我上周明明跑出来过”的冤枉时间。
最后提醒一点:如果有人告诉你这个方案已经可以完全端到端地上车,不要信。潜空间规划的价值在于高效和泛化,但安全责任不能被“端到端”三个字带跑。做真车测试时,必须保留传统安全校验链路和人工接管机制。等到数据积累到足够覆盖长尾场景,再逐步放开,这才是把好论文变成好产品的正常路径。