想象你走进一家米其林后厨,里面没有切菜的小工、传菜的跑堂、掌勺的大厨之分,只有一位“全能主厨”站定灶前。他抬眼扫过案板,就能认出每种食材的新鲜度;侧耳听完客人点菜,就能记住“少盐多辣”的要求;手上的锅铲一掂,火候自然而然就到位了。更妙的是,他嘴里说出的每句“把左边红色盘子递过来”“再颠三下勺”,都能被后厨的帮工瞬间变成具体动作。看、听、动,在他身上不是三个环节,而是同一种“灶台语言”的三种表达。 Google 推出的 PaLM-E,就是 AI 世界里这样一位“全能主厨”。它是一个具身多模态大模型:把摄像头画面(视觉)、自然语言指令(语言)、机器人状态(触觉)统统切成 token,拼成一条序列,再像写菜谱一样逐字逐句地“写”出机器人的动作。这种被称为 VLA(Vision-Language-Action,视觉-语言-动作)模型的思路,让 AI 第一次有可能从“只会看图说话”变成“看得懂、想得清、动得了”。
对 AI 从业者来说,理解 PaLM-E 的多模态 token 融合与自回归动作生成,是进入具身智能领域的钥匙,也是设计下一代“能干活”的机器人系统时绕不开的必修课。
目录
可视化演示
演示多模态token化ViT视觉编码与文本融合、自然语言指令规划推理分解执行、规模效应562B参数与灾难性遗忘三大模式交互动画。
本节配有交互动效(进入视口后自动加载,约 3KB)。
多模态token化与信息融合 ViT将图像分割为patch线性投影为视觉token序列 文本token与机器人状态token统一输入PaLM处理 tokens = [img_patches; text; robot_state] 多模态token化实现视觉语言动作统一表征
概念起源:从 VLA 到 PaLM-E
想象你走进一家新开的餐厅,后厨里站着一位“全能主厨”。他不需要像传统厨房那样,由切菜师傅、传菜员和掌勺师傅接力配合——他一个人全包了:抬眼扫过案板就能认出每种食材,侧耳听客人说“少盐多辣”就能记住要求,手一掂锅就把火候调整到位。看、听、动在他身上浑然一体,没有谁先谁后,也没有中间转述。
在 AI 领域,这种“三位一体”的建模思想正是 VLA 模型——Vision-Language-Action(视觉-语言-动作)模型。它要回答一个根本问题:如何让同一个模型同时理解“看到了什么”“用户要什么”和“接下来怎么做”。传统机器人是流水线:感知模块输出检测框,规划模块算轨迹,控制模块发指令,每个模块各有各的“方言”,衔接处很容易丢信息。
PaLM-E 正是 Google 在 2023 年给出的回答。它以 5400 亿参数的 PaLM 语言模型为大脑,接上视觉 Transformer(ViT)作为眼睛,再把机器人状态当作“触觉”,端到端训练出一个能直接输出动作的具身多模态模型。它不把“感知-规划-控制”拆成三个模块,而是用一个模型打通全部链条。
就像全能主厨不需要四个人接力,PaLM-E 也不需要在视觉系统、语言系统和控制系统之间反复搬运信息。它把整间厨房的问题压缩成一道概率题:看到什么、听到什么、手摸到什么,下一步最该做什么——一次建模,全部回答。
- 条件概率的意义在“看见食材 v、听懂指令 l、感受到状态 s”这三个条件同时成立时,动作 a 出现的概率。这个概率越大,说明动作越合理。
- 视觉与语言变量v 是摄像头画面经视觉编码器提炼后的特征,l 是自然语言指令的嵌入向量,两者都被压缩成高维向量。
- 动作变量a 不是底层电机电流,而是高层的“动作语言”,比如“把夹爪张开 5 厘米”“向左移动 30 厘米”。
架构组成:三位一体的模型骨架
全能主厨有三样本事:一双精准的眼睛,能瞬间抓住“这是西红柿、熟度七分”这样的关键特征;一肚子菜谱,记得的不是固定脚本,而是“盐少许、大火收汁”这种可迁移的经验;一个会统筹的大脑,能把眼睛看到的和脑子里记住的对齐起来。三样缺一不可。
PaLM-E 的骨架也正是这三块。视觉端用 ViT(Vision Transformer)把图像切成小方块,每个小方块变成一个向量 token,相当于主厨“扫一眼”后形成的印象;语言端用 PaLM 提供强大的文本表示,相当于主厨肚子里的菜谱知识;中间还有对齐层,把视觉向量和文本向量映射到同一个语义空间,让“图像里的红色方块”和文本里的“红色方块”在模型中成为相邻的表达。
这套架构最聪明的地方,是让“眼睛”和“大脑”共享同一套深层网络。主厨不需要把看到的东西先翻译给一个不会看的厨师,再让那个厨师去炒菜——他自己就是那个把“看”和“做”统一起来的人。
- 视觉编码器ViT 把图像切块并映射为 M 个 token,每个 token 是 d 维向量,压缩了局部视觉信息。
- 语言主干PaLM 把文本 token 映射到同样的 d 维语义空间,N 个文本 token 组成一个矩阵。
- 状态嵌入机器人的关节角、夹爪开合、坐标位置也被嵌入成 K 个 token,让模型“知道自己的身体在哪”。
- 拼接操作三个矩阵在序列维度方向首尾相连,形成一条融合了视觉、语言、状态信息的完整序列。
Token 统一:让模态说同一种语言
厨房里最吵的往往是“方言”:切菜师傅说“砧板”,传菜员说“托盘”,掌勺师傅说“火候”,三个人各讲各的,容易误事。全能主厨定了规矩:所有人统一说“灶台语言”,每件事都用固定格式的一句话描述。这样“食材从左边递来”和“大火翻炒十秒”才能记在同一本笔记本上。
Token 统一正是 PaLM-E 的灵魂。图像被切成小方块后,每个小方块映射成一个“图像 token”;文本本身就是 token 序列;连机器人状态也被量化映射成“状态 token”。三者不再有模态之分,统一变成一串数字编号。这种处理的妙处在于:Transformer 不关心 token 来自哪里,它只看到一条长长的序列。
把三种模态翻译成同一种“灶台语言”之后,模型内部的注意力机制就能自由地建立跨模态关联。看到“红色方块”的图像 token,会自动“注意”到文本 token 里“红色”这个词,这正是主厨把眼前食材和客人嘱咐对应起来的瞬间。
- 图像 Token图像被切成 m 个小块,每个小块对应一个向量 vᵢ,它们是“像素级”的压缩表达。
- 文本 Token自然语言被分词器切成 n 个 token,每个 tⱼ 是语义空间中的一个点。
- 状态 Token机器人当前的位置、姿态等状态量被离散化为 k 个 token,每个 sₖ 描述一种身体状态。
- 整体序列三组 token 拼接后形成一条长度为 m+n+k 的矩阵,喂给 Transformer 做自注意力计算。
动作决策:逐字“写”出机器人的动作
主厨出菜不是一挥而就,而是按顺序一道一道来:先热锅,再下油,然后倒食材,最后调味。每一步都要看着前面已经完成的步骤,才能决定下一步放什么。如果一次把所有菜同时下锅,厨房早就乱成一团。
PaLM-E 生成动作也是这样“逐字”进行的。它把动作表示成动作 token 序列,每一次只预测下一个 token,把预测结果拼回上下文,再预测再下一个。这个过程叫自回归生成。训练时,模型被要求最大化每一步预测正确 token 的概率,也就是最小化自回归交叉熵损失。
出菜要一道道上,动作也要一步步来。自回归生成让模型每走一步都能回顾全局:前面说了什么、看了什么、身体在哪,然后才决定下一个 token 是什么。这种“边看边做边想”的方式,让 PaLM-E 能应对复杂的长程任务。
- 输入序列 xx 是前面拼接好的图像、文本、状态 token 序列,相当于主厨面前的完整“任务上下文”。
- 已生成前缀 y<r在预测第 r 个动作 token 时,模型已经生成了前 r-1 个 token,它们构成“已做好的菜”。
- 单步对数概率模型给“下一个正确 token”打一个概率分数,取对数后衡量预测好坏,概率越高损失越小。
- 累加所有步骤把 R 步动作的所有单步损失加起来,就是整个动作序列的损失。
训练策略:多本菜谱一起练
全能主厨不是天生全能的,他年轻时拜过十几位师傅,川菜、粤菜、西餐甜点都练过。正因为练得多,他面对一道从没见过的菜,也能借川菜的辣、粤菜的鲜、西餐的摆盘,现场组合出一道新菜。
PaLM-E 的训练正是“多本菜谱一起练”。它在多个数据集上联合训练:机器人操作数据教会它动作输出,视觉问答数据教会它看图理解,字幕数据教会它描述场景,常识推理数据教会它世界规律。所有任务共享同一套参数,用加权求和的方式合并损失。更关键的是,训练时会对不同任务施用不同权重,避免某个数据集的任务淹没其他任务。
这种“一徒多师”的训练方式,让模型的每一层参数都同时吸收多种知识。PaLM-E 的 5620 亿参数不是用来死记硬背某个任务的,而是用来建立一个通用的世界模型——这也是它后来能在陌生任务上表现亮眼的根本原因。
- 任务集合训练任务包括机器人操作、视觉问答、图像字幕等,形成一个多任务集合 T。
- 单任务损失每个任务都有各自的交叉熵损失,衡量模型在该任务上的表现。
- 加权求和每个任务的损失乘以权重 λⱼ 再相加,权重控制不同任务的“教学优先级”。
能力优势:见多识广的“举一反三”
见过世面的主厨,面对客人说“随便来道家常菜”,能结合冰箱里现有的食材、当季菜价和客人忌口,现场编排出一道新菜。他不会因为没做过这道菜就手足无措,而是把过去积累的经验灵活组合。这就是“举一反三”。
PaLM-E 身上也出现了类似能力。首先是语义推理:它能理解“把红色方块放在抽屉里”这类复杂指令,把语言翻译成可执行的计划。其次是跨任务泛化:一个模型在 12 个具身任务上的表现超过单任务专家模型约 4 倍;第三是少样本学习,只需少量新任务示例就能快速适配。零样本到少样本的性能提升非常明显。
主厨的“举一反三”来自多年积累的味觉记忆,PaLM-E 的“举一反三”来自多任务预训练的通用表征。少样本能力本质上是大模型在“临场发挥”——它的参数里已经存了足够多的世界知识,只需要几个示例告诉它“现在该用哪部分知识”。
- 零样本能力模型不经过任何该任务的专门数据,直接靠常识和语言理解完成任务,准确率记为基线。
- 少样本能力给出少量示例后,模型通过上下文学习快速调整输出风格与行为,准确率显著提升。
- 差距为正少样本准确率不小于零样本,证明“几个例子”就能让大模型进入状态。
工程挑战:豪华厨房的代价
米其林后厨的设备与食材成本惊人,一台专业烤箱、一块进口牛排、一位大厨的薪资,都不是普通餐厅负担得起的。全能主厨再厉害,也得有位雇主愿意支付昂贵的装备费和运营成本。
PaLM-E 的工程挑战与之类似。首先是算力:5620 亿参数意味着每次推理都要动用数十张甚至上百张 GPU,普通实验室根本跑不起来。其次是数据:真实机器人操作数据采集慢、标注贵,一小时的灵巧操作数据可能需要数天才能收集。最后是安全:动作 token 的分布与自然语言 token 有明显差异,一旦模型输出错误动作,现实中的机器人可能造成物理破坏。
豪华厨房的成本决定了它暂时只属于少数顶级餐厅。PaLM-E 也更多停留在研究原型阶段,距离在千家万户的扫地机器人上跑起来仍有距离。算力、数据与安全的三角约束,正是下一代 VLA 模型要攻克的“柴米油盐”。
- 层数与维度模型层数 L 越多、隐藏维度 d 越大,推理计算量越高;d 的影响是平方级的,是最主要的开销来源。
- 序列长度输入 token 越长,自注意力计算量越大。多模态拼接让序列更长,成本进一步上升。
- 正比关系总计算量约等于层数、维度平方与序列长度三者的乘积。
AI 应用场景
家庭服务机器人“听指令整理房间”
阶段:多模态感知 + 任务规划
解决的问题:传统机器人需要为人预先编程每个动作,换个新指令就失效。PaLM-E 将“把红色袜子放回抽屉”这类自然语言直接与视觉识别、运动规划结合,用户不需要懂任何编程。
具体案例:用户说“把桌上的苹果放到蓝色碗里”,机器人先用 ViT 识别桌面上苹果和蓝色碗的位置,再与语言指令中的“苹果”“蓝色碗”对齐,自回归生成“抓取苹果→移动到蓝色碗上方→松手”的动作 token 序列。
智能产线的视觉分拣与抓取
阶段:视觉定位 + 动作生成
解决的问题:产线上工件种类多、光照变化大,传统视觉分拣需要为每类工件单独训练检测器,换产时标注成本极高。
具体案例:机械臂末端加装相机,工程师用提示词描述“抓取所有六角螺栓”,PaLM-E 零样本完成目标识别、位姿估计与抓取动作生成,大幅减少换产时的模型迭代工作量。
多模态世界模型辅助机器人导航
阶段:感知融合 + 高层规划
解决的问题:送货机器人在复杂的楼道环境中,需要同时理解画面、门牌文字和自身位置,传统方案难以把三类信息统一起来。
具体案例:机器人收到“去 302 房间送快递”指令后,PaLM-E 将当前相机画面、门牌文本、里程计状态拼接成一条 token 序列,自回归生成“直行→右转→停在 302 门前”的导航动作序列,再交给底层控制器平滑执行。
Python 演示
import numpy as np class ToyPaLME: """玩具版 PaLM-E:演示'多模态Token拼接 + 自回归生成'的流程。 真实 PaLM-E 用千亿参数 Transformer 学习 token 间的依赖, 这里用一张随机矩阵模拟'语言模型',仅展示核心思路。 """ def __init__(self, vocab_size=16, seed=42): self.vocab_size = vocab_size rng = np.random.default_rng(seed) self.logits_table = rng.normal(0, 1, (vocab_size, vocab_size)) self.gc_count = 0 def softmax(self, x): e = np.exp(x - x.max()) return e / e.sum() def visual_tokens(self, img, num=4): # 图像一维数组切成 num 块,各块均值量化成视觉 Token h = len(img) // num pooled = [img[i * h:(i + 1) * h].mean() for i in range(num)] return [int(v * (self.vocab_size - 1)) for v in pooled] def predict_next(self, seq): # 用最后一个 token 预测下一个 token(贪心解码) self.gc_count += 1 logits = self.logits_table[seq[-1]] return int(np.argmax(logits)) def run(self, image, text_tokens, state, max_new=5): # 关键:图像->Token、状态->Token、文本->Token 拼接成一条序列 seq = text_tokens + self.visual_tokens(image) + [state % self.vocab_size] actions = [] for _ in range(max_new): nxt = self.predict_next(seq) seq.append(nxt) actions.append(nxt) return actions if __name__ == "__main__": model = ToyPaLME() fake_img = np.random.rand(8) # 模拟 8 个像素 text = [2, 5, 9, 3] # 文本 Token:"把苹果拿起来" actions = model.run(fake_img, text, 7, max_new=5) print("动作序列:", actions)
self.logits_table = rng.normal(0, 1, (vocab_size, vocab_size))用随机矩阵模拟“语言模型”对下一 token 的偏好关系。def visual_tokens(self, img, num=4)把图像压成 4 个量化视觉 Token,对应 PaLM-E 里 ViT 对图像的切块操作。seq = text_tokens + self.visual_tokens(image) + [state % self.vocab_size]三种模态拼接成一条序列,这就是“Token 统一”。def predict_next(self, seq)每次只根据最后一个 token 预测下一个,体现自回归生成。for _ in range(max_new): nxt = self.predict_next(seq); seq.append(nxt)生成的动作 token 拼回序列继续预测,像主厨一道道出菜。
常见误区
误区PaLM-E 既然是多模态模型,那它应该能像人一样处理连续的完整视频流,像看监控一样理解整个动态场景。
正解论文中 PaLM-E 的输入主要是离散的静态图像帧(或多视角图像),配合文本和机器人状态,而不是长时间连续视频。它把每帧图像切成小块转成 token,真正的时序视频理解不是它的强项。
为何常见:“多模态”在大众语境里常被理解成“像人一样五官全开”,忽略了模型内部其实只处理离散 token 序列这个基本事实。
误区机器人模型就应该输出电机角度、力矩这些底层控制信号,PaLM-E 也应该是这样的端到端控制器。
正解PaLM-E 输出的是语言化的动作 token / 高层规划语句,例如"pick up the red block",再通过解码器把离散 token 翻译成执行器指令。它不直接输出底层 PWM 控制信号,底层控制仍交给传统控制算法。
为何常见:大众直觉认为“动手”就等于底层电机控制,忽略了大语言模型擅长的是高层语义推理与语言化动作生成。
误区为了让模型理解得更清楚,应该把图像切得非常细,塞进尽量多的图像 token,反正多模态就是多多益善。
正解图像 token 越多,序列越长,计算量越大。论文中明确采用了降低视觉 token 频率的策略,避免大量视觉 token 淹没语言 token 的相对占比,同时显著降低训练成本。视觉 token 数量与效果并非单调正比。
为何常见:日常经验告诉我们“信息越多越好”,但在序列模型里,长度直接决定算力开销,过度堆视觉 token 反而会破坏模态间的平衡。
误区能控制机器人的模型,一定是像 AlphaGo 那样用强化学习在仿真环境里不断试错练出来的。
正解PaLM-E 的核心训练方式是监督式的自回归语言建模损失,多任务联合交叉熵,不依赖强化学习。虽然业界常将 RL 用于后续微调,但 5620 亿参数的基础能力来自大规模预训练 + 指令数据。
为何常见:“机器人 + AI”的既有印象总和强化学习绑在一起,加上 DeepMind 的很多工作都强调 RL,容易让人张冠李戴。
误区论文发了、代码可以下载,我只要有一块普通 GPU 就能跑起来,部署到自己的机器人上。
正解5620 亿参数的单次推理需要多卡甚至集群级显存,数据与部署硬件门槛极高。开源社区通常只能复现十亿级以下的“迷你 PaLM-E”或借助 API,端到端部署在真实机械臂上的成本非常高。
为何常见:论文 demo 视频给人“开箱即用”的错觉,忽略了背后庞大的算力投入与工程改造,这也是大模型落地普遍存在的认知落差。
面试题
Q1. PaLM-E 中的字母 "E" 代表什么?
- A.Embedding(嵌入)
- B.Embodied(具身)← 正确答案
- C.Encoder(编码器)
- D.Environment(环境)
答案:B。PaLM-E 的 E 是 Embodied(具身),强调模型能够控制机器人实体在物理世界中行动。“嵌入”是通用概念,“编码器”是组件,“环境”是外部条件,都不是 PaLM-E 命名的核心。
Q2. VLA 模型中的 V、L、A 分别指什么?
- A.View, Logic, Agent
- B.Vision, Language, Action← 正确答案
- C.Video, Label, Audio
- D.Vector, Loss, Accuracy
答案:B。VLA 即 Vision-Language-Action(视觉-语言-动作),代表输入视觉信息、理解语言指令、输出动作决策的完整链条。其他组合均非该术语的标准含义。
Q3. PaLM-E 主要把哪类信号映射为“图像 Token”?
- A.摄像头采集的彩色像素← 正确答案
- B.机械臂的关节角度数据
- C.麦克风采集的音频波形
- D.激光雷达的点云坐标
答案:A。图像 Token 来自摄像头画面的像素,切割成小方块后向量化。关节角度属于状态 Token,音频不在 PaLM-E 的输入范围内,点云通常由专门的三维模型处理。
Q4. PaLM-E 生成动作 token 的方式是?
- A.一次并行输出全部动作
- B.自回归逐 token 预测← 正确答案
- C.随机采样固定动作库
- D.查表复用历史动作
答案:B。PaLM-E 采用自回归生成,每次只预测下一个动作 token,预测结果拼回上下文继续预测,像写菜谱一样逐字完成。一次性输出或固定动作库都无法体现上下文依赖。
Q5. 下列哪些属于 PaLM-E 的输入模态?
- A.图像 token 输入← 正确答案
- B.文本指令 token← 正确答案
- C.机器人状态 token← 正确答案
- D.音频声纹 token
答案:ABC。PaLM-E 的输入是图像、文本、机器人状态三种模态,统一成 token 拼接。音频并不在 PaLM-E 的标准输入中,据此排除 D。
Q6. PaLM-E 训练时最核心的损失函数形式是?
- A.均方误差回归损失
- B.自回归交叉熵损失← 正确答案
- C.三元组对比学习损失
- D.策略梯度强化损失
答案:B。PaLM-E 把一切任务都建模成“预测下一个 token”,因此核心损失是自回归交叉熵。均方误差用于回归连续值,对比损失用于表征学习,策略梯度属于强化学习,都不是主训练目标。
Q7. 具身智能(Embodied AI)的核心目标?
- A.让模型学会自然语言对话
- B.让 AI 在物理世界中感知并行动← 正确答案
- C.让模型生成更真实图片
- D.让 AI 无需人类监督训练
答案:B。具身智能强调 AI 拥有身体,能在物理环境中通过感知和动作完成任务。对话、生图属于传统 AI 能力,无监督学习是训练方式,都不体现“具身”。
Q8. PaLM-E 相比传统模块化机器人有哪些优势?
- A.端到端共享语义特征← 正确答案
- B.支持多任务泛化能力← 正确答案
- C.少样本适配新指令← 正确答案
- D.无需任何数据集训练
答案:ABC。端到端训练让视觉、语言、动作共享语义特征,多任务预训练带来跨任务泛化,少样本能力让它快速适配新指令。但 PaLM-E 仍然需要大规模数据集训练,D 错误。
Q9. PaLM-E 实现 5620 亿参数量后面临的主要瓶颈是?
- A.图像分辨率不足
- B.推理算力和显存开销← 正确答案
- C.机械臂物理响应延迟
- D.缺少文本标注人力
答案:B。参数量越大,推理时显存占用和算力消耗越高,这是大模型部署的核心瓶颈。图像分辨率、机械臂延迟、标注人力都不是由参数量直接导致的。
Q10. PaLM-E 的模态 Token 统一带来了哪些好处?
- A.使用同一个 Transformer 处理多模态← 正确答案
- B.让语言知识迁移到动作输出← 正确答案
- C.大幅简化多模态数据标注
- D.完全消除了模型幻觉问题
答案:AB。Token 统一让图像、文本、状态都能被同一个 Transformer 处理,也让语言预训练中获得的知识能迁移到动作生成。但它并不能简化数据标注,也无法彻底消除幻觉,因此 C、D 错误。