第一部分:论文基本信息
| 项目 | 内容 |
|---|---|
| 论文题目 | PaLM-E: An Embodied Multimodal Language Model |
| 中文名称 | PaLM-E:具身多模态语言模型 |
| 第一作者 | Danny Driess |
| 主要团队 | Google Research、TU Berlin 等 |
| 发表会议 | ICML 2023 |
| 收录级别 | CCF A |
| PMLR 卷号 | Volume 202 |
| 页码 | 8469–8488 |
| 最大模型规模 | 562B |
| 代码和权重 | 未完整开源 |
| 模型定位 | Embodied VLM、高层具身推理模型 |
PaLM-E 是建立在 PaLM 基础上的模型;PaLM 是纯文本大语言模型 LLM
PaLM-E 中的字母 E 表示 Embodied,即“具身化”。
PaLM-E 保留 PaLM 作为语言模型主体,再增加视觉编码器、状态编码器和投影接口,将图像、机器人状态等连续观测转换到 PaLM 的语言 embedding 空间:
图像/机器人状态→编码器→与文字token同维度的向量→PaLM
因此,PaLM-E 可以理解为:PaLM-E=PaLM+视觉/状态编码器+多模态联合训练
PaLM论文解读:
https://blog.csdn.net/weixin_74009895/article/details/163689758?spm=1011.2415.3001.10575&sharefrom=mp_manage_linkhttps://blog.csdn.net/weixin_74009895/article/details/163689758?spm=1011.2415.3001.10575&sharefrom=mp_manage_link
第二部分:解决的问题
如何让预训练 LLM不再只理解文本,而是直接接收图像、机器人状态等真实世界连续感知信息,从而进行 grounded embodied reasoning 和机器人高层规划?
SayCan 这类方法虽然通过 robot policy 和 affordance function 对 LLM 进行 grounding,但LLM 本身仍然只有文本输入,对于依赖场景几何结构的任务是不够的
RT-1 没有显式 robot state/action 输入;PaLM-E 可以输入机器人状态 robot state(不是action)
第三部分:PaLM-E创新点
(1)整体框架
PaLM-E = High-level Embodied Reasoner高层具身推理器,不是直接 low-level VLA controller
Text+Images+Robot / Object State+3D Scene Representation(文本+图像+状态/连续传感器观测) ↓ Encoder ↓ 映射到 Language Embedding Space ↓ PaLM-E ↓ Autoregressive Text Output ↓ ┌──────────────┬────────────────┐ ↓ ↓ VQA Answer High-level Robot Plan ↓ Low-level Policy ↓ Robot Actions(2)multimodal tokens和Multimodal Sentence
PaLM的输入原本都是文字token:
文字token经过embedding映射:
得到:
例如:Push the green block to the bottom left.经过tokenizer和embedding后,变成一串连续向量:每个向量都是:
也就是:
问题是:机器人不能只看语言指令,它还需要看当前场景。
PaLM-E增加了视觉和状态编码器(后面会说到统一成通用的连续观测编码器):
然后把它们放进同一个序列:
表示文本、图像、机器人/环境 state 都已经被编码成了 PaLM 能处理的embedding,然后作为同一个序列送进PaLM
关键点是:
图像本身不经过SentencePiece,也没有先变成文字;视觉编码器直接把图像映射到PaLM的语言embedding空间。
PaLM-E论文正是把视觉、状态等连续观测转换成与文字embedding同维度的向量,再与文字token(multimodal tokens)交错组成“多模态句子”(Multimodal Sentence)
例如提示:Given <image>, push the green block to the bottom left.
在模型内部可以概念化为:
所以技术链条是:
PaLM: 文字 token → embedding → Transformer → 文字 token PaLM-E: 文字 embedding + 图像 embedding + 状态 embedding → 同一个 Transformer → 文字输出如下所示:
- 橙色:普通文字 token;
- 绿色
<emb>:机器人状态、物体状态或其他连续观测;- 蓝色
<img>:图像输入。图中下面那一排橙色、绿色、蓝色小块,就是这些交错排列的输入向量:
这就是论文中的:Multimodal Sentence,多模态句子
(3)通用的连续观测编码器
PaLM-E增加通用的连续观测编码器(具体到不同模态会有不同的):
:连续观测空间;
:观测编码器;
:PaLM的embedding空间;
:一次观测被编码成多少个向量。
通用编码器输入来源主要包括:
- 图像
- robot / object state
- 其他 continuous sensor observations
但文本走的是上面的 PaLM 原来的 token embedding,文本不使用这个通用的连续观测编码器
假设输入是一张图像
,经过视觉编码器后:
每一个视觉向量都满足
,这些向量分别携带不同图像区域、物体或场景信息。
整理汇总一下也就是:
正常文字 token:
连续 observation(Image / State / Sensor):
所以整个输入统一成:
论文就是通过这种方式,把观测信息observation embedding和文字信息word embedding统一拼成一条输入序列,一起送进语言模型LLM。
(4)为什么必须与文字embedding同维度?
假设使用PaLM 8B:
那么文字token的向量是:
图像编码器最终产生的每个向量也必须是:
机器人状态向量同样需要被投影为:
这样它们才能作为同一种形式的输入,进入同一个Transformer。
同维度不代表图像向量变成了文字,也不代表某个图像向量对应某个具体单词。
它只是说,PaLM内部要求每个输入位置都用相同长度的向量表示。
(5)使用的预训练模型
它不是:
Robot data ↓ 从头训练一个 multimodal transformerPaLM:大语言模型,负责推理;
ViT:大型视觉编码器,负责图像;
MLP:小型普通神经网络,负责把结构化 state 数值“翻译”成 PaLM embedding。
最大的 PaLM-E:
PaLM 540B + ViT 22B = PaLM-E 562B。
(6)输入输出和训练损失函数
PaLM-E的输入可以是多模态句子:图像向量+状态向量+文字token,输出是文本token。
输入前缀:
Given <image>, what should the robot do?训练目标:
Push the green block to the bottom-left corner.模型仍然使用自回归语言建模目标:
使用交叉熵损失函数计算目标文本部分:
其中:
:给定前面的多模态输入前缀
,模型一个 token 一个 token 地生成后面的目标文本
:需要模型生成的目标文本。
图像向量本身不是预测标签,它们是条件输入。
对于特殊占位符怎样被替换问题:
训练样本的文字中可先写:
Given <img>, what should the robot do?在进入模型时,<img>这个位置不会作为普通文字token处理,而是被视觉编码器产生的一组向量替换:,所以训练数据表面上可以用特殊标记组织,模型内部实际接收的是连续视觉向量。
(7)模型训练:全参训练以及微调
| 配置 | PaLM | ViT / Encoder | Projector / MLP |
|---|---|---|---|
| End-to-end finetune | 训练 | 训练 | 训练 |
| LLM frozen | ❄️冻结 | 训练 | 训练 |
| OSRT frozen variant | 可冻结 | OSRT representation 冻结 | 只训练 projector |
PaLM-E通常包含三部分:观测编码器+投影层
+PaLM语言模型
“观测编码器”其实就是一个总称:
- 如果输入是图像,观测编码器可以是ViT;
- 如果输入是State 向量,观测编码器可以是MLP;
- 如果输入是 3D / object-centric scene representation,也可以是OSRT(物体场景表征 Transformer)。
Projector 的作用是把“非文本模态编码器输出的特征”映射到 PaLM 的文本 embedding 空间。文本本身通常不需要再经过这个 projector,它本来就在 PaLM 的 embedding 空间里,以图像为例:
①冻结PaLM
固定语言模型参数:不更新,只训练:
,即:更新视觉编码器和投影层
这种情况下,编码器需要学会生成一种PaLM已经能够理解的“视觉软提示”。
可以理解为:
PaLM保持原来的语言能力,视觉编码器努力把图像翻译成PaLM内部容易处理的向量形式。
优点是:
- 更好保留原始语言能力;
- 需要更新的参数更少;
- 不容易发生语言能力灾难性遗忘。
局限是:
- 机器人任务适应能力有时不如全模型微调;
- 冻结的PaLM不能充分改变内部表示来适应具身任务。
②端到端微调
同时更新:,也就是视觉编码器、投影层和PaLM一起训练。
优点是:
- 模型可以更充分适应机器人和多模态任务;
- 视觉信息与语言推理可以共同调整;
- 某些机器人规划任务表现更好。
风险是:
模型可能因为大量适应新任务,而损失原有语言能力。
这叫:Catastrophic Forgetting,灾难性遗忘
论文发现,模型规模越大,这种语言能力损失越小。最大规模模型在多模态训练后能够更好地保留PaLM原来的语言能力。
Figure 6比较了PaLM和PaLM-E在一般语言生成任务上的差距。
大致趋势是:
- PaLM-E-12B在多模态训练后,语言能力下降较多;
- PaLM-E-562B的下降明显更小。
它支持的结论是:
模型规模越大,多模态微调后越容易保留原始语言能力也就是更少的catastrophic forgetting,灾难性遗忘。
(8)机器人控制(输出文本如何转化为动作控制)
需要一个独立的低层策略:
完整过程是图像+指令→PaLM-E→高层文字子目标→
→机器人动作
PaLM-E输出:
Push the green star to the bottom-left corner.低层策略输入:当前图像+“Push the green star to the bottom-left corner”
低层策略输出:(代表的是沿着3个方向的移动大小)
PaLM-E论文明确假设存在可执行一组低层技能的策略或规划器。PaLM-E负责选择和排列这些技能,所以可以被理解成一个高层策略。
但它不是只在任务开始时规划一次,而是可以不断根据新观测进行重规划。
过程是:
:当前图像或机器人状态;
:PaLM-E产生的语言子目标;
:低层策略产生的实际动作;
:执行之后的新观测。
然后再次循环:PaLM-E重新判断
执行过程中,有人把积木移走了,机器人获得新图像后,PaLM-E可以发现积木位置发生变化,重新生成合适的子目标。
移动操作任务:
任务是:
Bring me the rice chips from the drawer.
PaLM-E逐步生成:
Go to the drawers → Open the top drawer → Take the rice chips out → Bring them to the user → Put them down中途有人把薯片重新放回抽屉,模型根据新图像重新规划,然后继续执行。
这说明它不是只生成一次计划,而是:
观察→生成下一步高层指令→低层策略执行→重新观察→重新规划桌面操作任务:
图中还展示:
- one-shot任务;
- zero-shot任务;
- 新物体组合;
- 未见过的玩具乌龟等目标。
PaLM-E向低层策略输出语言子目标,低层策略再生成实际机器人动作。正文描述中,PaLM-E约以1 Hz产生高层语言子目标,低层策略以5 Hz输出低层动作。
第四部分:实验结果
(1)PaLM-E 的不同 Observation Encoding 方式
State → MLP,结构化状态输入
ViT+TL → 图像输入
ViT-4B → 图像输入
OSRT → 3D/Object-centric 场景输入
这样就完全不会产生:
不同输入表示效果不同:
结构化状态、普通ViT、面向对象表示和OSRT各有差异。OSRT等对象级表示在需要精细场景几何推理时可能更有效。
同一种ViT,训练数据不同,结果差别很大:
例如ViT-4B:
- single robot;
- full mixture。
完整混合训练的规划性能明显更好。
因此,模型效果不仅取决于视觉编码器,还强烈依赖:
预训练方式+联合训练数据\text{预训练方式+联合训练数据}预训练方式+联合训练数据
①State Estimation Vectors:结构化数值状态向量
最简单的情况是,机器人已经获得结构化状态:
例如状态向量中可能包含:
这些信息可能表示:
- 机器人自身状态;
- 物体位置和姿态;
- 物体大小;
- 物体颜色;
- 场景中已估计出的结构化属性。
PaLM-E用MLP将其映射到语言embedding空间:
或者映射成多个向量:
这种方式的优点是输入非常明确,但前提是系统已经知道物体的准确状态。
②Vision Transformer:直接处理RGB图像
更通用的方法是直接输入图像:
ViT会把图像划分成patch,并产生一组视觉特征:
:视觉token数量;
:ViT自身的输出维度。
但ViT输出维度不一定等于PaLM的:,所以增加一个可学习投影层:
,最终:
于是每个视觉token都变成PaLM能够接收的维度。
流程是:RGB图像→ViT视觉特征→投影层→PaLM embedding空间
③Object-Centric Representations:面向对象的表示
普通ViT通常按照图像网格或patch生成特征,但机器人任务需要围绕具体物体推理,例如任务:
把绿色积木放在黄色积木左边。
模型需要区分:
- 哪一个是绿色积木;
- 哪一个是黄色积木;
- 两者的位置关系;
- 哪个物体应该被移动。
因此,论文还研究了面向对象的输入表示。可以写成:
每组向量专门对应某个对象,而不是对应图像中的固定网格区域。
一种方式是使用已知的物体分割mask:,其中
是第
个物体的mask,再分别编码:
,这样不同物体的视觉信息被明确分开。
④OSRT:3D感知的对象场景表示
PaLM-E还研究了:
Object Scene Representation Transformer,OSRT
它尝试从多视角图像中学习3D感知的场景表示,并将场景分解为不同的object slots:
:多个视角的图像;
:第
个对象槽位。
然后再经过MLP投影到PaLM的embedding空间:
这样PaLM-E获得的不只是“整张图的平面特征”,而是结构化、面向对象、带有3D信息的表示。
(2)跨任务联合训练
PaLM-E不是只用机器人数据训练。
训练数据混合包括:通用语言数据+视觉语言数据+机器人具身数据
通用语言任务:
Q: Miami Beach borders which ocean? A: Atlantic.视觉问答:
Given <image>, what is in the image? A: A bowl of fruit.图像描述:
Describe <image>. A: A dog jumping over a hurdle.机器人规划:
Given <image>, how should the robot grasp the blue block? A: First move the yellow block, then grasp the blue block.这些数据被混合训练到同一个模型中,论文的完整训练混合中,具身机器人数据只占约:8.9%
其余主要是不同类型的视觉语言数据。
机器人数据通常:
- 数量较少;
- 收集成本高;
- 场景和物体有限;
- 指令类型有限。
而互联网视觉语言数据能够提供:
- 大量物体概念;
- 颜色和属性知识;
- 空间关系;
- 常识知识;
- 视觉问答和语言推理能力。
因此,联合训练可能产生迁移:互联网视觉语言知识→机器人具身推理
例如机器人训练数据里没有见过玩具乌龟,但模型可能在互联网图文数据中学过“turtle”的视觉概念.
当用户说:
Move the green block to the turtle.PaLM-E可能仍能识别乌龟,并生成正确高层计划。
(3)主性能结果:跨机器人、跨任务与跨域等多源数据的正迁移
假设只用单个机器人数据训练,规划成功率较低。
加入:
- 其他机器人数据;
- VQA数据;
- 图像描述数据;
- 通用视觉语言数据;
之后,当前机器人的规划能力反而提升,这就是:Positive Transfer,正迁移
单独训练:
TAMP机器人 → 单独训练一个模型 Language-Table → 单独训练一个模型 移动机器人 → 单独训练一个模型PaLM-E联合训练:
多个机器人任务 + WebLI + VQA + COCO + 通用视觉语言数据 ↓ 一个共享的PaLM-E结果显示,使用PaLM和ViT预训练,再加入完整混合数据进行联合训练,多个机器人任务的性能都明显高于只使用各自领域数据训练。
它表达的是PaLM-E最重要的实验结论:视觉语言知识和其他机器人任务的数据→能够帮助当前机器人任务,这就是positive transfer,正迁移。
第五部分:Limitation → Next Paper
Limitation ①:它还是高层 Planner,不直接输出低层动作
PaLM-E 最终:
Image + Language ↓ PaLM-E ↓ Textual Plan ↓ Low-level Policy ↓ Action论文自己明确说:
在 embodied planning / control 情况下,PaLM-E 输出 text,再由已有 low-level policies 执行。
Limitation ②:Perception / Reasoning / Action 没有真正统一
为什么说PaLM-E还不是RT-2式VLA?
因为PaLM-E中仍存在明显的两层结构:PaLM-E高层文本规划+独立低层机器人策略
而RT-2进一步变成:图像+指令→同一个模型→动作token→机器人低层动作
所以PaLM-E虽然能参与机器人闭环控制,但主要是高层决策模型,而不是直接动作生成模型。
Limitation ③:机器人数据仍然稀缺
PaLM-E 已经证明:
通用 VLM/Web 数据能够 transfer 到 robotics。
但是它并没有完全解决:
怎样直接利用 Web-scale knowledge 来学习机器人控制 action?
它仍然输出高层 text plans。
于是下一篇 RT-2 会进一步解决:
既然 VLM 已经从 Web 学到了大量视觉和语义知识,能不能让 VLM 直接把 robot action 也当成 token 输出?