A Survey on Vision-Language-Action Models for Embodied AI

Date:2025-3-4

原文链接:A Survey on Vision-Language-Action Models for Embodied AI

论文合集Github仓库:yueen-ma/Awesome-VLA

在LLM和VLM的成功基础上,RT-2首次提出了视觉-语言-动作模型 (Vision-Language-Action models,VLA)这一概念,通过利用其生成动作的独特能力来解决具身智能中基于语言指令的机器人任务。在基于语言指令的机器人任务中,策略必须具备理解语言指令、视觉感知环境并生成适当动作的能力,这需要 VLA 的多模态能力。

General Architecture

VLA Model

文章按照三个主要研究方向,列举了具有代表性的VLA模型:

  • 预训练:侧重于 VLA 的各个组件,如视觉编码器或动力学模型;
  • 机器人控制策略:开发擅长预测低级行动的控制策略,根据指定的语言命令和感知环境执行低级动作;
  • 高级任务规划器:将长期任务分解为一系列可由控制策略执行的子任务,从而指导 VLA 遵循更通用的用户指示。

Venn + Timeline

Taxonomy

Hierarchical robot policy

预训练

强化学习

强化学习以状态-动作-奖励序列为特征,这与序列建模问题的结构一致,因此非常适合 Transformer 模型,也是许多最新 VLA 模型的基础。

  • 开创性工作:决策变换器(DT)、轨迹变换器(TT),Gato 进一步将这种范式扩展到多模态/任务/具身体设置。
  • 来自人类反馈的强化学习 (RLHF) 已成为 LLM 的重要训练要素:SEED 利用 RLHF 和基于技能的强化学习来解决机器人学习中长距离任务的稀疏奖励问题;Reflexion 提出了一种新的语言强化学习框架,用语言反馈取代了 RL 模型中的权重更新。

Pretrained Visual Representations(PVR)

视觉编码器的有效性直接影响策略的性能,因为它提供有关目标类别、位置和环境可供性的关键信息。因此,许多方法都致力于对视觉编码器进行预训练,以提高PVR的质量。

PVR

视频表示

视频是简单的图像序列,可以通过连接每帧的通常 PVR 来表示。然而,它们的多视角特性使上述之外的各种独特表示技术成为可能。

  • 时间对比学习和 MAE;
  • 利用NeRF 从视频中提取丰富的 3D 信息用于机器人学习,如 F3RM 和 3D-LLM 。
  • 3D 高斯展开 (3D-GS) 方法可以通过基于物理的生成动力学模拟来变形(PhysGaussian),也可以用作 3D 表示(UniGS )

[Integrating Historical Learning and Multi-View Attention with Hierarchical Feature Fusion for Robotic Manipulation](https://www.mdpi.com/2313-7673/9/11/712#:~:text=In response to these limitations%2C we propose a,information%2C hierarchical feature fusion%2C and multi-view attention mechanisms.)一文中提出了一种基于互信息的多视角注意力机制,将多个视角的图像信息进行混合,并有选择地突出最具信息性的视角。

PVR

此外,许多视频包含音频,这可以为机器人策略提供重要提示。

动态学习

动态学习包含旨在使模型了解正向或逆向动态的目标。正向动态涉及预测给定动作导致的后续状态,而逆向动态则涉及确定从先前状态过渡到已知后续状态所需的动作。

正向/逆向动态学习

虽然正向动态模型与世界模型密切相关,不过这里特别关注利用动态学习作为辅助任务来提高主要机器人任务性能的工作。

动态学习方法

世界模型

编码有关世界的常识性知识,并预测给定动作的未来状态:

世界模型

它支持对具身代理进行基于模型的控制和规划,因为它们可以在执行任何实际动作之前在虚构空间中搜索最佳动作序列。此外,可以从明确生成未来状态的图像或视频的视觉世界模型中采样新的具身示例。

尽管正向动态学习也试图预测下一个状态,但它通常被视为预训练任务或辅助损失,以增强基于 RL-Transformer 的动作解码器以用于主要机器人任务,而不是作为一个独立的模块。

  • LLM-induced World Models:LLM中包含大量关于世界的常识性知识,因此许多方法想利用这些知识来改进VLA;
  • Visual World Models:生成未来状态的图像、视频或 3D 场景以使得世界模型与物理世界更紧密地保持一致,可进一步用于生成新的轨迹。

Reasoning

思维链 (CoT) 方法证明推理(Reasoning)已成为 LLM 的一项关键能力,因此想要探索如何利用 CoT 推理来完善决策过程。

总结

  • 预训练的视觉表征强调了视觉编码器的重要性,因为视觉观察在感知环境的当前状态方面起着至关重要的作用。因此,它为整个模型的性能设定了上限。在 VLA 中,一般视觉模型使用机器人或人类数据进行预训练,以增强其在目标检测、可供性图提取甚至视觉语言对齐等任务中的能力,这些任务对于机器人任务至关重要。
  • 相比之下,动态学习侧重于理解状态之间的转换。这不仅涉及将视觉观测映射到良好的状态表征,还涉及理解不同的动作如何导致不同的状态,反之亦然。现有的动态学习方法通常旨在使用简单的掩码建模或重新排序目标来捕捉状态和动作之间的关系。
  • 另一方面,世界模型旨在完全模拟世界的动态,使机器人模型能够根据当前状态将状态推广到未来的多个步骤,从而更好地预测最佳动作。因此,虽然世界模型更受欢迎,但实现起来也更具挑战性。

底层控制策略

将动作解码器与感知模块(如视觉编码器和语言编码器)集成,形成一个策略网络来在模拟或真实环境中执行指令。控制策略网络的多样性在于编码器/解码器类型的选择以及集成这些模块所采用的策略。语言指令控制策略包括以下类型:非 Transformer、基于 Transformer和基于 LLM。一些其他控制策略处理多模态指令和目标状态指令。

Low-level control policy

各种 VLA 架构探索了融合视觉和语言输入的不同方法,包括交叉注意、FiLM 和连接,RT-1 中使用了 FiLM,因此其后续工作也继承了这一机制。虽然交叉注意在较小的模型规模下可以提供更好的性能,但连接更易于实现,并且可以在较大的模型上实现相当的结果 [41]。

如图所示,三种最常见的低级控制策略架构的特点,是其视觉-语言融合方法。一些 Transformer 动作解码器利用交叉注意来条件化指令。在基于 RT-1 的模型中,FiLM 层用于早期融合语言和视觉。连接是 Transformer 动作解码器中视觉-语言融合的主流方法。

VL fusion methods

大多数低级控制策略会预测末端执行器姿势的动作,同时抽象出使用逆运动学控制各个关节运动的运动规划模块。虽然这种抽象有助于更好地推广到不同的实施例,但它也对灵活性施加了限制。行为克隆 (BC) 目标用于模仿学习,针对不同的动作类型有不同的变体。

基于扩散的策略利用了计算机视觉领域中扩散模型的成功。其中,扩散策略是最早利用扩散进行动作生成的策略之一。SUDD为扩散策略添加了语言条件支持。Octo采用模块化设计,以适应各种类型的提示和观察。与常见的行为克隆策略相比,扩散策略在处理多模态动作分布和高维动作空间方面表现出优势。

虽然基于 LLM 的控制策略可以大大增强指令跟随能力,因为 LLM 可以更好地解析用户意图,但人们担心其训练成本和部署速度。尤其是推理速度慢会严重影响动态环境中的性能,因为在 LLM 推理期间可能会发生环境变化。

高级任务规划器

许多高级任务规划器都是在 LLM 之上构建的。虽然以端到端方式将多模态模块集成到 LLM 中是直观的,但使用多模态数据进行训练可能成本高昂。因此,一些任务规划器更喜欢使用语言或代码作为交换多模态信息的媒介,因为它们可以由 LLM 原生处理。

将 LLM 连接到高级任务规划器中多模态模块的不同方法:基于语言和基于代码

高级任务规划器

虽然像 SayCan 这样的端到端任务规划器与低级控制策略具有类似的架构,并且可以针对特定任务进行优化,但由于 LLM 和ViT组合的模型规模很大,它们的训练成本可能过高。基于语言的任务规划器具有与现有语言条件控制策略无缝集成的优势。然而,它们通常需要微调或对齐方法来将生成的规划映射到低级控制策略的可执行语言指令。另一方面,基于代码的任务规划器利用 LLM 的编程能力来连接感知和动作模块。这种方法不需要额外的训练,但其性能可能会受到现有模型能力的限制。

Datasets, Simulators and Benchmarks

机器人数据集

仿真器及仿真benchmark

EQA benchmark

Challenges and Future Directions

  • 机器人数据稀缺:获取足够的现实世界机器人数据仍然是一个重大障碍,收集此类数据耗时且耗费资源,而仅依靠模拟数据会加剧模拟与现实之间的差距问题。
  • 运动规划:当前的运动规划模块通常缺乏解决各种环境中的复杂性所需的灵活性,这种限制妨碍了机器人与工具有效交互、在复杂环境中导航和执行高精度操作等的能力。
  • 实时响应:许多机器人应用需要实时决策和动作执行才能满足操作要求,VLA 模型应设计为响应迅速、延迟最小。
  • 多模态集成:VLA 必须处理和集成来自多种模态的信息,包括视觉、语言和动作,虽然在这方面已经取得了重大进展,但实现这些模态的最佳集成仍然是一个持续的挑战。
  • 泛化到未见的场景:一个真正多功能的机器人系统应该能够在各种未见的场景中理解和执行自然语言指令。
  • 鲁棒性:能够稳定的适应指令、环境、对象和实施方案的变化。
  • 长远任务执行:成功执行此类任务需要机器人在较长的时间范围内规划和执行一系列低级动作,虽然当前的高级任务规划器已经取得了初步成功,但它们在许多情况下仍然存在不足。
  • 基础模型:在机器人任务中探索 VLA 的基础模型仍然是未知领域,这主要是由于机器人技术中遇到的多种具体化、环境和任务。
  • Benchmark:尽管存在许多用于评估低级控制策略 VLA 的基准,但它们在评估的技能方面往往存在很大差异;此外,这些基准中包含的对象和场景通常受到模拟器可以提供的内容的限制。
  • 安全注意事项:安全是机器人技术的重中之重,因为机器人直接与现实世界互动;确保机器人系统的安全需要将现实世界的常识和复杂的推理融入到其开发和部署过程中,这涉及到整合强大的安全机制、风险评估框架和人机交互协议。
  • 伦理和社会影响:机器人的部署始终引发各种伦理、法律和社会问题,这些包括与隐私、安全、工作流失、决策偏见以及对社会规范和人际关系的影响相关的风险。

PaLM-E:An Embodied Multimodal Language Model

Date:2023-3-6

论文主页:https://palm-e.github.io/

论文链接:PaLM-E: An Embodied Multimodal Language Model

模型架构实现:kyegomez/PALM-E: Implementation of “PaLM-E: An Embodied Multimodal Language Model”

提出大型具身多模态模型PaLM-E(-562B),直接将现实世界的连续传感器模态(视觉【图像】+连续状态估计)融入语言模型(文本输入),从而建立词语与感知之间的联系。在预训练的大型语言模型基础上,端到端地训练【图像+连续状态+文本】的混合编码语句,用于机器人操作顺序规划(推理)、视觉问答(VQA)、图像/视频场景描述等具身任务,将视觉-语言领域的知识迁移到具身推理中。

该模型可基于多种观察模态,在多种具身设备上处理各种具身推理任务,并且具有良好的正向迁移性能【模型受益于跨互联网规模的语言、视觉和视觉-语言领域的多样化联合训练】。在机器人任务上训练后的模型还具有很好的视觉-语言通用性,在OK-VQA数据集上达到了SOTA,并且在参数规模增加时保留了通用的语言能力。

images/palm-e/approach

连续状态:来自于机器人的各种传感器的观测结果

VQA【visual-question-answering】:一种基本的多模态任务,结合视觉信息回答问题(V-Q为输入,A为输出)

OK-VQA:基于外部知识的VQA数据集,在COCO数据集上改进补充而来

VQA example

Background

  • 尽管LLM具有强大的推理能力,在海量文本数据上训练的LLM其生成结果可能会与真实物理世界产生关联,但针对更广泛的现实世界问题(CV/Robotics, etc.),在实际应用落地时,显然更重要的是将LLM生成的表示结果和现实世界的视觉和物理传感器模态连接起来
  • 先前的工作在决策时简单地将LLM的输出与学习到的机器人执行策略和可供函数连接起来,但受限于LLM本身仅提供文本输入,这在许多场景几何配置重要的任务中是不够的。
  • 当前最先进的视觉-语言模型在典型的视觉-语言任务(如VQA)上训练后,无法直接解决机器人推理任务。

可供函数(affordance function):描述事物提供的行为可能

Model

Multi-model sentences——不同模态的对齐

显然要将高维的感知数据降到和文本相同的维度直接嵌入会造成较大程度的失真,因此所谓的对齐是将文本Token和连续感知状态都映射到同一个嵌入空间χ中,对于不同的数据需要采用不同的映射方法。

模态对齐

Token embedding space——将文本映射至嵌入空间

对于单个文本token ω而言,需要通过映射γ将其映射到嵌入空间χ中的k维向量x中:
$$
x_{i}=\gamma(w_{i})\in R^{k}
$$
在本模型中,设定的文本总长度(token数量)为W=256000,显然嵌入空间χ为一个规模为k*W的矩阵。

对于具体的计划任务,PaLM-E必须能够在其生成的计划中引用对象。在简单的场景下,往往可以使用很简短的语言准确指向某一个物体对象,而在复杂场景下特别是具有较多相似物体的情况下则不能使用很简短的语言准确的指向某一个物体。针对这一问题,提出Entity Referrals 方法(类似取代号),用于解决物体描述非常长的情况下的编码问题:

在数据的最前面部分(输入提示prompt中)添加上对每个具体物体的描述(多模态标记),如:

1
Object_1 is <obj_1>. ... Object_j is <obj_j>.

其中 Object_1Object_j 分别指代一个具体的物品,<obj_1><obj_j> 分别是对这两个物品的详细描述。

该方法使得PaLM-E能够在其生成的输出语句中通过 <obj_j> 形式的特殊标记来引用对象,后面的文本中再需要使用某个物品时就直接使用 Object_j 来代指,而不用再写出<obj_j> 的复杂描述。

不同传感器的数据映射

和文本相比,显然将不同传感器观测到的多种连续状态对齐到嵌入空间χ的难度要高很多,这里先根据传感器观测到的信息规格类型对其编码策略做简单的讨论:

状态值(状态向量)

最简单的情况——传感器的观测结果直接就是单个/多个状态值 【 e.g. 坐标、位置、大小、颜色…… 】

这种输入数据可以直接转为向量,可能还需要做一些归一化、对齐之类的操作;可以通过MLP(多层感知机,一个/多个全连接层)将该状态向量的维度进行转换,从而映射到嵌入空间χ中。

图像类数据

针对观测结果是图像类数据,直接使用比较成熟的 ViT(Vision Transformer) 模型(需事先进行图像分类的预训练)进行编码,将图像映射为多个token嵌入。

注意:ViT编码后的维数不一定和嵌入空间χ相同,还需要通过仿射变换ψ(参数需训练)将其投影至嵌入空间χ中。

待选择的编码方案:

  • ViT-4B
  • ViT-22B
  • ViT + TL(TokenLearner)

TokenLearner:由于图像类数据维度是2维的,如果直接使用像素点进行编码的话形成的token序列会非常长,而transformer架构对长序列的运算速度非常慢。针对这个问题,Google提出了TokenLearner方法,该方法能够自适应的学习输入图片或视频中的重要区域,然后主要对这些重要区域进行tokenize编码,以达到只需要少量的token就足以表征所有的视觉特征的目的,既降低了计算复杂度,又提升了指标。

针对ViT + TL架构,对其从头开始进行端到端训练。

和文本输入不同,视觉输入之间往往不具有有意义的实体和关系。虽然ViT可以捕捉语义,但表示的结构类似于彼此相同的静态网格,而不是对象实例的集合,这意味着往往会把片中的一个对象划分成了多个部分,从而对与经过符号预训练的LLM接口以及解决需要与物理对象交互的具体推理都提出了挑战。针对这一问题,提出结构化编码器Object Centric Representations,在将视觉输入注入LLM之前将其分离成不同的对象,并在后续的划分过程中以图片中的每个对象为中心进行划分:
$$
x_{1:m}^{j}=\phi_{\mathrm{ViT}}(M_{j}\circ I)
$$
对于对象j,式中Mj为该对象实例的掩码,将其与原图像I相乘即可将该对象实例分割出来。

另一种不需要真实标注分割的方法是OSRT(Object Scene Representation Transformer):不依赖于关于对象的外部知识,而是通过架构中的归纳偏差以无监督的方式发现。基于SRT模型,OSRT通过新的视图合成任务来学习数据域内以3D为中心的神经场景表示。

注意:针对于连续的观察数据,每个对象总是会通过MLP编码器ϕ(需训练)映射为多个嵌入,再对齐到嵌入空间χ。


将以上的文本数据和感知数据映射到相同的嵌入空间χ后,还需要将感知数据嵌入到文本数据中

将映射后的连续感知向量与普通嵌入文本标记交错,以形成LLM的前缀prefix,其中的每个向量 xi 由单词标记嵌入器 γ 或编码器 ϕi 构成:
$$
x_i=\left{\begin{array}{ll}\gamma\left(w_i\right)&\quad\mathrm{if}\text{ i a is text token, or}\\phi_j\left(O_j\right)_i&\quad\mathrm{if}\text{ i corresponds to observation}O_j\end{array}\right.
$$
显然单个观测(状态值/图像) Oj 通常被编码为多个嵌入向量。

可以在前缀中的不同位置交错不同的编码器 ϕi ,以组合来自不同观测空间的信息。以这种方式将连续信息注入LLM将重用其现有的位置编码。与其他VLM方法相比,这种嵌入没有插入固定位置,而是动态地放置在周围文本中。

模型架构

基本思想:将具身代理的传感器模态的连续输入融入语言模型,将连续的、具身的观察(如图像、位姿估计或其他传感器模态)添加到预训练语言模型的语言嵌入空间中,从而使语言模型本身能够为现实世界中的顺序决策做出更为基础的推断。

实现方式:基于预训练语言模型PaLM(decoder-only)【PaLM-E:PaLM + Embodied】,将连续状态观测编码为与输入文本维度相同的向量序列,作为语言标记的嵌入空间【以类似于语言标记的方式将连续信息注入到语言模型中多模态的信息与文本可能是交错的】,并由基于Transformer的LLM的自注意力层以与纯文本相同的方式进行处理,在给定前缀提示词prefix prompt的情况下自回归地(autoregressive,用已生成的词来预测下一个位置的词)生成文本

注意:该模型仅有文本输出,既可以是经典VQA任务中的回答,也可以表示机器人的决策/计划(任务分解)以控制机器人的底层执行行为(模型仅输出决策,套用现有的转化器将决策转化为底层行为);后者是本文研究的重点,但该模型在前者中也取得了SOTA的结果。

Decoder-only LLM

通过大型Transformer网络p_LM,在给定前面文本序列的情况下,预测概率p(各token的联合概率)最大的下一段文本(文本由一系列token ω_l表示):
$$
p\left(w_{1:L}\right)=\prod_{l=1}^Lp_{\mathrm{LM}}\left(w_l\mid w_{1:l-1}\right)
$$

Prefix-decoder-only LLM

在原有Decoder-only LLM架构基础上,在每条文本数据前添加一段前缀提示词prefix prompt(离散/连续)【通常包含任务描述或类似任务的文本示例】,以其为条件进行后续预测:
$$
p\left(w_{n+1:L}\mid w_{1:n}\right)=\prod_{l=n+1}^Lp_{\mathrm{LM}}\left(w_l\mid w_{1:l-1}\right)
$$

位置1~n:prefix prompt

位置n+1~L:输入的文本数据

训练时prefix prompt不参与loss计算

模型在机器人控制环中的输出

为了将模型的输出连接到机器人控制实例,主要有两种情况:

  • 如果任务可以通过仅输出文本来完成(VQA/场景描述任务),则模型的输出被直接认为是任务的解决方案;
  • 如果用于解决一个具体的计划或控制任务,它会生成一个文本来调节低级命令。

用简单的词汇表来执行低级技能的策略,模型输出的有效策略文本应为一系列低级技能的组合,对低级策略进行排序和控制。对于复杂的任务或指令,可能需要额外采用模型实现转换。这里假设低级策略可以直接操作物体对象的tokens,而不需要对于单个物体对象再进行拆分和转换。

PaLM-E实际上仅作为整个机器人控制中的上层决策模块,机器人控制环中还应有对应上层决策结果中的各低级策略的执行机构。

注意:模型必须根据训练数据和提示自行确定哪些技能可用,并且不使用其他机制来约束或过滤其输出。因此,模型训练时应放到整个机器人控制环中进行整体观测,根据执行结果动态调整上层决策模块PaLM-E生成的行为规划。

模型训练方法

训练数据集

训练数据集可以表示为:
$$
D=\left{\left(I_{1:u_{i}}^{i},w_{1:L_{i}}^{i},n_{i}\right)\right}_{i=1}^{N}
$$
其中:

  • i:第i条数据
  • L:一条数据的总长度【文本+连续状态编码后的结果】
  • u:一条数据中有多少个通过传感器观测到的连续状态
  • n:一条数据中 prefix prompt 部分的长度
  • I:通过传感器观测到的连续状态
  • ω:文本token

每条数据以文本为主体,基于文本中的特殊标记,用编码器的嵌入向量取代这些标记在原文本中的位置,从而把图像、连续状态都串成一条数据。显然每个图像经过嵌入层之后会被转化为多少个向量是固定的,所以只要给每个图像预留上对应个数的位置即可。

损失函数

在各非前缀tokens(n+1及之后位置)上平均的交叉熵损失(每条数据的前 ni 个位置是prefix prompt,不计算损失)

模型参数规模

将PaLM的不同预训练参数变体作为Decoder-only-LLM,通过编码器将连续观测值注入其中,这些编码器要么经过预训练,要么从头开始训练(见模态对齐部分)。

基于不同的PaLM预训练参数规模,得到了以下几种PaLM-E模型:

  • PaLM-E-12B:8B PaLM + 4B ViT
  • PaLM-E-84B:62B PaLM + 22B ViT
  • PaLM-E-562B:540B PaLM + 22B ViT

模型冻结

本文中的整个模型系统可以分为三部分:

  • 解码器Encoder,用 ϕ 表示;
  • MLP(用于维度转换),用 ψ 表示;
  • LLM,用 pLM 表示。

考虑如下事实:如果提供适当的提示,LLM可能会显示出令人印象深刻的推理能力。因此,在训练时不一定要这三部分的权重都同时更新,可以冻结其中的一部分(如LLM),只训练另外部分(如编码器)的权重。训练这种编码可以理解为一种与正常软提示相关的输入条件软提示形式。

本文中实际采用的三个策略为:

  • 三个部分都同时进行训练;
  • 冻结 LLM,训练编码器和MLP;
  • 冻结 LLM 和 编码器,只训练MLP。

采用后两种策略的理由:LLM部分是基于PaLM模型,已经在大量数据上做过预训练的,其本身可能就已经有着非常强的能力;解码器也是类似的,比如采用ViT模型,那么该模型也是在大量图像数据上预训练过的;在上述三部分中只有 ψ 是随机初始化的,这部分模型必须要重新训练

Experiments

测试演示详见论文主页:https://palm-e.github.io/

对比Baseline:VLM——PaLI(未在实例机器人数据上进行训练)、SayCan算法

机器人任务

机器人任务效果总览

任务和运动规划Task and Motion Planning(TAMP)

四种 VQA 问题 + 两种plan问题

四种 VQA 问题:

  • q1 : 物品颜色问题。举例:给定一张图片。问:桌面上的物体是什么颜色?答:桌面上的物体是黄色。
  • q2 : 物品-桌面位置关系问题。举例:给定一张图片。问:红色的物体在桌面的上方?左方?还是中心?答:红色的物体在桌面的中心。
  • q3 : 物品-物品位置关系问题。举例:给定一张图片。问:黄色的物体是在蓝色的物体的下方吗?答:黄色的物体不在蓝色的物体的下方。
  • q4 : 计划的可行性问题。举例:给定一张图片。问:先把蓝色的物体拿起来,然后把它堆放到黄色的物体上,然后能直接拿起黄色的物体吗?答:不能。

两种 plan 问题:

  • p1 : 抓取问题。举例:给定一张图片。问:如何抓取绿色的物体?答:首先抓取黄色的物体并将其放到桌面上,然后抓取绿色的物体。
  • p2 : 堆叠问题。举例:给定一张图片。问:如何将白色的物体堆放到红色的物体上方?答:首先抓取绿色的物体并将其放到桌面上,然后抓取白色的物体并将其堆放到红色的物体上方。

Task and Motion Planning

实验结果:

来自TAMP的数据仅占总训练数据大小的1%

  • 在训练比较少的情况下,使用预训练模型能够有较大的收益;
  • ViT+TL 还是 ViT-4B 都不能够很好的处理2个plan任务,而加上跨任务(NLP+图像任务+机器人任务TAMP)的数据做训练之后(full mixture)在2个plan任务上的效果有了较大幅度的提升,这说明跨任务联合训练是有效的;
  • 使用了 OSRT 作为编码器的效果较好;
  • SayCan 和 PaLI 在仅使用1%的训练数据做训练的场景下,几乎没有能力解决相应的问题。

在全量TAMP数据上训练,未使用除TAMP以外的任务数据

任务 TAMP 的每条训练数据中都是有3~5个物体,测试时还将每条数据中的物体数量增加到6个、甚至8个,以及还会增加训练数据中不存在的物体(out-of-distribution, OOD)。

  • 当每条测试数据中的物体数量为3~5个时,各模型表现较为接近;
  • 将每条测试数据中的物体数量增加到6个、甚至8个时,使用了预训练的 LLM 之后效果有着明显的提升;
  • 在出现了训练数据中不存在的物体(OOD)时,不使用预训练 LLM 的模型完全无法处理该任务;使用了预训练 LLM 之后效果明显提升;并且将模型的尺寸由8B增大到62B之后也会有明显的提升。

Frozen Comparision

桌面级操作Tabletop Manipulation

在桌面上摆一些不同颜色、不同形状的物体,机器人按照输入的命令用机械臂移动这些物体。

Tabletop Manipulation

长期任务数据集:Language-Table

长期任务:模型无法通过一步完成该任务,而是需要每次自己生成策略、执行相应的action,然后观察外界环境,再次自己生成策略、执行相应的action,直到观察外界环境满足了任务要求。

Tabletop Manipulation

数据集中包含3个任务类型:

  • Task1 :将最靠近{某个方位,比如:右上角}的块,推到与它颜色相同的另一个块那里。
  • Task2 :将所有的块按照颜色分组,并将每组推到桌面的四个角上。
  • Task3 :将 左侧/右侧 的块推到一起,不要移动任何 右侧/左侧 的块。

Tabletop Manipulation

  • 使用预训练模型后效果大幅提升;
  • 增大模型参数规模后,在Task1和Task3这两个任务上有明显的提升,但是在Task2这个任务上有一些降低;
  • SayCan 和 PaLI 这两个Baseline依然不具有解决该问题的能力。

移动操作Mobile Manipulation

移动操作环境就是机器人是可移动的,不再固定在桌面上。

Mobile Manipulation

测试任务:

  • Affordance Prediction:给定一个物体/环境,以及一个操作,让模型预测该操作是否可在给定的物体/环境上执行。比如当环境中是红色块堆放在绿色块上方时,让模型预测能否抓取绿色块。模型预测结果应该是不能,因为必须先将红色块从绿色块上拿下来放到桌面上之后才能够抓取绿色块。
  • Failure Detection: 对于机器人来说,当它执行完某一个操作之后,检测该操作是否执行成功也是很重要的。该任务就是检测执行的操作是否成功。

Mobile Manipulation

  • 对于任务 Affordance Prediction:12B的 PaLM 预训练模型效果比 PaLI 和 QT-OPT 效果都要好;
  • 对于任务 Failure Detection:12B的 PaLM 预训练模型效果明显超过了 PaLI 和 CLIP-FT;即使是使用了额外的数据做了优化的 CLIP-FT-hindsight 的效果也比 PaLM-E-12B 要略差一些。

视觉语言相关任务

Visual-Language Tasks

总共3个任务,两个VQA任务:OK-VQA 任务和 VQAv2 任务,一个字幕任务:COCO captioning 任务。

Visual-Language Tasks

Natural Language Processing Tasks

测试模型:

  • PaLM-E-12B :使用 PaLM-8B 作为基座,加上 ViT-4B 得到的模型;
  • PaLM-E-84B :使用 PaLM-62B 作为基座,加上 ViT-22B 得到的模型;
  • PaLM-E-562B :使用 PaLM-540B 作为基座,加上 ViT-22B 得到的模型;

NLP Tasks

所有的 PaLM-E 模型都在机器人任务上做了微调,显然微调后的 PaLM-E 模型相较其对应的基本PaLM模型在NLP(NLG + NLU)任务上的效果均有所下降:

  • PaLM-E-12B 相比于 PaLM-8B 在NLU和NLG任务上分别下降了 15.0% 和 87.3%;
  • PaLM-E-84B 相比于 PaLM-62B 在NLU和NLG任务上分别下降了 4.3% 和 61.6%;
  • PaLM-E-562B 相比于 PaLM-540B 在NLU任务上上升了 0.4%,在NLG任务上下降了 3.8%;

NLG Tasks

增加模型参数规模可以减少相应的 PaLM-E 模型与其继承的 PaLM 模型之间的灾难性遗忘。当模型特别大时,其所能储备信息的能力大幅增大,这样在新任务上做训练之后,就对之前的任务损耗较小。

3D-VLA:A 3DVision-Language-Action Generative World Model

Date:2024-3-14

论文链接:https://arxiv.org/abs/2403.09631

原文代码仓库:[UMass-Embodied-AGI/3D-VLA: [ICML 2024] 3D-VLA: A 3D Vision-Language-Action Generative World Model]

提出了 3D-VLA,通过生成世界模型无缝地将 3D 感知、推理和行动联系起来。具体来说,3D-VLA 构建在基于 3D 的大型语言模型(3D-LLM)之上,并引入了一组交互tokens来与具体环境互动。此外,为了将生成能力注入模型,还训练了一系列扩散模型,并将它们对齐到LLM用于预测目标图像和点云的模型中。3D-VLA 显着提高了具身环境中的推理、多模态生成和规划能力,展示了其在实际应用中的潜力。

Background

  • 已有模型存在的问题:
    1. RT-2、PALM-E等VLA模型已经可以根据2D图像生成高级计划或低级行动,但人类位于一个比2D图像更丰富的3D物理世界中,需要根据对环境的3D理解进行推理、计划和行动,而目前的VLA模型依赖于2D输入,缺乏与更广泛的3D物理世界领域的集成。
    2. 目前已有的3D具身模型可以在3D环境中进行规划与行动,但此类模型仅通过学习从感知到行动的直接映射来执行动作预测,而忽略了世界的巨大动态以及动作与动态之间的关系。相比之下,人类被赋予了世界模型,这些模型描绘了对未来场景的想象,以相应地规划行动。
  • 构建类似人类的3D世界模型带来的挑战:
    1. 已有的模型局限于语言这一单一模态
    2. 现有的具身数据集主要包含 2D 图像或视频,缺乏用于 3D 空间推理和规划的 3D 相关注释

Dataset:3D embodied instruction tuning datasets

增强数据集示例

出发点:已有的数据集(视频-动作对)大多不提供深度或 3D 注释以及机器人操作中的精确控制,而如果没有 3D 信息,机器人很难理解和执行需要 3D 空间推理的命令(“将最远的杯子放入中间抽屉”)

构建方式:从已有的具身数据集(12个数据集:语言指令/图像/深度信息/模拟环境/人机交互/3D注释)中提取3D-语言-动作对,得到如下信息的标注:点云、深度图、3D bounding boxes;机器人7D动作(与RT系列文章一致,x/y/z/roll/pitch/yaw/抓持器打开);文本描述

使用到的已有具身数据集

视觉标注

  • 获取3D点云数据:基于深度图数据,可使用相机标定内参/姿态数据将RGB-D图像升维至3D点云
    • 估计深度:ZoeDepth
    • 估计光流:RAFT

光流(optical flows):提炼生成数据——在摄像机姿态不变的视频片段中,用于估计哪些像素背景未移动,并将这些背景的深度图对齐到同一视频的不同帧中,同时将每帧的深度图乘以一个系数,以确保深度一致性。

RGBD目标图像的可视化(RGB+Depth深度图):Novel Env为日常生活中收集的未见环境

生成的RGB-D目标图像与目标点云

  • 生成3D标注:

    • 对象的 3D 边界框(bounding box)
      1. 使用spaCy解析获取指令(数据集提供文本指令以描述机器人执行的命令)中的所有名词块(包括操作对象)
      2. 采用预训练的映射/对齐模型(grounding model)(如Grounded-SAM)获取各对象的2D蒙版,并根据有效光流区域中的最高置信度值来选择操作对象
      3. 通过将2D蒙版升维至3D点云中,获取空间中所有对象的3D bounding box

    由于重建了深度和点云,因此可以在未来的帧中使用图像、深度和点云作为ground truth。

    • 3D 空间中的机器人动作:数据集中已提供7D机器人动作

语言标注

生成密集的语言标注,其中包含围绕在生成的3D视觉标注周围的tokens:采用带有tokens的预训练语言模板,将3D标注构建至提示词与答案中

预训练语言模板

e.g. I should pick up the chip bag [loc tokens] </img /pcd>

使用基于ChatGPT的提示词工具,使提示词prompt更加多样化:

  • 向 ChatGPT 提供指令和标注对象及其bounding box,要求 ChatGPT 总结信息并将模板生成的提示重写为更多样化的形式;
  • 提供 2-3 个人工编写的小样本演示,以指导 GPT 了解它被指示生成的数据类型;
  • 对于没有预定义模板的任务,ChatGPT 也会被要求自行生成提示和答案作为这些任务的语言输入和输出。

使用ChatGPT使prompt更加多样化

Model

模型架构:左侧部分展示了目标生成功能;模型可以根据用户的输入想象最终的状态图像和点云,然后可以将生成的目标状态反馈给我们的模型,以指导机器人控制。

3D-VLA是一个用于具身环境中的三维推理、目标生成和决策的世界模型。

  1. 以3D-LLM作为backbone,在此之上构建主干开发 3D-VLA 基础模型

    • 由于收集的数据集无法达到多模态LLM从头开始训练所需的十亿级规模,因此需要利用多视图特征生成 3D 场景特征。这使得视觉特征能够无缝集成到预先训练的 VLM 中,无需调整。
    • 3D-LLM的训练数据集主要包括对象和室内场景,这与该模型所用数据集的具体设置并不直接一致,因此选择不加载 3D-LLM 预训练模型,而是使用 BLIP2-FlanT5_XL作为预训练模型
    • 训练期间解冻了 token 的输入和输出嵌入,以及 Q-Former 的权重。
  2. 添加一系列交互(interaction)tokens:进一步增强模型对 3D 场景的理解以及与3D世界交互的能力

    • 在句中的物体名词两侧加入token:,使得模型可以更好地捕获需要操作/提到的对象

    e.g., a chocolate bar [loc tokens] on the table

    • 为了更好地通过语言表示空间信息,设计了一组位置tokens:,用于定位提到的对象,这些标记由 AABB 形式的 3D bounding box 的六个tokens表示
    • 为了更好地使用框架对动态进行编码,引入了tokens: 来封装静态场景的嵌入。通过对场景tokens进行组合,3D-VLA 可以理解动态场景并管理交错 3D 场景和文本的输入。
    • 通过一组扩展的代表机器人动作的专用tokens进一步增强架构:机器人的动作具有 7 个自由度,由离散tokens(如 ,<gripper0/1> )表示,他们代表了机器人手臂的预期绝对位置(x/y/z)、旋转角度(roll/pitch/yaw)、抓手打开度。这些动作由token : 分隔。
  3. 将目标生成(图像-深度/点云)能力注入3D-VLA

    人类**预先可视化场景的最终状态**,以便于行动预测或决策,这是构建世界模型的一个关键方面。此外,通过初步实验可以发现,提供基本事实的最终状态可以增强模型的推理和规划能力。

    训练多模态大语言模型来生成图像、深度和点云主要存在以下问题,文章中根据这两点给出了对应的模型设计优化方案:

    • 视频扩散模型并不是为具体的某种模态量身定制的——根据不同的模态(如图像、深度和点云)对具体的扩散模型进行预训练

      利用选取的3D-语言视频数据来训练条件扩散模型,该模型根据指令编辑初始状态模态,以生成相应的最终状态模态。

      • RGB-D to RGB-D:采用Stable Diffusion V1.4作为预训练模型,将RGB潜变量和深度潜变量连接起来作为图像条件。
      • 点云 to 点云:采用Point-E作为预训练模型,添加点云的条件输入。
    • 如何将各种模态的扩散模型纳入一个单一基础模型——使用投影器将这些扩散模型的解码器与3D-VLA 基础模型的嵌入空间对齐

      在对扩散模型进行预训练后,配备各种解码器,这些解码器可以在其模态中调节潜空间来生成目标:图像 和点云 的tokens会告诉解码器输出的类型。

      在图像/点云的tokens封装之间,监督LLM生成的给机器人操作的指令,包括目标和位置tokens。

      e.g. pick up the apple [loc tokens]

      基于此,可以使用基于transformer的投影器,将解码器的特征和嵌入(embedding)从LLM映射到扩散模型的空间中,从而建立高级语言支持和多模态目标生成之间的联系,增强模型理解并提高生成多模态数据的能力。

      为了提高训练3D-VLA的效率并避免灾难性遗忘,利用LoRA微调不同的扩散模型

      只训练新引入的特殊tokens embedding、相应的embedding输出线性层和整个投影器,训练目标是同时最小化LLM和扩散模型的去噪损失

Experiment:模型评估

3D推理与定位

  • 测试任务(基于Open-X数据集):

    1. Embodied QA
    2. Task Caption(输入初始和最终场景,要求推理这个过程中发生了什么)
    3. What-if QA(与RT-1相同,指令拆解)
    4. Dense Caption(3D场景的过程推断)
    5. 定位:以zero-shot方式检测 2D 边界框,然后使用深度投影将它们传输到 3D 边界框
  • 对比Baseline模型:3D-LLM、2D-VLM(BLIP2、OpenFlamingo、LLaVA)、2D 对齐 MLLM(Kosmos-2、CoVLM)【针对任务5定位】

  • 测试方式:

    1. zero-shot(在未见的数据集上测试)
    2. 在训练集(2D 图像-指令-行为对)上测试
  • 测试结果:

    • 3D-VLA 在语言推理任务上优于所有 2D VLM 方法
    • 3D-LLM 在机器人推理任务上表现不佳
    • 3D-VLA 在定位性能方面表现出优于 2D 基线方法的明显优势

    任务1-4测试结果

    任务5测试结果

多模态目标生成

  • 测试任务:从 Open-X 测试集中随机抽样了 4000 个未见的episodes,定量评估Open-X 测试集上 3D-VLA 的 RGB 目标和点云目标生成能力

  • 对比Baseline模型:

    • 图像生成:图像编辑方法 Instruct-P2P、目标图像/视频生成方法SuSIE、具有图像生成能力的大语言模型 NeXT-GPT
    • 点云生成:文本-to-3D 扩散模型Point-E
  • 测试结果:

    • 图像目标生成:
      • 与直接zero-shot到机器人领域的现有生成方法(表中的第 1、2、3 行)相比,3D-VLA 在大多数指标方面都取得了有希望的性能
      • 即使与采用相同机器人数据集(表中第 4 行)上训练的 Instruct-P2P* 直接比较,3D-VLA 的性能也始终优于它
      • 从输入提示(第 5 行)中排除预测的边界框时,性能略有下降

    RGB图像生成测试结果

    • 点云生成:

      • 具有中间预测边界框的 3D-VLA 性能最佳

      点云生成测试结果

机器人行动规划

  • 测试任务:根据RLBench和CALVIN两个benchmark dataset评估3D-VLA 预测机械臂动作的能力

    • RLBench:选择3个任务进行评估;从pick-up-cup任务中选择var1作为未见任务以测试模型泛化能力
    • CALVIN:在long-horizon multi-task language control设置下按顺序执行5个任务;在场景A、B、C、D中训练并在场景D中测试
  • 对比Baseline模型:

    • RLBench:LanCon-Learn(一种多任务方法,可根据指令条件输出预测动作)
    • CALVIN:MCIL(一种序列-to-序列的条件变分自动编码器)
  • 测试结果:

    • 3D-VLA在大多数任务中和RLBench的行为预测baseline性能相当甚至更优,说明其行为规划能力优越
    • pick-up-cup任务很好地证明了模型的泛化能力
    • 3D-VLA 在 CALVIN 中也取得了良好结果

    RLBench数据集上的行动规划评估

    CALVIN数据集上的行动规划评估

RT-1:Robotics Transformer for Real-world Control at Scale

Date:2022-12-14

论文链接:https://arxiv.org/abs/2212.06817

原文代码仓库:google-research/robotics_transformer

模型使用数据集:gresearch – 存储桶详情 – Cloud Storage – Google Cloud Console

提出具有高容量结构(with high-capacity architectures)的Vision-Language-Action(VLA)多模态大模型Robotics Transformer,结合真实机器人执行实际任务时所收集到的大规模数据(all of the diverse, robotic data:图像/视觉-语音/语言-行为),进行开放式的任务无偏训练(open-ended task-agnostic training),从而提高模型的可扩展性,但模型充分利用大规模数据集的能力仍然有限。

intro

Background

  • 在计算机视觉(CV)、自然语言处理(NLP)或语音识别等下游任务中,通过在多样化且任务无偏的大型数据集上进行预训练,现代机器学习模型已经可以在零样本(Zero-Shot)学习与在特定任务的小数据集上进行微调(迁移学习)中有良好的表现;
  • 这种技术在机器人中仍未得到广泛运用,同时由于真实世界中的机器人数据难以收集,需要对其可行性进行验证,重点需要关注模型的泛化与微调能力。

Model

工作平台:移动机械手 from Everyday Robots——7自由度手臂+两指夹持器+移动基座

机械臂

工作模式:接收图像短序列和自然语言指令->输出离散化的基底和手臂动作供机器人在每个时间步执行(闭环控制),直到产生终止动作或用完预设时间步数

动作包括手臂运动的七个维度(x、y、z、roll、pitch、yaw、抓持器打开)、底座运动的三个维度(x、y、yaw)和一个额外的离散维度,用于在三种模式之间切换:控制手臂、控制基座或终止。

参数规模:35M

处理频率:3Hz——100ms推理时间 + 280ms执行延迟

基本架构:

基于Transformer——将高维输入和输出(包括相机图像、文本指令和电机命令)编码成紧凑的token表示供Transformer使用,以高效推理与实时控制

模型架构

  • 图像和指令(文本)的处理(tokenization):

    • 总体上采用基于 ImageNet 数据集预训练的卷积神经网络 EfficientNet-B3 作为基本框架,在此基础上嵌入预训练的语言编码器进行条件化,以提取与任务指令相关的图像特征
    • 参数规模:16M
    • 架构:26层【MBConv模块+FiLM层】
    • 文本:文本输入Universal Sentence Encoder->嵌入EfficientNet中添加的FiLM层(将产生FiLM仿射变换的密集层(fc和hC)的权重初始化为零,允许FiLM层最初作为恒等映射并保留预训练权重的功能,防止破坏中间激活)
    • 图像:输入6张300 * 300的3通道图像->经由CNN输入9 * 9 * 512空间特征图(每张图像)->展平为81个视觉标记
  • Token Learner 模块:

    • 为加速推理,设计该元素注意力模块用于压缩所需注意的tokens数量(81->8)
    • 允许基于指令信息软选择图像tokens,只传递重要的token组合给后续的Transformer层
    • 参数规模:34k
  • Transformer :

    • 仅有解码器的序列模型
    • 参数规模:19M
    • 架构:8个自注意力层
    • 输入:每张图像8tokens * 6张输入图像->48个总tokens(添加位置编码)
    • 输出:动作tokens(7-dim arm movement + 3-dim base movement + 1-dim 状态切换,共11个维度;对于每个维度,在其变量范围内均匀离散化为256个bin)
  • 损失函数:标准分类交叉熵熵目标与因果掩码

模型架构

Data

数据规模:用时17个月,通过13个机器人采集了130k+ episodes ,包含700+指令

工作场景:办公室厨房场景(2个真实办公室厨房场景Kitchen1、Kitchen2+1个根据真实场景Kitchen1建模的训练环境)

场景

物品环境

技能:包括挑选、放置、打开和关闭抽屉、将物品放入和取出抽屉、将细长的物品直立放置、将直立放置的细长物品撞倒、拉餐巾纸和打开罐子

指令:包含一个动词和一个或多个描述目标对象的名词;为组合这些指令,将它们分割成一些技能(如动词“pick”、“open”或“place upright”)和对象Object(如名词“可乐罐”、“苹果”或“抽屉”);添加新指令时不对特定技能做出任何假设以提高其扩展性。

任务与指令

训练集和评测实例

Experiments

对比的Baseline:Gato和BC-Z(基于相同的训练数据集)

Gato:只计算单张图像标记,无语言嵌入,且无推理时间优化(TokenLearner与删除自动回归动作);为保证实时性,将模型参数规模限制在37M

BC-Z:作为前馈模型不使用先前时间步,且使用连续动作标记;原模型参数量小于RT-1, 因此额外对比了一个参数规模和RT-1类似的BC-Z模型BC-ZXL

主要关注如下问题:

  1. 已见任务的执行性能:

    从训练集中随机抽样出部分指令进行测试(仅指令已见,物品位置、时间、机器人初始位置等因素随机):测试任务200+(36个抓取物体的任务,35个推倒物体的任务,35个将物体竖直放置的任务,48个移动物体的任务,18个打开和关闭不同抽屉的任务,以及36个从抽屉中取出和放入物体的任务)

  2. 未知任务的泛化性能:能否学习执行大量指令,并零样本泛化到新任务、对象和环境中?

    指令:测试了21个新的未见指令——确保每条指令中涉及的对象与技能中的一部分在训练集中存在,但排列方式不同

    未见指令list

    根据背景/物体的改变程度分成L1/L2/L3三个任务难度等级:

    • L1:只改变环境光照与台面布局

    • L2:改变环境光照与台面布局+加入放置未见物体

    • L3:改变环境光照与台面布局+加入放置未见物体+改变物体位置

      泛化性能测试环境

  3. 鲁棒性:

    • 干扰因素:对30个真实世界任务进行测试

    • 环境背景变化:对22个真实世界任务进行测试,改变照明、视觉背景效果、台面背景(桌布等)

      鲁棒性测试环境

      环境改变

  4. 长时序跨度场景:各种方法在长时间跨度的机器人场景中泛化程度如何?

    执行一系列技能,并结合多种泛化维度(技能/物体/环境)进行测试

    测试了15个长时序指令,每个指令由10个左右的不同技能指令序列组成

测试结果:

测试结果:已见、未见、干扰鲁棒性、背景鲁棒性

测试结果:泛化能力

测试结果:长时序跨度场景中的泛化能力——计划成功率与执行成功率

其他问题:

  1. 通过合并异构数据源(如模拟数据或不同机器人的数据),我们能否进一步提升所得到的模型?

    • 合并模拟数据

      测试结果:合并模拟数据

    • 合并不同机器人数据

      合并不同机器人数据

      测试结果:合并不同机器人数据

  2. 随着数据量和数据多样性的变化,泛化指标如何改变?

    数据多样性比数据量更为重要

    测试结果:泛化指标随数据量/数据多样性的变化

环境搭建与测试

  1. 代码仓库克隆
1
git clone https://github.com/google-research/robotics_transformer.git
  1. python环境配置
1
pip install -r robotics_transformer/requirements.txt

注意到requirements.txt中包含

1
git+https://github.com/google-research/tensor2robot#tensor2robot

由于该git仓库无法作为pip包直接安装,还需要克隆该仓库:

1
git clone https://github.com/google-research/tensor2robot

克隆完成后输入如下命令运行测试程序(这里原作github仓库中有误,将action_tokenizer.test改为action_tokenizer_test):

1
python -m robotics_transformer.tokenizers.action_tokenizer_test

无法正常运行,需要根据报错进行对应库版本的修正,同时根据tensor2robot仓库中的说明,使用protoc工具通过proto文件生成对应的py代码文件,具体不详细展开。

环境配置完成后,出现如下输出,说明测试程序运行成功。

result