EmbodiedGPT: Vision-Language Pre-Training via Embodied Chain of Thought
Abstract:
具身人工智能(Embodied AI)让机器人有规划、执行动作序列的能力,以在物理环境中完成长期任务。本文提出EmbodiedGPT,它是一个端到端的多模态基础模型,赋予具身代理多模态理解和执行能力。本文的贡献主要有三点:
- 制作了一个大规模的具身规划数据集EgoCOT。该数据集包含从Ego4D数据集中选的视频,以及相应的高质量语言instruction。他们用CoT生成了一系列子目标,用来进行有效的具身planning。
- 为EmbodiedGPT引入了一种高效的训练方法,用于高质量的plan生成,是在EgoCOT数据集上通过prefix tuning 7B的LLM完成的。
- 介绍了一种从LLM生成中提取任务相关特征的范式
Introduction:
PalmE,GPT-4等LLM有非常强的语言理解、推理、CoT能力,要想办法把这些能力结合第一人称的视频用在机器人的规划行动上。但是这些任务需要大规模的数据集,现有数据集没有大规模第一人称的真实数据。现在面临几个问题:- 如何将LLM应用于机器人领域
- 如何利用“思想链”进行结构化规划
- 如何以端到端的方式将输出的语言计划用于下游操作任务
然后,在EgoCOT和EgoVQA数据集之上提出了一个端到端的多模态具身基础模型EmbodiedGPT,它可以以更自然和直观的方式与物理世界交互,并执行许多具身任务,如规划、VQA和控制。下图展示了在video caption、多轮QA、具身规划和低级别控制方面的能力。EmbodiedGPT给出的计划有高度可执行性,并结合了特定任务的功能,显著提高了具身控制任务的成功率。
EmbodiedGPT由四个部分组成
- frozen vision model ,encode当前观测的视觉特征
- frozen language model,执行自然语言QA、caption和embodied planning任务
- embodied-former with a language mapping layer,将视觉和具身指令对齐,提取与任务相关的实例级特征&&生成的低级控制规划
- policy network,负责基于任务相关的特征产生低级动作,使代理能够与环境有效地交互
为了增强EmbodiedGPT在生成包含子目标序列的可靠计划方面的性能,在frozen LLM上实现了prefix tuning,以鼓励生成更可执行的计划
Method
EmbodiedGPT使用预训练的ViT作为视觉编码器,并使用预训练的LLaMA作为语言模型。 如上图,Embodied-Former是视觉和语言域之间的桥梁,将embodied queries、text queries和vision transformer的输出feature通过attention交互,然后通过语言映射层将其映射到语言模态。这些embedding喂给冻结的 LLaMA,用于video caption, video QA, and embodied planning。 然后使用生成的规划通过 embodied-former从视觉模型编码的视觉标记中查询高度相关的特征。 这些features通过下游策略网络生成任务执行的低级控制命令。
为了提高一系列具体任务的性能,我们引入了一种视频语言预训练范式,它利用认知思维链从第一人称视频输入中产生具体计划。 我们将此任务制定为标准的 VQA(视觉问答)任务,以“how to do the task that + original caption”为问题,并以embodied planning为答案。 该框架丰富了具身规划和标准Visual QA 任务的数据,鼓励embodied-former捕获更适合具身控制任务的特定于任务的特征。
Framework
Training 过程包括三个阶段,前两个阶段侧重于基本认知和响应技能的预训练,第三阶段涉及在 EgoCOT 上使用第一人称视频文本数据训练具身AI 任务
第一步是图像-文本对话对齐预训练,数据集有COCO Caption、CC 3M->59.5w图文对、LAION-400M用BLIP-2 re-caption 49.1w图文对,将视觉和语言大模型冻住,只训练embodied-former和language projection。第二步是增强模型理解和生成更复杂句子的能力,并提高其推理能力,更新language projection 和 prefix language adapter,利用“LLaVA_Instruct_150K” 提供的“Complex_Reasoning_77k”和多轮对话数据集来实现这一点。
第三步是使用 EgoCOT 具身“思想链”训练,首先使用 Conv3D 将预训练视觉模型从阶段 2 传输到视频编码器,每个视频时间偏移量为 2,总帧数为8。然后使用“思维链”视觉语言预训练范式,其中模型将视频的 8 个关键帧作为输入,连同任务描述、embodied planning和结构化动词-名词对(如Listing 1)作为prompt。在此阶段,对patch embedding、语言投影层和prefix language adapter进行微调,以更好地捕获时间信息。
Model Architecture
Embodied former将最相关的视觉数据传递给语言模型的信息瓶颈。由两个子模块组成:一个用于从图像输入中提取特征,另一个用于从文本输入中提取特征。 使用 N 个可学习的embodied query嵌入作为Embodied former的输入,通过交叉注意层与图像特征交互,通过自注意层与文本特征交互。随后将输出embedding1通过全连接层映射到LLM的维度作为embedding2。这个embedding2是“语言模型的软视觉prompt”,将整个交互解耦为视觉查询交互和查询文本交互。最终的embodied plan由语言模型以embedding2和文本提示(如Listing 1 所示)作为输入来推断。
对于旨在生成与环境交互动作的低级控制,embodied plan作为embodied-former的输入文本,以查询与任务相关的实例级别特征。随后,代理能够生成控制命令,该函数结合了特定于实例的信息和全局上下文。 全局上下文是使用在 ImageNet 上预训练的 ResNet50 模型推断的,采用全局平均池化。策略网络就是个MLP,它的输出由特定的可执行动作组成,例如笛卡尔坐标系中的位置和速度。
Training Settings
BLIP-2的image encoder,ViT-G/14 model from EVA-CLIP的倒数第二层。语言模型是LLaMA-7B模型用 ShareGPT 数据集和 GPT-4 生成的 52K 英语指令数据集微调后的。都转成FP16
Creating EgoCOT and EgoVQA Dataset
洗数据分成两步,在第一阶段,过滤掉旁白缺失或非常短的视频(分别占文本的 7.4% 和 0.9%),以及带有不确定标签的视频(占文本的 4.0%)。 还排除了没有人与对象交互的视频,例如看电视或走路。然后利用EgoVLP分割视频,每段视频对应一个完整动作。对于每个视频片段,我们为 ChatGPT 提供prompt和相应的caption,以生成合理详细的具身规划。对于每个prompt,我们执行五次采样迭代。
为了确保生成的规划指令的质量进行了第二阶段的数据清洗。 使用 CLIP 模型来评估视频和文本对之间的相似性。 对于每个视频,我们将其与五个潜在的具身计划进行比较,并选择相似度最高的一个作为具体计划的相应标签。 然后,过滤掉相似度低于阈值的video caption-planning对,使我们的数据清理过程更进一步。 删掉了视频和caption之间以及视频和planning之间相似度较低的数据。