☰
从像素到潜空间:AD-E2E-JEPA如何破解端到端规划的零样本难题
2026/10/17 11:46:14 网站建设 项目流程

从自动驾驶圈子里聊到一个现象:很多端到端规划模型,跑起来像“背题库的优等生”,训练集里见过的场景处理得漂亮,一旦遇到没见过的目标和交互组合,立即露怯。这也是我最初看到 Yann LeCun 团队这篇 AD-E2E-JEPA 论文时特别留意的原因——它把 JEPA 那套“在压缩潜空间里做预测”的思路搬到了自动驾驶上,想做的是零样本的目标条件驾驶规划:给一个没见过的目标,模型不另外训练就能规划出轨迹。这篇文章我想拆一拆它到底动了什么、为什么这样动,以及我们这些做实际项目的人能从里面借鉴什么。想聊清这件事,得先从 JEPA 为什么放着像素不看这件事说起。

很长一段时间里,业界主流的世界模型思路是做“视频预测”:输入几帧画面,模型生成未来几帧,把生成结果送给规划器。理论上一旦模型能“预演未来”,开车这事就从“反应式”变成“前瞻式”了,听着很完美。问题只有一个——像素太贵了。真实驾驶场景里,95%的像素在下一帧根本没变化:柏油路的纹理、天空、路边的灌木、远处楼房的窗户,这些东西无论怎么运动,对驾驶决策的贡献约等于零。让模型花费巨量算力去预测它们,本质上是在回答很多没被问到的问题。

JEPA 的立场很干脆:不生成像素,只预测抽象表示。它的核心思路当年在 I-JEPA、V-JEPA 上已经验证过——让模型在潜空间中预测图像块或视频片段的嵌入表示,而不是在原始像素空间做重建。你给模型看一段视频,它输出一个“语义等级”的预测:物体大致往哪动、遮挡关系怎么变、场景整体发生了什么,但不管每条纹理、每片树叶的精确颜色。这种做法的好处是,潜空间天然是一个“压缩了与任务无关细节”的空间,规划器在这个空间里作业,看到的全是高杠杆信息。AD-E2E-JEPA 论文正是把这个哲学迁移到了驾驶规划:既不生成未来图像,也不在 BEV 栅格上做显式重建,而是在一个潜状态序列上做自回归预测,然后直接从这个潜状态解码出轨迹。

这个选择背后的动机,值得多展开一点。早期模块化自动驾驶的流水线是感知→预测→规划→控制,每个模块独立训练。问题在于前一模块的误差会像利息一样滚到后模块:感知漏了一个行人,预测模块再强也白搭;预测模块给出的轨迹分布偏了,规划模块再优化也是在错误前提上打转。端到端学习试图根治这个问题,让特征从传感器数据一路流向方向盘,但这引出了新的困境——端到端模型通常用行为克隆训练,监督信号来自人类驾驶轨迹。行为克隆的本质是模仿,它隐含一个假设:训练集覆盖了所有需要处理的情形。真实道路上显然做不到,于是模型遇到训练分布之外的输入就开始“想象”出一条看着合理、实则危险的轨迹。AD-E2E-JEPA 选择用“目标条件+潜空间预测”绕开这个问题:模型学的不再是“在这个输入下人类会怎么打方向盘”,而是“在潜世界里,从当前状态怎么演化到目标状态”。前者是复读机,后者是规则理解。

再往深处说一层。为什么一定要在潜空间里做规划,而不是直接拿原始传感器特征做规划?从信息论角度看,原始像素和点云是高冗余、低语义密度的信号;潜表示则反过来,是低冗余、高语义密度的信号。规划问题本质上是在一个环境中找一条路径,环境的“状态”是决定这条路径的全部信息。你把整张 1080p 图像送给规划器,其中大量信息跟路径选择无关,模型不光要学“怎么找路”,还要先学“哪些信息跟找路有关”,这等于在同一个模型里塞两个任务,互相抢容量。潜空间把第二个任务大部分做了——编码器已经把跟规划无关的细节剥离了。规划器获得的输入是“浓缩后的局面”,它只需要学“局面到动作”的映射,压力和复杂度都小得多。

这里还有个更底层的动力,我得提一下 LeCun 对世界模型的长期立场:自动驾驶要可靠,系统必须对世界如何演化有一个内部模型,而不是只对手头这一帧图像做出反应。通俗讲,人开车时会在大脑里“预演”接下来几秒——前车是不是要变道、斑马线旁的行人有没有迈步的迹象、绿灯还够不够我通过。机器要具备同等能力,传统做法是显式建模,生成清晰的未来画面;JEPA 路线主张的是隐式建模,模型内部形成一套对世界动态的抽象理解,但不以图像形式外化。这套思路放到驾驶上,就是 AD-E2E-JEPA:用一个预测器在潜空间里推演下一步状态,把这个推演结果作为规划的基础。它不是又一种“漂亮的端到端曲线拟合”,而是朝着“驾驶世界模型”这个方向扎扎实实走了一步。

搞清了这个背景,再来看 AD-E2E-JEPA 具体是怎么搭起来的,就容易多了。它的整体管线可以分成三段:观测编码、潜空间自回归预测、目标条件轨迹解码。

观测编码那一端,输入是多视角摄像头图像,可能再加上低成本传感器,比如 GPS 或惯性测量单元,这些输入先被送进一个编码器压成潜表示。编码器的结构我印象中是以视觉 Transformer 风格为主干,前几层做 patch embedding,把图像切块并映射成 token,后面堆叠若干层 Transformer block 做空间注意力和局部语义提取。这里的潜输出不只是一个全局向量,而是一个带空间结构的特征序列——保留“哪里发生了什么”的结构,丢掉“每个像素精确长什么样”的细节。在一些更偏 BEV 的管线里,作者可能会把多视角特征通过几何投影统一到鸟瞰坐标系再编码,论文不同的实验配置差异比较大,这篇文章的一大创新点不在编码器本身,而在它后面那部分——潜空间预测器。

预测器的职责是:给定当前的潜状态和已经观测到的历史潜状态,预测未来若干步的潜状态。它就像一个“在抽象世界里做视频预测”的模型,只不过预测的东西是语义化的状态表示,而不是像素。执行预测时,模型通常按自回归方式跑:先用当前潜特征推测下一帧潜特征,再把下一帧潜特征当作输入,推测再下一帧,如此迭代,得到一条完整的潜状态轨迹。这样设计的妙处在于,规划器手里拿到的不是单一快照,而是一个“推移后的环境视图”——它能看出事情往哪个方向演变,就像你有了一台能看穿两三秒未来的望远镜。训练这个预测器的方式,从 JEPA 家族的惯例看,应该是在大量驾驶数据上做自监督学习,损失函数会涉及预测目标与真实潜状态之间的对齐,而不是像素重建,这样天然避开了生成模糊低纹理图像的痛点。

目标条件注入是全文我觉得最有意思的设计点。目标不再是一个 one-hot 任务标签,比如“任务 1 是右转,任务 2 是直行”,目标本身会被编码成一个表示向量,然后以某种方式和观测潜状态融合,指引预测器或解码器“往哪个方向走”。目标表示可以来自自然语言描述,比如“在下一个路口右转”“保持车道”“靠边停车”,经过一个文本编码器变成向量;也可以是结构化目标向量,比如目标点坐标、目标速度、目标车道 ID 的嵌入。融合的位置通常不止一处——在预测阶段注入,模型推演的就是“朝向这个目标的未来潜状态”;在解码阶段再注入一次,确保轨迹终点往目标靠拢。

最后是规划头。规划头接收潜状态序列和目标表示,输出一条轨迹,形式上通常是一串航向点,包括位置、朝向、速度建议,间隔大约 0.1 到 0.5 秒一个点,整条轨迹覆盖 3 到 8 秒的时域。这个规划头可能是轻量级的 MLP 或 Transformer 解码器,输出的航向点后续可以交给一个低层控制器,或者直接给规划模块做碰撞检查和舒适性平滑。论文的落点是在潜空间把规划问题解决掉,至于这个轨迹是对齐到运动学约束还是直接可执行,取决于下游控制器的习惯。

如果要用一句话概括这个流程:传感器画面被压缩成浓缩的“局面”,模型在这个局面上推演“局面怎么演变”,目标被翻译成“局面演变的引导信号”,最后从这个推演结果里抽出轨迹。整个过程没有一步在操作像素,也没有一步要求模型显式画出未来场景,这就把规划问题从“画一幅画”变成“做一道抽象推理题”。

零样本是这个系统最需要被验证、也最能说明设计理念的能力。按常规论文的思路,“零样本目标条件驾驶规划”的含义是:训练阶段模型见过一堆不同目标的驾驶示范,到了测试阶段,给定一个训练中没出现过的目标描述,模型可以不经过任何微调,直接规划出指向该目标的轨迹。

问题在于,凭什么?目标如果只是标签,零样本确实无从谈起——标签之间没有结构,模型没见过“右转”就不可能输出右转轨迹。但 JEPA 系的处理方式让目标有了结构:目标被编码成连续向量,在潜空间里,“右转”“左转”“掉头”这些目标就分布在特定的区域,彼此相邻或相对,模型学的其实是“从任意当前状态到任意目标状态”的一种转移能力。打个比方,目标不是外卖单上的菜品名,而是地图上的经纬度坐标;模型学的是“从 A 点导航到 B 点”的能力,而不是背熟“从家到公司怎么走”。当测试时给出一个新目标经纬度,虽然没被点过名,但导航能力依然适用。

我把这种零样本拆分成了三个层次,方便理解论文的贡献边界。第一层是目标零样本,也就是上面说的,目标描述没出现过也能执行,论文的核心贡献集中在这一层。第二层是场景零样本:训练时没见过某种道路结构、某种天气、某种交通流,测试时直接面对,这个更多考验数据的多样性和模型的泛化能力,JEPA 的潜空间抽象在这里也有帮助,但不是论文主打。第三层是控制条件零样本,比如换一辆动力学不同的车,模型规划出的轨迹还能不能开,这涉及车的运动学差异,通常得靠轨迹后处理或适配模块兜底。看一篇论文时把这些层次分清楚,就不会对它有过高或过低期待。

我再展开讲讲训练阶段是怎么构建这个“转移能力”的。以我对 JEPA 系训练策略的理解,他们会设计目标采样器:训练时每段轨迹都随机配一个目标,可能是从预训练文本里抽一句指令,也可能是从一个目标库中随机抽一个目的地。模型被要求在这个随机目标条件下预测潜状态、输出轨迹。由于目标每次都在变,模型没法走捷径背答案,只能学会一条通用策略:理解观测、想象演化、朝向目标。这个训练方式等于在不断制造“新的组合”,迫使模型在潜空间里学到目标与动作之间的连续映射,而不是离散的查表关系。查表当然无法零样本,连续映射才可以。

有一部分人可能会担心,潜空间预测丢失细节会不会撞车?这里需要澄清:潜空间丢掉的是对规划无关的像素细节,不是对规划有关的安全信息。行人的位置、前车的相对速度、车道线的几何关系,这些恰恰是高语义密度的信息,编码器会尽全力保留。你在潜空间里“看到”的是一幅高压缩的“局面图”,但图上每个关键对象的位置和运动分量都在。更直接地说,碰撞通常不是“画面模糊”导致的,而是“对情境的理解偏差”导致的;潜空间预测要优化的正是后者——对局面演变的理解。至于那些需要极高精度的安全阀值判断,比如距离前车 0.5 米和 0.4 米的差别,规划器输出的轨迹还要经过下游碰撞检查和安全过滤才能真正执行,不会裸奔上路的。这就像你做高德导航时导航不会帮你踩刹车,但会告诉你“前方 300 米有岔路口,请走最右侧车道”——导航做的是语义级判断,刹车是执行层的活。

整个自动驾驶规划领域过去几年的路线之争,放在今天来看特别有意思。模块化流水线是老一辈的做法,它的痛点我前面说了,模块间误差滚雪球;它的优点也可爱,每个环节单独可验证、可调试,出问题能精确甩锅,工程上配合起来相对顺滑。端到端大模型是新一代明星,UniAD、VAD 是代表性玩法。UniAD 把感知、预测、规划串在一个神经网络里,用查询机制统一传递信息,效果惊人,但训练复杂、显存占用大;VAD 的聪明之处在于把场景表示为矢量化的结构化元素,不再用稠密 BEV,直接在向量层面做预测和规划,跑得更快。AD-E2E-JEPA 站的赛道跟它们都不一样:它不是一个“更多模块统一进一个网络”的路线,而是一个“改变系统内部表达空间”的路线——既不是像素,也不是 BEV 栅格,甚至不是显式矢量,而是一个任务导向的潜表示。

我试着做一个简单对照,方便大家脑内建档:

方案内部表示预测方式训练方式主要痛点
模块化流水线显式目标列表逐目标轨迹预测各模块独立监督误差累积,信息损失
UniAD多组查询嵌入联合预测感知/预测/规划端到端多任务工程复杂,计算开销大
VAD矢量场景元素元素级运动预测端到端+辅助损失依赖矢量提取质量
AD-E2E-JEPA压缩潜空间状态潜状态自回归推演自监督+目标条件规划安全验证尚需积累

这个对照表揭示了论文的增量价值至少有两处。第一处,它首次把“非生成式潜空间世界模型”这个范式搬到了目标条件驾驶规划上。之前 JEPA 更多活跃在图像、视频这些感知任务里,谁也没在决策规划层验证过这套哲学。论文等于是给行业内人投了一颗信号弹:潜空间不只是用来做表征学习的,它可以承担决策推理。第二处,它把零样本能力放到了聚光灯下。自动驾驶行业的长期痛点恰恰是 corner case——训练数据覆盖不到的场景,零样本目标条件意味着模型拥有把“见过的行为组件”组合成“没见过的完整行为”的能力,这是应对长尾的一条潜在路径。

必须承认的是,这篇工作离量产还有距离。最明显的瓶颈在闭环验证和安全性证明。论文展示的评估更多会集中在对目标完成率、轨迹合理性等指标上,但真实道路上还有交互博弈、社会习惯、极端天气这些问题,潜空间模型是否会在未见过的局面下输出一个“自信但错误”的轨迹,是需要大量闭环仿真和路测来回答的。此外,潜空间的维度设计和预测步长也会影响性能下限:维度太小,关键信息被压没了;太大,又可能退化成近似的原始特征,失去抽象优势。这些都是工程落地时要反复调参的点。

我一般不写那种“照着抄就能复现”的教程,因为论文本身提供的代码和实验细节有限,我也没有拿到源码去逐行验证。但我可以凭经验聊聊,如果我想在自己的项目里借鉴这套思路,会在哪几个地方特别小心。

第一个地方是训练数据的目标多样性。零样本的前提是训练时见过足够多样的目标-轨迹组合,如果目标库太小,模型很容易退化成隐式的“查表+插值”。我倾向于在数据采集阶段就刻意设计目标指令集,让它覆盖常见变道、转弯、靠边、让行、停车等操作,同时组合出一些不常见但结构合理的指令。目标的空间分布有没有铺满潜空间,比目标的数量多不多更重要。想象一下,仓里的样本如果只覆盖了潜空间的一半区域,测试时给一个新目标落在另一半区域,模型的表现基本只能靠赌了。

第二个地方是潜空间预测与轨迹解码的衔接。很多复现案例死在这一环:预测头输出了一堆漂亮的潜特征,但轨迹头不知道怎么把它翻译成可用航向点。我的建议是,在轨迹头之前加一个显式的“目标对齐”步骤,把预测出的最后一步潜状态和目标表示对齐,让解码器明确知道自己要往哪个收敛目标走,而不是自己脑补一个终点。这个小改动对轨迹终点的稳定性帮助很大,尤其是在目标点离当前点较远的时候。

第三个地方是训练损失的配比。如果既做自监督潜状态预测,又做目标条件轨迹监督,两种损失天然存在竞争:潜状态预测希望表征尽量通用、覆盖所有变化,轨迹监督希望表征尽量聚焦驾驶任务、剔除无关信息。我会尝试分阶段训练,先让编码器和预测器在自监督目标上学到通用的局面动态,再冻结它们,单独训练轨迹头;如果想端到端联合调优,就得把损失权重调得很小心,让潜空间不上不下刚刚好。

第四个地方是评估指标的选取。论文如果主要报开环指标,比如位移误差,那只能说明“模型预测的轨迹接近人类轨迹”,不能说明“模型能在闭环里安全到达目标”。我会额外关注它在闭环仿真中的表现:目标完成率、碰撞率、车道保持违规次数,这几个才算硬指标。我自己的经验是,零样本能力最直观的可视化测试是同时给出多个新目标,比如“前方 100 米靠边停车”和“下个路口左转后停到第二车道”,看模型是否在轨迹中体现出真正的行为分支,而不只是速度或终点的细微区别。

顺着这个工作往下想,后续可玩的空间其实很大。最顺理成章的扩展是接语言模型。现在目标编码已经是一个向量,而语言模型的文本嵌入天然优质,完全可以直接把自然语言指令作为目标输入,让“前方事故、减速并道”这类高维语义指令直接进规划潜空间,形成一套从语言到轨迹的直通车。这比目前业界常见的“语义命令触发规则”要灵活得多。另一个方向是跟强化学习结合。潜空间世界模型本身就是很好的 RL 环境模拟器,你可以在潜空间里跑轨迹搜索、做蒙特卡洛树搜索,用零样本策略作为初始先验,再用一小部分数据做安全微调。相比之下,传统轨迹采样器只能在显式状态空间里穷举,效率和优雅程度都不在一个档次。

最后说个实在的感触。这几年见了太多“靠堆数据和堆算力硬怼出来”的驾驶模型,谁都知道那不是通往强智能的路。AD-E2E-JEPA 这篇工作给我的感觉是,它想回答的其实是“驾驶这件事到底需要模型理解什么”——是理解每一帧画面里有哪些物体,还是理解这个局面在如何演变、以及怎么到达我指定的地方?答案是后者。像素里大部分信息不值得理解,值得理解的是那些能指导决策的抽象动态。这个思路,如果你也做过一段时间的驾驶感知或规划,多半会有共鸣:真正让你在陌生路口做出正确判断的,从来不是你记住了这条路的每一个细节,而是你理解了方向、路权、车流动态这些更抽象、更本质的东西。JEPA 路线想给机器装的,恰好就是这种在抽象层面理解世界的能力。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询