语言条件化操作:让指令在数据中落地

语言条件化策略让机器人听从指令,但真正的瓶颈是粒度恰当的成对 language-action 数据,而不是模型本身。

阅读约 6 分钟

对一个人说“把那把小螺丝刀递给我,就是胶带旁边那把”,他几乎不假思索就能拿对。对机器人说同样的话,每个词都会变成一个难题。哪一把才算“小”?“旁边”到底在哪里?对于一个无法像人手那样灵活转腕的二指夹爪来说,“递给我”又意味着什么?

语言是我们向机器人下达指令最廉价的接口。这既是它的吸引力,也是它的陷阱。词语抵达时,并不携带执行动作所需的任何物理落地信息。指令本身很简单。把它转化为具体的物体、具体的抓取和具体的路径,才是难点。

值得坚持的观点是:language-conditioned 操作的瓶颈不在语言模型,而在于把词语与动作绑定起来的成对 language-action 数据。前者我们拥有得过剩,后者却严重稀缺。

指令很容易,落地很难

现代 VLA 模型的大部分能力来自网络规模的预训练。一个读过整个互联网的模型早已知道螺丝刀是一种工具、胶带是成卷的、“小”是相对的。这种先验是真实而有用的。Google DeepMind 的 Gemini Robotics 正是倚重于此,把广泛的视觉与语言知识带入控制策略。

但语义不等于落地。知道螺丝刀是什么,并不能告诉你这一把此刻在这张杂乱工作台上的哪个位置、在这种光照下是什么样子,也不能告诉你需要多大的力才能把它拿起来而不打滑。从一个指代短语到机器人自身坐标系中一个位姿的映射,必须从“把短语与动作成对绑定”的示范中学到。文本预训练不会免费提供它。

因此,一个策略可以把任务描述得完美无缺,却依然做不出来。它的词语落地在其它词语之上,而没有落地在力矩、接触和几何之上。

语言究竟从哪里进入策略

指令没有唯一的接入点,而这个设计选择决定了你需要什么样的数据。目前有三种主流模式。

  • 语言作为目标 token。指令被编码一次,作为固定向量交给策略。简单,在“一条指令对应一个技能”时有效。
  • 对词语做 cross-attention。策略在每一步都关注单个 token,于是“胶带旁边那把”能够逐帧引导感知。表达力更强,也更吃数据。
  • 语言先转成计划,再做底层控制。高层模型把指令拆成子目标,一个快速策略逐一执行。Physical Intelligence 在其 Physical Intelligence blog 上讨论过把“慢速审慎层”与“快速反应层”分开的做法。

每种模式都从不同的数据切片中汲取监督信号。目标 token 模型可以从粗粒度、每段一句的标注中学习。cross-attention 模型需要子句与时刻之间的紧密对齐。分层方案两者都要,而且要在两个时间尺度上。

指令粒度是一个数据决策

最关键的选择是粒度:语言与动作绑定得有多细。它看起来像一个标注细节,实际上决定了模型能泛化到什么程度。

表 1:指令粒度及各层级对数据的要求
粒度示例指令标注成本换来的能力
任务级“冲一杯咖啡”低,每段一个标签重组能力弱,整段任务被死记
步骤级“打开抽屉”“拿起咖啡胶囊”中,需分段并逐步标注可复用的子技能,更好的组合
动作级“向左移动 5 cm,然后闭合”高,密集时间标注控制精确,语义迁移弱

大多数大型语料都停留在粗粒度一端,因为粗粒度便宜。这是个问题。只在“冲一杯咖啡”上训练出来的模型,没有干净的途径把“打开”和“倾倒”重组成一个它从未见过的任务。组合泛化恰恰住在步骤级标注里,而这需要真金白银的标注工作。

成对 language-action 数据到底需要什么

采集示范只是一半工作。把正确的词语贴到正确的时刻上是另一半,而多数数据集在这里都很单薄。有三点反复出现。

  • 时间对齐。“现在拧”必须对准发生拧的那几帧,而不是整段视频。松散的对齐会教模型忽略时序。
  • 事后重标注(hindsight relabeling)。为某条指令采集的轨迹,同时也是许多其它指令的有效示范。“去拿杯子”事后也是“把手向上向左移动”。用若干条真实指令重标注同一条示范,能成倍放大它的价值。
  • 指代多样性。同一个物体应当有多种叫法:“红色那个”“杯子”“左边那个东西”。没有这种多样性,策略就会对措辞过拟合。

公开语料暴露了这道缺口。Open X-Embodiment 聚合了大约一百万条跨多种本体的真实机器人轨迹,而它的语言标注大多是每段一句简短指令。覆盖面很广,但在 cross-attention 策略更偏好的“细粒度、多重重标注的对齐”上很单薄。像 NVIDIA Isaac GR00T 这样的系统正是为消费成对的 vision-language-action 数据而构建的,这让那种对齐(而非模型)成为真正的约束。

language-conditioned 操作真正稀缺的资源不是语言理解,而是粒度恰当的成对 language-action 数据。

如何判断落地是否成立

有一个廉价的测试,能判断策略究竟是落地了指令还是背了下来:换一个词。把“红”换成“蓝”,“左”换成“右”,“杯子”换成“瓶子”,看看手怎么动。落地的策略会跟着改变,死记的策略会继续去够训练中出现最多的那个物体。改变措辞(而不仅仅是改变场景)的评测,才是能预测真实部署的评测。

这也是纠错数据重要的原因。只有干净成功样本的数据集,永远不会向策略展示“不对,是另一个”长什么样。真正教会落地的示范,包含那些一开始够错、又在动作中途被纠正回来的过程。

给机器人一条指令,词语是最容易的部分。一旦让它动手,缺的那块不是理解力,而是一条曾经把这些确切词语与真实动作绑在一起的示范,而且要足够多、措辞足够丰富、时间对齐足够紧,让策略学到的是那个映射,而不是那句话。把这样的数据建起来,语言就成了一个控制界面;跳过它,语言就只是一段示范。

language-conditionedinstruction-followingvladatasetsphysical-ai

来源