Jim Fan:大模型有的,机器人都要有。开卷上下文长度!
统计 阅读时间大约10分钟以上(5639字)

2026-07-16 Jim Fan:大模型有的,机器人都要有。开卷上下文长度!

来源:豆包
出品:具身纪元这两年,机器人领域有一个词出现得越来越频繁:上下文学习,in-contextlearning。大语言模型把这件事演示得很直观。你不改模型参数,只在...

出品:具身纪元

这两年,机器人领域有一个词出现得越来越频繁:上下文学习,in-context learning。

大语言模型把这件事演示得很直观。你不改模型参数,只在输入里放几个例子,它就能从例子里猜出任务规则,接着完成一个训练时未必见过的具体任务。例子换了,模型当场表现出来的能力也会变。

机器人研究者当然想要同样的东西。

如果每教机器人一个新任务,都要重新采几百条遥操作数据,再训练几个小时甚至几天,机器人很难真正进入家庭和工厂。更理想的交互方式是:你演示一遍,或者告诉它更多关于任务的信息,它就在当前这次运行里学会怎么做。

过去一年,已经有不少工作在往这个方向走。只是大家口中的上下文,指的并不总是同一件事。

有的工作在增加上下文的丰富程度:除了语言,还把视频示范、目标图像、机器人身体信息、动作质量、速度等不同维度的信息一起交给模型。模型因此更容易理解,你到底希望它做什么、怎么做、做到什么程度。比如 ORION、VIMA、MUTEX、Behavior Prompting Policy、DreamDojo、π0.7等等。

还有一条路线在增加上下文的时间长度:让机器人记住几秒、几分钟乃至更久以前发生的事情,并把过去的成功、失败和修正用于当前动作。比如locoFormer。

前一条路线解决的是上下文里有什么,后一条路线解决的是上下文能延伸多远。

f441f4df0d2b8b1adb56b8dabbf60b97.png

上下文扩展的两个方向

7 月 15 日,Jim Fan、Yuke Zhu、李飞飞等人发布的 RoboTTT,正好把第二条路线往前推了一大步。它把机器人策略的上下文扩展到 8,000 个时间步,大约五分钟,比常见机器人策略长三个数量级,同时声称推理延迟不会随着上下文继续增长。

ce6a3a06ef3df99f76eb4a3297fe0633.jpg

RoboTTT 将机器人策略上下文扩展到 8K 时间步

这篇工作最值得看的地方,是它第一次在真实机器人上画出了一条很像大语言模型的上下文扩展曲线:预训练时使用的上下文从 128 步增加到 8,000 步,闭环任务表现一路上升,暂时没有看到饱和。

机器人模型也开始从模型有多大、数据有多少,走向上下文有多长。

先把机器人领域的 in-context learning 说清楚

机器人里的上下文学习,可以从一个简单问题开始理解:模型在做当前动作之前,临时拿到了哪些额外线索?

如果严格沿用大语言模型的定义,只有模型在推理阶段根据上下文示例改变当前行为,又没有更新常规模型参数,才算典型 ICL。机器人论文里的用法通常更宽:多模态任务条件、短期动作历史、从失败中在线适应,有时都会被放进同一张图谱。下面提到的工作并非都在解决同一个数学问题,它们都在探索如何让当前上下文临时改变机器人行为。

传统机器人策略拿到的线索很少。通常是一句任务指令、一张当前画面、当前关节状态。它根据这一刻的信息预测下一段动作。至于十秒前拿过什么、刚才失败在哪里、用户之前怎么演示的,它可能都不知道。

于是,研究者开始沿着不同方向给 prompt 加东西。

Yuke Zhu 参与的 ORION 是一个很直观的例子。用户用手机拍一段人类操作视频,系统从视频中提取物体、接触关系和运动轨迹,构建开放世界物体图,再让机器人根据这份计划操作新物体。机器人从单个视频里获得了语言很难说清的空间关系、动作顺序和操作意图,并在不同背景、机位、布局和新物体上执行。论文报告的真实世界平均成功率为 74.4%。

5f6cf92103b966e7e541833e0a920193.png

Orion

这类方法把人类视频变成了任务提示。更早的 VIMA、MUTEX,以及最近的 Behavior Prompting Policy,也都在扩展机器人能读懂的 prompt 形式:文本、图像、视频、物体框、轨迹,都可以成为临时指定任务的方式。

e9744e741a03fc34642b119fa973d83e.jpg

Behavior Prompting Policy

Yuke Zhu 和 Jim Fan 团队今年发布的 DreamDojo 又往前走了一层。它从 44,000 小时人类第一视角视频中学习物理变化和潜在动作,让人类视频成为机器人世界模型的预训练材料。严格来说,这部分属于视频预训练,和测试时把一段视频放进上下文仍有区别;但它解决了一个前提问题:模型得先能读懂视频里的物理经验,测试时的视频提示才可能真正有用。

d4559e546807486c5c7824b5557df19e.png

DreamDojo

π0.7 则把上下文丰富度推得更系统。

Physical Intelligence 给 π0.7 的 prompt 放入四类信息:从总任务到当前子任务的语言描述、世界模型生成的视觉子目标、episode 的速度和质量及犯错标签、关节空间或末端执行器等控制模态。相同动作数据有了这些标签,模型就能知道这段示范做得快不快、好不好、有没有失误,也能知道目标画面应该长什么样。

fdc932ddbdd8bb74d1f77a602a3fb920.png

π0.7

这套做法被称为 diverse context conditioning。它的作用很像给混杂数据补齐说明书。人类视频、不同机器人数据、自主运行轨迹和失败样本原本容易互相干扰,有了足够清楚的上下文,模型可以区分哪些经验该模仿、哪些经验只适合参考。

这些工作共同扩展了上下文的宽度。语言之外,视频告诉模型动作过程,目标图像告诉模型预期结果,元数据告诉模型示范质量,身体和控制标签告诉模型自己在用什么硬件。

但机器人还面对另一个问题:它能记多久?

你让机器人组装一个十个步骤的玩具。进行到第八步时,它是否记得第二步装了哪块零件?一个部件刚刚掉在桌上,它是否知道那是自己前一分钟掉的,需要先捡回来?你先演示一遍完整任务,等它真正开始执行时,那段示范还留在可用的上下文里吗?

上下文再丰富,窗口只有几帧,这些能力依然出不来。

从 Transformer-XL 到机器人的 18 秒记忆

长上下文首先在语言模型里成为一个明确的架构问题。

标准 Transformer 把序列放进一个固定窗口,用注意力让每个 token 读取窗口内的其他 token。窗口拉长之后,注意力和 KV cache 的计算、显存成本也会增加。早期模型通常把长文本切成互相独立的片段,片段之外的信息直接丢失。

2019 年的 Transformer-XL 提出分段递归。模型处理完上一段序列后,把中间隐藏状态缓存下来;处理下一段时,当前 token 可以读取上一段留下的状态。配合相对位置编码,信息得以跨越片段边界继续传递。缓存下来的状态停止梯度更新,训练成本也更容易控制。

Skild AI 的 LocoFormer 把 Transformer-XL 用到了机器人运动控制上。

3c76c6aef66bdec0e401c5bf3b6c6a5a.png

LocoFormer用到的Transformer-XL

LocoFormer 在十万种仿真机器人上训练同一个运动策略,覆盖双足、四足、轮足和不同身体参数。机器人运行时,会根据最近一段时间的视觉、本体状态、动作和结果,在线推断自己当前控制的是怎样一副身体。膝关节被锁住、轮子突然失效、身体尺寸发生变化,它会从前几次失败里逐渐调整动作。

在 50Hz 控制频率下,LocoFormer 的有效历史最长达到约 18 秒。长记忆和高度多样的跨本体预训练一起,让模型出现了类似 ICL 的快速适应:有些机器人前几次站立失败,到第三四次尝试时已经能稳定移动。

LocoFormer 同时展示了 Transformer-XL 路线的特点。它把历史保留为一段隐藏状态缓存,记忆长度仍然受缓存规模和注意力成本约束。18 秒对行走适应已经很有用,放到五分钟的装配任务里依旧太短。

这就引出了 RoboTTT 想解决的问题:有没有一种序列模型,可以不断接收历史,又不用把越来越长的历史逐帧存下来?

RoboTTT:把五分钟经历写进一组权重

TTT,全称Test-Time Training,发表于2024年。它是一种长上下文序列建模的方式,不再把RNN的隐藏状态设计成一个固定向量,而是把隐藏状态本身变成一个可以在推理过程中持续学习的小模型。这样就比普通RNN更适合做记忆。

d7da203d934229b7f9e88c57954896df.png

原始的TTT论文

RoboTTT借鉴了LLM里的TTT,它把TTT当作沿时间维度的序列建模机制,塞进机器人基础模型里。团队以 GR00T N1.7 为基础。视觉语言模型负责把多视角图像和语言编码成特征,动作专家是一个 16 层 Diffusion Transformer,负责用 flow matching 生成连续动作。RoboTTT 在动作专家的注意力模块后,插入了一个很小的两层 MLP。

94409abcc19c2621148f108cf728d40b.png

RoboTTT 的模型架构:TTT 层加在注意力层之后,注意力处理单帧内信息,TTT 层跨时间步压缩历史

这个小 MLP 的参数就是模型的隐藏状态,也叫 fast weights。

每来一个新的传感器 token,系统先把它投影成 key 和 value,让小 MLP 做一道自监督题:给定 key,预测对应的 value。预测有误差,就对这个小模型执行一步梯度下降。更新后的 fast weights 随后参与当前动作的计算,再被带到下一个时间步。

88ef976435c22ea660aabec29479e3b4.png

fast weights

整个过程可以概括成两步:先更新,再应用。

普通注意力像把过去每一页记录都放进桌面上的文件夹,需要时回头查。TTT 更像一位边工作边改笔记的老师傅。他不保存每张现场照片,而是不断把刚发生的事情压缩成自己脑子里那套判断参数。

fast weights 的尺寸固定,所以历史从 1,000 步增加到 8,000 步时,隐状态不会跟着变大。RoboTTT 因此能够把推理成本维持在近似恒定水平。论文讨论的恒定成本指的是相对于上下文长度的增量成本,并不表示 TTT 本身没有计算开销:每个时间步仍要多做一次小模型的梯度更新。

为了避免新插入的 TTT 模块破坏 GR00T 原来学会的能力,团队还加了一个接近零初始化的 tanh gate。刚开始训练时,TTT 分支几乎没有声音;只有当它确实能帮助动作预测时,门才逐渐打开。

他们还加入 16 个 register tokens,把视觉语言信息以较紧凑的形式传给 TTT 层,避免完整视觉语言特征在时间维度上反复流动。消融实验里,去掉 register tokens 会带来明显性能下降。

6a78790bf5146e86284f914c95f866bd.png

TTT层

让模型在训练时就学会使用长历史

有一个很重要的细节:把 TTT 层塞进机器人策略,并不会自动产生有用的长记忆。

模型必须在训练阶段就看到长序列,学会把哪些信息写入 fast weights,也学会在未来什么时候把这些信息取出来。RoboTTT 同时训练普通的慢权重、TTT 的投影参数和 fast weights 的初始值。初始值通过类似 MAML 的元学习方式获得,让后续每一步梯度更新更容易形成有用记忆。

8,000 步序列直接反向传播,显存很快就会撑爆。团队采用 truncated backpropagation through time,把长轨迹切成较短片段。片段之间继续传递 fast weights,让前面的经历仍能影响后面的动作;梯度则在边界处截断,训练显存由片段长度决定,不再由完整历史长度决定。

19d85be7c265d67788d0a72d7b061676.png

TBPTT

另一个训练技巧叫 sequence action forcing。

RoboTTT 的动作头用 flow matching 训练。研究者发现,如果整段序列共享同一个噪声水平,有的序列会整体过于简单,有的会整体过难,长序列训练很不稳定。于是他们让每个 action chunk 独立采样噪声。这个听上去不起眼的改动,在关键任务的消融实验中带来了约 27% 的相对性能差距。

RoboTTT 把哪些时间步只作为上下文、哪些时间步提供监督目标,统一成了一个 loss mask 问题。

一段人类演示视频放在机器人轨迹之前。演示帧不计算动作模仿损失,但仍然持续更新 fast weights;接下来的机器人轨迹才计算动作损失。久而久之,模型学会从前面的视频中提取目标配置,再据此执行动作。

0a2d95408e34e5cd301c3e40f5a24636.png

sequence action forcing

同一个机制也能用来学习纠错。

团队使用 DAgger风格的数据,让机器人自己的失败动作作为上下文,只在人类接管后的正确动作上计算损失。模型看到的因果结构因此非常明确:前面发生了怎样的失败,后面应该如何修正。论文把它称为 DAgger Distillation,类似于把人类纠错过程蒸馏成模型内部的一小段适应算法。

043220b499ddad102cf76817d604425d.png

DAgger Distillation

到了测试阶段,不再需要人类实时接管。机器人一旦自己完成某次修正,这段失败和修正也会继续写进 fast weights,影响后面的动作。

它因此多出了三种能力

RoboTTT 在 YAM 双臂平台上测试了三类长程精细装配任务:Pup Go Car、Circuit Board 和 Gear Bot。每个任务包含约 5 到 8 小时真实机器人数据,使用四个相机观察,任务长度从一两分钟到五分钟。

第一种能力,是从一段人类视频里一次学会新的目标配置。

Circuit Board 测试中,所有任务收到的语言指令都一样:assemble circuit。具体该拿哪些元件、按什么顺序安装,只出现在开头那段人类视频中。测试配置没有在训练中出现过。论文在正文中给出的代表性对照是,RoboTTT 在 10 次测试中成功 6 次,Gated DeltaNet 记忆基线一次也没有成功。

427b1cde799681bcebb6bab7fcf8ee94.jpg

一段人类视频指定新的电路板装配配置

这项结果把前面两条 ICL 路线接在了一起。视频增加了上下文的信息密度,8K 长记忆保证整段示范不会在真正执行时被忘掉。只有视频读得懂但记不住,或者记得足够久但无法从视频中提取任务,one-shot imitation 都做不出来。

第二种能力,是在一次运行中自己改进。

机器人可能把车顶装歪,也可能让轮子掉下来。RoboTTT 会根据当前失败回到相关步骤,修正后继续完成任务。使用 DAgger Distillation 后,论文报告它比未针对在线改进训练的同模型高 36%;对照训练方法的提升只有约 9% 到 13%。

5c38c185829b1ad3aef1a4a95aab0bfc.jpg

RoboTTT 从自己刚刚发生的错误中恢复

第三种能力,是应对任务中途的外部扰动。

研究者会在机器人装好零件后,人为把零件拆掉或移动。短历史策略只看当前画面,很难知道这个零件原本已经装好;RoboTTT 可以利用此前的完整轨迹返回对应步骤。不同扰动测试里,它的恢复成功率达到 65% 到 83%,对比基线为 10% 到 53%。

2df3c515677449d2a0b8b4990b6b60f4.jpg

人类中途拆掉零件后,RoboTTT 返回并重新安装

最重要的实验,是那条上下文扩展曲线

从研究价值看,更重要的是不同上下文长度之间的对照。

团队用 128、256、512、1,000 直到 8,000 步的上下文分别预训练模型,再在相同长度的闭环任务里评估。RoboTTT 的平均完成分数随预训练上下文增加而稳定上升。8K 模型约为 71.5%,1K 模型约为 43.9%,相对提升 62%。到 8K 时曲线仍未出现明显平台期。

5498911f64c87ee9bbee004ef8bb6a55.png

上下文扩展曲线

作为对照,拥有固定大小递归状态的 Gated DeltaNet 并没有随着预训练上下文增加表现出同样趋势。这一点很关键。它说明只给模型一个能传递状态的结构还不够,状态是否足够有表达力、训练是否真的迫使它利用长历史,都会决定上下文扩展有没有效果。

最终的三任务平均得分中,RoboTTT-8K 约为 79%,单步 GR00T N1.7 约为 42%,相对提升 87%;Gated DeltaNet 约为 56%。在最难的五分钟、十阶段 Gear Bot 装配里,RoboTTT 有 2 次完整成功,所有基线都没有完整做完。

a09be67ea6b3154a9356663ebf288d9f.png

成功率结果

这很像大语言模型早期扩展 context window 时出现的现象。长上下文一开始看起来只是工程指标,窗口真正拉长之后,文档问答、代码库理解、长程 agent 等能力才逐渐成为可用产品。机器人也可能沿着类似路径发展:模型开始记得整次任务、整段示范、多个失败与修正,新的交互方式才有机会出现。

不过,8K 到 1M 中间还有很长的路。

这篇论文还没有证明什么

第一,固定大小的 fast weights 会压缩历史,也一定会丢失信息。

RoboTTT 证明了这组权重在当前三类装配任务上能保存足够有用的历史,但还没有证明它能精确回忆任意一个很久以前的细节。上下文拉到几十分钟、几天之后,新经验是否覆盖旧经验,错误信息是否会污染 fast weights,都需要新的评测。

第二,推理成本恒定,不等于总成本低。

TTT 每个时间步都要在小 MLP 内执行梯度计算和参数更新。它避免了成本随上下文长度继续增长,却比完全不更新的小模型多了一段固定开销。论文当前关注真实机器人可行性,还缺少更完整的吞吐、功耗和不同硬件延迟对比。

第三,实验范围依然集中。

三个任务都在同一套 YAM 双臂硬件上,场景主要是桌面装配,训练数据也由特定任务采集。它是否能跨本体迁移,是否能在移动操作、开放家庭环境、触觉密集任务里维持同样的上下文曲线,目前没有答案。

第四,五分钟任务的完整成功次数还不高。

Gear Bot 的完整成功是 2/10。这足以证明短上下文基线做不到的事情已经发生,也提醒我们,长记忆只是长程任务的一块拼图。感知错误、精细控制误差、动作规划和硬件可靠性仍会让整条任务链断掉。

第五,上下文利用需要更强的诊断实验。

论文用不同预训练长度和能力任务证明长上下文有帮助,但还可以继续追问:把远端历史打乱、替换或删除之后,模型具体依赖了哪些片段?fast weights 里存下的是任务阶段、物体状态、失败模式,还是某种更模糊的运动偏置?回答这些问题,才能更清楚地知道机器人记住了什么。

上下文会成为机器人模型的第三条扩展轴

过去谈机器人基础模型扩展,大家主要看两个东西:参数量和数据量。

RoboTTT 提出了第三条值得认真跟踪的轴:上下文长度。

这条轴还应该和上下文丰富度放在一起看。ORION 让单段人类视频成为任务说明,DreamDojo 用海量视频教模型理解物理变化,π0.7 用语言、视觉子目标和元数据消解异构数据里的歧义,LocoFormer 用 Transformer-XL 让机器人从十几秒的尝试中适应新身体。RoboTTT 进一步让一整段视频、几分钟操作历史、连续的失败与修正留在同一个可学习上下文里。

未来的机器人 prompt 很可能是一段持续展开的经历。它里面有用户刚刚演示的视频,有当前任务和子目标,有机器人过去几分钟碰过什么、装过什么、错在哪里,也有它自己刚刚找到的修正办法。

模型需要同时面对两个扩展方向:让每一刻的上下文更清楚,让跨越时间的上下文更长。

e04d87e5b35f87931f53ac44f632d472.png

两个扩展方向

Jim Fan 在发布时写道,机器人策略过去一次只活在几帧画面里,刚发生的事情转眼就忘了。RoboTTT 让这段记忆来到五分钟。五分钟还谈不上终身学习,却足以让机器人第一次把一次完整任务当成一段连续经验来处理。

当机器人能把经历留在上下文里,示范、犯错和纠正才会真正成为它当下能力的一部分。

推荐阅读
{{item.author_display_name}}
{{item.author_display_name}}
{{item.author_user_occu}}
{{item.author_user_sign}}
×
右键可直接复制图片
×