机器人换了新环境就失灵?JEPA-TTT让世界模型边干边修
你有没有遇到过这种情况:开惯了一辆车,突然换一辆新车,方向盘转同样的角度,车子转弯的幅度却完全不一样,你下意识的操作全都"失准"了。这正是机器人世界模型面临的核心困境。一个经过训练的机器人,比如一只机械臂,学会了预测"如果我这样移动,接下来会发生什么"。这套预测能力是靠大量模拟训练出来的,机器人在训练环境里...
开惯了一辆车,突然换一辆,方向盘打同样的角度,车拐的弯却完全不一样。手上那些下意识的动作,一下子全不准了。
机器人世界模型碰到的麻烦,正是这个。
一只机械臂经过训练,能预测“我这么动,接下来会怎样”。这种本事靠大量模拟练出来:在训练环境里反复试错,力气用多大、摩擦有多强、关节怎么联动,慢慢摸清。可搬到新环境,哪怕只是关节响应速度变了,或者物体摩擦系数不同,预测就乱了套。机器人还拿旧世界的规则去猜新世界,猜错,动作也跟着错。
本田研究所和约翰斯·霍普金斯大学的研究者盯上了这件事。他们提出一套叫JEPA-TTT的方法,想让机器人在真正干活时边做边学,把内部那个“世界预测器”悄悄修正过来。
世界模型到底是什么
要读懂这篇论文,先得弄明白“世界模型”指什么。
世界模型*:机器人或智能体内部的一套预测系统,用来猜“如果我做某个动作,世界下一步会变成什么样”。有了它,机器人才能在动手之前先在脑子里预演几种方案,挑出最好的再执行。
好比出门前在脑中过一遍路线:这条路堵不堵,那条路会不会更快。世界模型干的是同一件事,只不过它预演的不是堵车,而是“推这个方块会滑到哪”“转这个关节手臂会摆到什么角度”。
论文采用的世界模型叫JEPA。
JEPA*:全称Joint-Embedding Predictive Architecture(联合嵌入预测架构)。它的建模方式不必还原完整画面,只预测“压缩后的状态表示”。
这里有个关键设计选择。传统世界模型往往要“生成”画面,比如预测下一帧视频长什么样,模型里就得配一个解码器,把压缩的内部状态还原成图像。JEPA不走这条路,只在抽象的特征空间里做预测,不管画面具体长什么样,只管场景的“本质状态”接下来怎么变。
省掉解码器,计算量就小很多。论文特意强调了这点:他们要做的测试阶段实时学习,计算资源有限,又慢又贵的生成式模型用不起。
JEPA世界模型内部长什么样?它有两个关键部件。一个叫
打个比方,三个部件分工,像一个团队合作导航:编码器是“翻译官”,把眼前路况翻成简洁的坐标信息;预测器是“推算员”,根据你打算怎么打方向盘,推算车子接下来开到哪;奖励头是“评分官”,看推算出的位置离目的地还有多远。三件事要是全揉进一个黑箱,就没法单独修正“推算员”犯的错,只能把整套系统推倒重来,代价太大。
JEPA-TTT这篇论文最核心的设计思路就在这里:只修“推算员”,不动“翻译官”和“评分官”。
为什么只调整预测器,而不是整个模型
研究者面前摆着一个选择:机器人进入新环境,该调整模型的哪一部分?
他们的答案是只动预测器,编码器和奖励头都冻住。
逻辑其实很直白。摄像头看到的画面“翻译”成状态向量,这件事跟物理规律变没变没关系——方块看起来还是那个方块,不会因为摩擦力变了就在图像上变样。奖励头负责判断“这个状态好不好”,这跟任务目标有关,而任务目标也没变:还是把方块推到指定位置,还是让机械臂碰到目标点。
真正跟物理规律绑定的只有预测器:给定一个动作,世界会怎么反应。需要跟着环境变化去调整的,就这一块。
测试时训练*:Test-Time Training,简称TTT。指模型在部署阶段(也就是实际使用阶段)利用遇到的真实数据,边用边学,持续更新自己的一条技术路线。
这里有个很值得琢磨的巧思:整个学习过程完全不需要知道“目标画面长什么样”,也不需要环境告诉它“这次动作得了多少分”。它靠的是最朴素的信号——机器人执行一个动作,然后观察到下一个真实画面。预测器把这个真实画面(经编码器处理后的状态)当作标准答案,对照自己之前的猜测,猜错就调参数。
这跟你学骑自行车很像。没人旁边喊“你骑得几分”,你也不用先知道终点线长什么样。你只感受到“我这样转车把,车子倒向了另一边”,下次换个角度再试。错误本身就是信号,不需要外部打分。JEPA-TTT要是非得等一个外部奖励信号才能学,现实中很多场景根本用不上它——真实世界里,哪有人实时给机器人打分。
密集回放:一个看似简单却至关重要的细节
论文里有个环节,我觉得最容易被忽略,实际影响却不小,叫密集回放。
密集回放(Dense Replay),说的是构造训练样本时,从每一个时间点都切出一个预测窗口,而不是只在动作块的边界处切。这样一来,能拿到的训练样本比传统方法多得多,这些样本会被存进一个不断增长的缓冲区,训练时再随机抽样来用。
要弄懂它,得先交代一个背景概念。
动作块:机器人每隔几个原始动作(论文里是5个)才拍一次照片,这几个动作被打包成一个“块”,跟拍到的照片对应起来,数据处理起来更高效。
按传统做法,样本只在每个动作块结束的边界处切一个。问题是,一个动作块内部明明还有好几个时间点,这些中间状态全被跳过了,信息白白浪费。密集回放则把每一个可能的时间偏移都当成独立的训练窗口切出来,样本数量相当于扩大了好几倍。
打个比方,拍延时摄影,每隔5分钟按一次快门,看到的轨迹是粗糙的;每隔1秒按一次,哪怕后期用不上所有照片,至少细节都留住了,想分析某个瞬间的变化,素材够用。一开始就按5分钟一张拍,后面想研究第3分钟发生了什么,素材根本不存在,这个损失补不回来。
为验证密集回放值不值,论文做了四组对照实验。第一组叫稀疏流,老老实实按动作块边界切样本,用一次就扔。第二组叫计算量匹配的稀疏流,样本数量不变,靠反复使用同一批样本把训练次数拉到跟密集方法一样多,专门检验“训练次数越多是否就越好”。第三组叫密集流,把所有密集窗口切出来,按时间顺序过一遍,每个只用一次。第四组才是真正的密集回放,把所有密集窗口存进缓冲区,训练时随机抽。
四组的最优分数均值分别是0.497、0.625、0.671和0.678。从第一组到第二组的提升,说明单纯多训练几次有用;从第二组到第三组,说明光重复旧样本不够,还得有更丰富的时间覆盖面;从第三组到第四组,提升幅度小了,但在“平均曲线下面积”这个指标上,密集回放以0.571对0.548明显胜出。样本存起来反复随机抽取,比看一遍就丢,学习过程确实更稳。
实验设计本身也讲究:把“多训练”“覆盖更多时间点”“重复利用样本”三件事拆开单独验证,不是笼统地说“我们的方法更好”,而是一步步量出每个环节各值多少。
持久记忆:学到的东西不会随着一局游戏结束就清零
另一个关键设计是,机器人学到的修正不会因为一局任务结束就被抹掉。
这跟不少强化学习场景的常规做法不一样。通常一个任务跑完一局,系统会重新初始化,下一局从头开始。JEPA-TTT反着来:预测器的参数、优化器的状态、存着历史数据的缓冲区,这三样全都原封不动带到下一局任务里。
论文专门做了对照实验来验证这件事有没有用。设置是两组都只用当前这一局任务内部的数据训练,区别只在于:一组把学到的东西延续到下一局,另一组每局结束就把预测器打回原始状态,重新开始。
结果相当惊人。持续学习的那组,最优分数均值是0.729,每局重置的那组只有0.289。差了整整0.44,几乎是三倍的差距。
这个结果其实好理解。每打完一局就把记忆清零,机器人每次面对新环境都得从零摸索一遍。就像每天上班都要重新适应一遍刚买的那辆车,方向盘的手感、油门的灵敏度全要重新摸,永远学不会。持久记忆则意味着,每一局积累的经验都在往前滚雪球,摸索一次就够了,之后越用越顺手。
这也从侧面回应了论文标题里“Persistent”(持久)这个词的分量。不是说这项技术有多复杂,而是它选了一种跟常规做法不同的记忆策略,而恰恰是这个策略,让适应效果真正落了地。
实验结果:八种物理规律的变化,全部都能适应
论文设计了四个连续控制任务的模拟环境:推方块任务PushT、双房间导航任务Two-Room、机械臂任务Reacher,还有立方体抓取任务OGB-Cube。每个任务设计两种动态变化,一共凑成八种考验场景。
具体改动方式挺杂的。有的把机器人给出的指令方向整个转上90度,有的只让方块碰到物体时的反应转90度;有的让旋转角度跟着房间位置走,搅出一片波浪似的扰动场;还有的让机械臂的动作晚一步才起作用,顺便把三个坐标轴上的指令彼此对调。
| 测试场景 | 冻结模型最优分数 | JEPA-TTT最优分数 | 提升幅度 |
|---|---|---|---|
| 推方块,指令旋转 | 0.080 | **0.490** | 513% |
| 推方块,接触旋转 | 0.127 | **0.619** | 388% |
| 双房间,波浪场 | 0.557 | **0.799** | 43% |
双房间网格场这一项,基线0.211,适应后到0.799,涨幅279%。
机械臂相位场从0.367升到0.758,提升107%。
机械臂谐波场由0.369变成0.688,涨了86%。
立方体二次交叉从0.257提到0.628,幅度144%。
立方体延迟循环则由0.172走到0.643,高出274%。
八个场景无一例外全部上涨,平均提升幅度153%。更关键的是,涨分背后的机制站得住脚:研究者单独测了预测器猜未来状态的误差,适应之后平均降了83%,双房间网格场这一项误差跌幅就有98.52%。换句话说,不是碰巧蒙对,是预测本身真的变准了。
论文还拿另外两条路线做了对照。一条是PPO-TTT,用强化学习策略在同样的500局交互里学,但它能直接看到环境给的真实奖励分数——这是JEPA-TTT没有的“特权”。另一条叫AdaJEPA,是同期另一项研究,同样边用边调JEPA世界模型,可它每局打完就把记忆清空,还得拿一张目标画面当参照。结果呢,对手多了这些信息优势,JEPA-TTT照样在全部八个场景、两个评价指标上全赢。
有个细节挺有意思:双房间波浪场里,PPO-TTT跑了三次独立实验,结果差得很远。一次机器人卡在第一个房间始终没出去,一次摸索了大约350局才找到门,还有一次50局以内就摸到了。靠奖励信号去探索,运气成分不轻;JEPA-TTT由预测误差驱动,稳定得多。
局限:这套方法目前还做不到什么
作者很坦诚,列了两条边界。
一是这篇论文只研究一次性、固定不变的动态偏移——测试全程物理规律变了就不再变回去,画面怎么看、任务目标是什么、动作接口长什么样,全都不动。要是视觉输入或任务目标本身也在变,目前没有对策,因为编码器和奖励头是被刻意冻住的。这是设计上的取舍,不是疏忽。
二是机器人如果连着经历好几次不同的动态变化,甚至中途又变回最初的训练环境,会怎样?论文没碰这个问题。参数一直更新下去,有没有可能让机器人“忘记”先前学过的东西——机器学习里管这叫灾难性遗忘——论文明确说这块没测过。
两条限制其实指向同一处:论文证明的是“单次适应”做得到,可“持续适应多种环境、还不丢旧本领”这件更难的事,还没有人验证过。
Q&A
Q1:JEPA-TTT是什么?
A:这是本田研究所和约翰斯·霍普金斯大学提出的一种方法。机器人在实际部署运行时,观察自己执行动作后发生的真实变化,据此不断修正内部的世界预测模型,从而适应训练阶段没见过的物理规律,全程不需要外部奖励信号,也不需要目标画面。
Q2:JEPA-TTT为什么只调整预测器,不调整整个模型?
A:视觉编码器管的是把画面压成状态表示,跟物理规律变不变没关系;奖励头管的是判断状态好坏,跟任务目标变不变有关。真正跟环境物理规律直接绑定的,只有负责猜“动作会导致什么结果”的预测器,所以只动它就够了。
Q3:密集回放对JEPA-TTT的效果提升有多大?
A:传统做法只在动作块边界切样本,密集回放不一样:每个时间点都切出训练样本,存进缓冲区再随机抽样训练,可用的训练信号因此多了不少。效果上,最优规划分数均值从0.497升到0.678,学习过程也更稳。