教机器人像 LLM 一样学习: 深入解析 RICL

想象一下,你正在使用像 GPT-4 这样的大型语言模型 (LLM) ,你想让它用一种非常具体的、虚构的方言写一首诗。你不需要为此重新训练整个神经网络。相反,你只需在提示词中提供几个这种方言的例子——即“上下文”——模型就会立即适应。这种能力被称为上下文学习 (In-Context Learning, ICL)

现在,想象你有一个通用机器人。你想让它执行一项新任务,比如捡起它从未见过的特定工具并将其放入托盘中。对于当前最先进的机器人模型,你不能简单地向机器人“展示”几个例子就指望它能工作。通常,你需要收集数据集并使用梯度下降来微调模型的参数——这是一个缓慢且计算成本高昂的过程。

为什么会存在这种差距?为什么语言模型可以即时适应,而机器人“视觉-语言-动作” (Vision-Language-Action, VLA) 模型却依然僵化?

这就是论文 “RICL: Adding In-Context Adaptability to Pre-Trained Vision-Language-Action Models” 所解决的核心问题。研究人员提出了一种新颖的方法,可以在*事后 (post hoc) *向预训练的机器人策略中注入上下文学习能力。其结果是一个能够仅通过 10-20 次演示就能学习新操作任务的系统,且无需任何梯度更新。

在这篇文章中,我们将详细剖析 RICL (发音为“rickle”) 的工作原理、其背后的架构,以及为什么这可能是真正通用机器人的“缺失环节”。


背景: VLA 与缺失的能力

要理解 RICL,我们首先需要了解它所改进的基线: 视觉-语言-动作 (VLA) 模型。

什么是 VLA?

VLA 是多模态 LLM 在机器人领域的等价物。它接收图像 (视觉) 和指令 (语言) 作为输入,并输出机器人指令 (动作) 。本文使用的具体基础模型是 \(\pi_0\)-FAST 。 该模型通过模仿学习 (Imitation Learning) 进行训练——它观看数百万帧机器人执行任务的画面,并尝试模仿与这些视觉状态相关的动作。

问题所在: 模仿 vs. 下一词元预测

LLM 之所以自然发展出上下文学习 (ICL) 特性,是因为它们是在海量网络文本上经过训练来预测“下一个词元 (token) ”的。网络文档的结构通常包含例子后跟答案,这隐式地教会了模型查看上下文窗口来解决当前问题。

然而,VLA 被训练为将当前像素映射到当前动作。它们在训练期间通常不会在上下文窗口中看到其他任务的“历史记录”。因此,标准的 VLA 不会自然涌现出通过观察一组演示来理解新任务的能力。它们是僵化的。如果在训练中没有见过某种物体,它们通常无法与其进行有意义的交互。

解决方案: 机器人版的 RAG

作者建议通过借鉴 NLP 中的另一个概念来解决这个问题: 检索增强生成 (Retrieval-Augmented Generation, RAG) 。 在 RAG 中,系统从数据库中检索相关信息,并将其输入到模型的上下文中以帮助回答查询。

RICL 将这一概念应用于机器人技术。机器人不再检索文本,而是检索它试图执行的任务的视觉演示 (图像和动作) 。目标是创建一个“RICL-VLA”,它可以查看这些检索到的示例,并立即理解如何操作一个新物体。

RICL 方法论概览,展示了从预热到部署的流程。

如上图 Figure 7 所示,该流程包括采用一个标准的 VLA (\(\pi_0\)-FAST) ,对其进行“预热 (Priming) ”阶段 (RICL 训练) ,从而创建一个只需通过检索相关演示就能适应新任务的模型。


核心方法: 为上下文学习而重训练 (RICL)

这篇论文的核心在于将僵化的 VLA 转换为适应性 VLA 的方法论。这不是从头开始训练;而是一个后训练 (post-training) 配方。

1. 架构

RICL 架构建立在 \(\pi_0\)-FAST 模型之上。该系统被设计为处理包含以下内容的序列:

  1. 查询 (The Query) : 当前的实时观察 (来自顶部、侧面和手腕摄像头的图像,加上本体感觉状态) 和语言指令。
  2. 上下文 (检索到的数据) : 来自演示缓冲区的一组相似情况。

RICL-VLA 的架构,特别是 RICL-pi0-FAST 的架构。

Figure 2 展示了这一流程。在左侧,我们看到“检索缓冲区 (Retrieval Buffer) ”,其中包含录制的演示。当机器人正在行动 (\(t\) 时刻的“查询”) 时,系统使用俯视摄像头图像在这个缓冲区中搜索相似的图像。

检索是使用 DINOv2 执行的,这是一种强大的视觉编码器。系统嵌入当前视图并在嵌入空间中找到“最近邻 (Nearest Neighbors) ”。这些邻居——具体来说是它们的图像、状态以及在那些时刻采取的动作——被连同当前查询一起输入到 VLA 的上下文窗口中。

2. “预热 (Priming) ”阶段

你可能会问: “如果基础 VLA 不知道如何利用上下文,仅仅给它输入检索到的图像也没用,对吧?”

没错。这就是为什么作者引入了一个预热 (Priming) 阶段。他们获取预训练的 \(\pi_0\)-FAST 模型,并对其进行微调,专门让它关注上下文。

  • 冻结视觉部分: 图像编码器 (SigLIP) 保持冻结状态。
  • 激活 LLM: 语言模型组件进行微调。
  • 数据结构: 训练数据被组织成 {检索到的邻居 -> 查询} 的序列。

模型在一组通用的拾取和放置任务上进行训练。通过强迫模型在能够访问“检索到的邻居”的同时预测“查询”的动作,模型学会了一项元技能 (meta-skill) : 如何从上下文中提供的示例中进行复制和插值。

3. 动作插值层

这是论文中一个关键的技术创新。研究人员发现,仅仅让 VLA 预测动作是不够的。他们增加了一个显式机制,将 VLA 的“大脑”与检索到的“记忆”混合在一起。

最终的动作输出是以下两者的结合:

  1. 神经网络预测的动作 (\(\pi_\theta\)) 。
  2. 在检索到的最近邻中实际采取的动作 (\(a'\)) 。

他们使用距离加权插值法将这两者结合起来:

公式 1: RICL 中使用的动作插值公式。

让我们分解这个公式:

  • \(\pi_{\text{RICL-VLA}}\) 是最终输出。
  • \(a'\) 是来自最近检索示例的动作。
  • \(\sigma(\pi_\theta(...))\) 是模型自己的预测。
  • \(d\) 是当前图像与检索到的图像之间的距离 (相似度) 。
  • \(\lambda\) 是温度参数。

这意味着什么? 如果机器人的当前视图与检索到的记忆完全相同 (\(d \approx 0\)) ,\(e^{-\lambda d}\) 项接近 1。系统在很大程度上依赖 \(a'\)——它本质上直接复制了演示中的动作。 如果当前视图非常不同 (\(d\) 很大) ,\(e^{-\lambda d}\) 接近 0。系统更多地依赖 VLA 的泛化能力。

这本质上给了机器人一个“安全护栏”。如果它看到一个从演示中认出的情况,它会直接模仿成功的动作。如果它处于一个稍微新的情况中,它会进行插值。


实验设置

为了证明这一点,作者在一个物理机器人装置上测试了 RICL: Franka DROID

实验中使用的 Franka DROID 机器人装置。

Figure 3 展示了该装置,包括 VLA 运行所需的多个摄像头角度 (顶部、手腕、右侧) 。

评估协议非常严格。他们定义了一组“评估任务”,包括:

  • 未见过的物体: VLA 原始训练数据中没有的物体,如精灵球 (Pokeball) 、贝果或刮水器。
  • 新颖动作: 需要独特运动的动作,如拖动刮水器或打开特定的架子门。
  • 新场景: 将机器人移动到具有不同光照和背景的厨房水槽环境。

对于每个新任务,他们仅向机器人提供 20 次演示 。 这些演示被放入检索缓冲区。然后机器人必须执行该任务。


结果: 上下文学习的力量

结果显示,标准 VLA 和经过 RICL 调整的 VLA 之间存在巨大差异。

定量成功率

定量差距是巨大的。作者将标准的 \(\pi_0\)-FAST-DROID 与他们的 RICL 版本进行了比较。

比较各种方法成功率的条形图。

观察 Figure 4 , 深蓝色条代表完整的任务成功率。

  • 基础 VLA (\(\pi_0\)) : 表现非常挣扎。在许多任务 (如“移动 Idli 盘子”) 上,它的成功率为 0%。它基本上是在漫无目的地游荡,因为它没有将语言指令与未见过的物体联系起来 (Grounding) 。
  • RICL-VLA: 仅通过使用 RAG 和 ICL 就立即获得了显著的成功率。

该图表还显示了针对“Idli 盘子”任务的消融实验 (右下角) 。随着缓冲区中的演示数量从 5 增加到 20,成功率也随之攀升。这证实了模型正在积极利用提供给它的数据。

定性分析: 眼见为实

论文中提供的视觉对比也许是最令人信服的证据。

案例 1: 精灵球 (未见过的物体)

在这个任务中,机器人必须“捡起精灵球”。基础模型从未见过精灵球。

基础 VLA 与 RICL 在精灵球任务上的对比。

在上面的 Figure 1(a) 中,基础模型 (左侧,红框) 感到困惑。它忽略了精灵球并捡起了黄色鸭子 (它在训练中可能见过的“干扰物”) 。这是典型的“语言接地 (Language Grounding) ”失败。 RICL 模型 (右侧,绿框) 成功识别了未见过的精灵球,因为它的上下文缓冲区中有 20 个捡起精灵球的例子。它检索这些例子,看到“精灵球”的样子,并执行抓取。

案例 2: 刮水器 (新颖动作)

这里,机器人必须“向右移动刮水器并拖动它”。这需要特定的抬起和拉动组合动作。

基础 VLA 与 RICL 在刮水器任务上的对比。

在上面的对比中,基础模型 (左侧) 再次失败,捡起了鸭子。RICL 模型 (右侧) 不仅识别了刮水器,还模仿了在检索到的演示中发现的拖动动作。

案例 3: Idli 盘子 (不熟悉的抓取)

“Idli 盘子”具有独特的形状和凹陷。标准的抓取行不通;手指需要滑入凹陷处。

基础 VLA 与 RICL 在 Idli 盘子任务上的对比。

RICL 模型成功执行了这种细微的抓取。有趣的是,作者指出,在某些情况下,RICL 模型甚至引发了“潜在动作 (latent actions) ”——执行了检索数据中并不严格存在的成功动作,这表明基础模型的知识与检索到的上下文之间存在协同作用。

鲁棒性与反应能力

人们可能会担心,“检索”动作会让机器人变成一台无脑的重放机器。如果物体移动了怎么办?

展示机器人对人类干扰做出反应的序列。

Figure 5 证明了系统保持着反应能力。在这个序列中,当机器人伸手去拿红球时,人类移动了它。由于系统在每个时间步 (以大约 10Hz 的频率运行) 都执行检索和推断,它会不断更新其计划。如果球移动了,查询图像就会改变,检索到的邻居可能会略有偏移,VLA 的视觉编码器会跟踪新位置。机器人成功调整并抓住了球。


启示: 像预训练那样微调

论文提出了最后一个强有力的发现。

虽然“免训练”的 ICL (仅使用缓冲区中的 20 个演示) 效果良好,但最佳性能来自于获取这 20 个演示并对 RICL 模型执行快速微调步骤。

作者称之为 “像预训练那样微调 (Fine-tune like you pre-train) ” 。 由于模型已经被“预热”为使用上下文,因此在特定目标任务上对其进行微调 (同时仍使用检索机制) 会显著提高性能——与仅使用 ICL 相比,总成功率翻倍,并且远超对基础 VLA 的标准微调。

这表明 RICL 不仅仅是一种避免训练的方法;它是在小数据集上进行训练的一种更优越的初始化方式。


结论

RICL 论文代表了机器人技术向“ChatGPT 般”时刻迈出的重要一步。它让我们摆脱了这样一种范式: 即机器人是一个静态系统,必须由工程师针对它遇到的每一个新物体进行重新训练。

通过教会 VLA 如何使用上下文 (预热阶段) 并赋予它访问记忆的机制 (RAG + 动作插值) ,研究人员创建了一个能够适应用户的系统。

主要收获:

  1. VLA 目前是僵化的: 如果没有参数更新,它们很难处理新任务。
  2. RICL 注入了适应性: 通过训练模型查看检索到的邻居,它解锁了上下文学习能力。
  3. 混合架构: 将 LLM 的预测与检索到的动作 (通过插值层) 混合,既提供了泛化能力又提供了精确性。
  4. 无代码改进: 终端用户只需提供 10-20 个视频演示即可改进机器人,无需触碰代码或训练循环。

展望未来,像 RICL 这样的技术表明,下一代机器人将不仅仅是预先编程的工具,而是适应性强的学习者,只需看我们做几次就能学会新技能。