深夜,客人对餐厅领班说:“我饿了,想吃点热乎的。”领班心里明白,这个模糊的请求背后可能是汤、面或者炖菜。但他没有急着冲进后厨,而是先看了看厨师长今天会做什么、灶台上还有什么食材,于是排出了一道最合适的菜。这就是 SayCan 给机器人装上的“领班大脑”:大语言模型负责听懂客人的话,机器人技能库负责回答“我会做什么”,两者相乘,才变成实际行动。而 PaLM-E 更像那位“全能厨师长”——不需要领班来回传话,他自己一边看食材颜色、一边听客人要求、一边动手翻炒。本文用这个后厨故事,带你理解语言驱动机器人的两套代表性方案。

岗位关联

掌握 SayCan 与 PaLM-E,等于拿到大模型落地机器人的“最后一公里”钥匙:让语言意图真正变成物理动作。

目录
  1. 可视化演示
  2. 背景与挑战
  3. SayCan框架
  4. 概率分解
  5. 技能库设计
  6. PaLM-E架构
  7. 多模态训练
  8. 应用与评测
  9. 局限与展望
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

通过SayCan概率分解、技能库可行性评分和PaLM-E多模态融合三个模式,展示大语言模型驱动机器人行动规划的核心架构。

本节配有交互动效(进入视口后自动加载,约 3KB)。

SayCan概率分解架构 大语言模型提供动作的语言概率 P(a|l),评估语义合理性 视觉模型提供可行性 P(s|a),评估机器人能否执行 Score(a) = P(a|l) × P(s|a) 两个概率相乘选择既语义合理又物理可行的动作

背景与挑战

后厨新来的实习生能听懂“切菜”“端盘”这类明确指令,但客人一句“想吃热的”就会让它愣在原地。自然语言天然带着省略和模糊,机器人却习惯精确的数值指令。想让机器人真正干活,就要把“听懂话”和“做成事”连起来。

传统机器人依赖工程师逐条写规则,就像把每道菜的做法编成厚厚一本手册,遇到没见过的客人说法就失效。具身智能(embodied AI)强调机器人在真实物理世界里通过身体感知环境并行动。大语言模型(简称 LLM)带来语言理解和常识推理,但缺少手和眼;机器人有传感器和执行器,却缺少语言能力,两者之间存在一道鸿沟。

所以后厨需要一位会说人话的领班,也需要一位懂食材的厨师长。SayCan 和 PaLM-E 正是两种搭建这座沟通桥梁的思路。

SayCan框架

SayCan 的架构就像一个分工明确的餐厅:领班负责把客人的模糊需求转成候选菜,厨师长负责确认这些菜现在能不能做。SayCan 由语言模型和技能库协同工作。

语言模型根据指令 r 列出下一步可能动作;技能库则提供机器人真正能执行的原子动作,比如“抓取”“移动”“放置”。原子动作是不能再拆成更小步骤的基本操作,像菜谱里的“切段”“焯水”一样清晰。

SayCan 不会一次生成整条长计划,而是循环地执行:观察当前状态 s,对每个候选技能打一个分,选最高分执行,然后再次观察。这样的闭环让机器人能应对执行中的意外。就像领班隔着传菜口和厨师长不断确认:下一步做什么?能做到吗?直到整桌菜全部上齐。

概率分解

客人说“想吃辣但又不要太油”,厨师长表示只有微辣锅底、油量偏多的菜。领班不会点全辣,也不会硬点一道厨师不会做的菜,而是把两个条件叠在一起。SayCan 的判断依据正是概率分解。

对当前状态 s 中的候选动作 a,以及用户指令 r,系统计算一个综合得分,表示这个动作有多值得执行:

含义很直观:第一项让动作贴合指令,第二项让动作贴合现实。若某一项很低,乘积会被压低,这比“先按喜好排序再做可行性检查”更尊重现实。领班给出的每一道候选菜,都要让“客人想吃”和“厨师能做”同时成立——乘法给出了两个角色的平等否决权。

Score(a∣s,r)  ∝  PLM(a∣r)×PAff(a∣s)\displaystyle \mathrm{Score}(a \mid s, r) \;\propto\; P_{\mathrm{LM}}(a \mid r) \times P_{\mathrm{Aff}}(a \mid s)
  1. 综合得分$\mathrm{Score}(a \mid s, r)$ 表示在当前状态 s 下执行动作 a 与指令 r 的匹配程度,分数越高越优先。
    Score(a∣s,r)\mathrm{Score}(a \mid s, r)
  2. 与指令相关$P_{\mathrm{LM}}(a \mid r)$ 是语言模型估计的概率,回答“这个动作是不是完成指令的合理下一步”。
    PLM(a∣r)P_{\mathrm{LM}}(a \mid r)
  3. 与状态可行$P_{\mathrm{Aff}}(a \mid s)$ 是可行性概率,回答“机器人现在有没有把握做到”。
    PAff(a∣s)P_{\mathrm{Aff}}(a \mid s)
  4. 相乘两个概率相乘。一个为 0,结果就是 0;只有两个都高,动作才会被选中。
    PLM(a∣r)×PAff(a∣s)P_{\mathrm{LM}}(a \mid r) \times P_{\mathrm{Aff}}(a \mid s)

技能库设计

厨师长不能凭空变出菜,后厨有本拿手菜本,每道菜写清楚食材和做法。机器人的能力边界也来自一本技能库。技能库是预定义的原子动作集合,例如“抓取杯子”“移动到桌子”“放置到抽屉”。

每个技能带有前置条件和效果描述,像菜谱里的“需要鸡胸肉”“需要中火”。在真实系统里,技能要与感知绑定:“抓取杯子”需要视觉定位杯柄并判断夹爪是否合拢;“倒水”需要确认杯口朝上。技能描述越接近可验证的物理状态,可行性概率的估计就越准。

技能库里没有的动作,语言模型再聪明也选不出来。拿手菜本决定了餐厅上限,技能库决定了机器人能力边界,语言模型只在这条边界内做选择。

PaLM-E架构

PaLM-E 更像全能厨师长:他不用领班传话,自己一边看锅里颜色,一边听客人要求,一边翻动锅铲。所有信息在进入大脑时已经融为一体。

PaLM-E 是一种多模态大模型,输入图像和文本,输出文本或动作标记。关键在于,图像不是被转成一句描述再给语言模型,而是被切块编码成视觉标记。这些视觉标记与文本指令标记拼接成同一个序列,送进同一个 Transformer,由模型自回归地逐标记预测后续内容。

当模型输出“拿起”时,它已经看过桌子上的杯子和指令文本。因为视觉和语言在每一层注意力中交互,它能回答“杯子在桌上吗”这类需要看图的问题。全能厨师长的眼、耳、手虽然各司其职,但从感知到决策都在同一个大脑里完成,减少了传话损耗。

多模态训练

全能厨师长不是天生的,他小时候既啃菜谱,也在灶台边看火候、尝咸淡,最后把书本知识变成身体记忆。PaLM-E 的训练也类似:先用互联网上的图文数据获得语言和视觉基础能力,再用真实机器人操作数据做微调。

两类数据都变成 token 序列,在同一个模型里更新参数。训练目标是让模型学会自回归预测下一个标记:

通过这样的目标,图像标记和文本标记不再是两种孤立特征,而是在网络深处形成联合表征。机器人遇到没有见过的桌面布局时,也能借助互联网图文知识泛化。就像厨师长把菜谱里的抽象描述和灶台上的生熟状态一起内化,同一套经验既服务语言,也服务动作。

L(θ)=−∑t=1Tlog⁡pθ(xt∣x<t)\displaystyle \mathcal{L}(\theta) = -\sum_{t=1}^{T} \log p_{\theta}(x_t \mid x_{<t})
  1. 训练目标$\mathcal{L}(\theta)$ 是整段多模态序列的预测误差,模型训练时让它变小。
    L(θ)\mathcal{L}(\theta)
  2. 逐位求和$-\sum_{t=1}^{T}$ 表示把所有位置的预测损失加起来,每一步都要尽量猜中下一个标记。
    −∑t=1T-\sum_{t=1}^{T}
  3. 对数概率$\log p_{\theta}(x_t \mid x_{<t})$ 度量模型在前文已知时正确预测当前标记的置信度;前面加负号,把最大化变成最小化。
    log⁡pθ(xt∣x<t)\log p_{\theta}(x_t \mid x_{<t})

应用与评测

新菜推出前要试菜。Google 把 SayCan 和 PaLM-E 放进真实厨房,让它们在看得见摸得着的餐桌上接受考验。典型任务包括“把薯片放进抽屉”“把苹果放到桌布上”,机器人需要连续完成移动、抓取、插入等动作,中途还可能遇到物体被挪动。

SayCan 在真实厨房中的成功率高,PaLM-E 则对未见物体展现出一定的泛化能力。评测不只关心最终成功,还记录平均步数、人工干预次数和模型给出的中间文本。比如机器人会输出“我拿起了红色杯子”,让人类理解它正在做什么,增加了安全感和可调试性。

试菜结果说明:领班加厨师长的组合能应对点菜变化,全能厨师长连摆盘都能自己看着办。两种方案各有千秋,共同证实了语言驱动机器人的可行性。

局限与展望

再强的后厨也有短板:菜单外的菜、半夜食材告急、顾客过敏禁忌,都需要人兜底。SayCan 需要预先整理技能库,新动作不能即学即用;PaLM-E 参数量巨大,推理成本高,部署在边缘机器人上很吃力。

安全与可解释性也远未成熟,一个错误的视觉标记可能引发错误动作。未来方向包括:利用世界模型模拟环境减少真实数据需求;用强化学习自动生成新技能;加入人类反馈闭环及时纠错;多机器人共享感知并协作完成大任务。

今天的每个尝试,都在把“机器人米其林餐厅”的菜单越写越厚。语言驱动机器人会一步步从研究走向厨房、仓库和工厂。

AI 应用场景

仓储拣选机器人

阶段:任务规划与动作选择

解决的问题:传统移动机器人只按固定路线和坐标移动,听不懂“把 A2 货架最上层蓝色箱子搬到打包台”这种口语指令。SayCan 先把指令分解成“导航—识别—抓取—移动—放置”技能序列,再结合当前货架状态选择可行动作。

具体案例:某电商仓的移动机械臂接收自然语言订单,货架位置被调整后,它仍能通过可行性概率重新规划抓取路径,减少人工重排。

家庭服务机器人

阶段:多模态感知与指令理解

解决的问题:老人说“把茶几上最软的垫子拿给我”,指令包含“最软”这种视觉属性。单纯语言模型看不见,传统视觉系统又不懂语义。PaLM-E 把摄像头图像和文本同时编码,模型可以直接跨模态推理。

具体案例:服务机器人先扫描茶几,识别多块垫子,结合“软”的视觉线索选择目标,再生成抓取动作并完成递送。

工业装配助手

阶段:复杂操作规划与执行

解决的问题:装配任务步骤多,零件姿态常有偏差。SayCan 的概率分解可以在每步过滤不可行动作,PaLM-E 则实时观察孔位和面板角度,避免机器人盲目硬插。

具体案例:机器人接收“安装左侧面板”指令,先调整抓取姿态,再对准螺丝孔按压。面板未对齐时,模型会改选“重新对齐”技能而不是强行推进。

Python 演示

python32 行
# 简化版SayCan规划器: 语言概率 * 可行性概率class Skill:    def __init__(self, name, lm_prob, afford_prob):        self.name = name        self.lm_prob = lm_prob        self.afford_prob = afford_prob  class SayCanPlanner:    def __init__(self, skills):        self.skills = skills     def score(self, skill):        return skill.lm_prob * skill.afford_prob     def plan(self):        ranked = sorted(self.skills, key=self.score, reverse=True)        return ranked  if __name__ == "__main__":    skills = [        Skill("拿起杯子", 0.85, 0.95),        Skill("倒水", 0.70, 0.60),        Skill("打开抽屉", 0.30, 0.98),        Skill("关灯", 0.10, 0.20),    ]    planner = SayCanPlanner(skills)    result = planner.plan()    for i, skill in enumerate(result):        s = planner.score(skill)        print(f"Top{i + 1}: {skill.name}, 综合得分 = {s:.2f}")
目的:用一个小型规划器模拟 SayCan 的概率分解,按语言概率与可行性概率的乘积为动作排序。
  1. def score(self, skill):定义综合评分函数,对应概率分解中的乘法。
  2. return skill.lm_prob * skill.afford_prob语言概率和可行性概率相乘,是 SayCan 的核心。
  3. ranked = sorted(self.skills, key=self.score, reverse=True)按总分从高到低排序,领班根据得分排候选菜。
  4. Skill("拿起杯子", 0.85, 0.95)创建技能实例,两个概率分别模拟语言模型和可行性的判断。
  5. print(f"Top{i + 1}: {skill.name}, 综合得分 = {s:.2f}")输出规划结果,展示最高分动作。

常见误区

误区我觉得直接让 LLM 说“向左走、抓杯子”就可以驱动机器人,为什么还要用 SayCan 呢?

正解LLM 擅长判断“该做什么”,但它不了解机器人此刻的关节角度、物体位置和夹爪状态。SayCan 用可行性概率作为乘法因子,让“想做”与“能做”同时成立。就像领班不会把已经停售的菜写进菜单,语言模型输出必须经过技能库与视觉反馈过滤。

为何常见:ChatGPT 生成的自然语言太流畅,容易让人误以为文本输出就等于物理世界的可执行动作。

误区可行性概率应该最后加一个保险,前面只按语言模型排序就行。

正解SayCan 在每一步打分时就把可行性乘进去,而不是先排序再过滤。可行性低但语言相关性稍高的动作,可能在最终排序中被可行但相关性足够的动作超过。乘积保持了决策的全局一致性,类似“能做且客人爱吃”必须同步考虑。

为何常见:传统机器人 pipeline 常把“规划”和“执行”拆成两个阶段,可行性被认为是执行期的事。

误区PaLM-E 只是把图片识别成文字标题,再和指令一起输入语言模型。

正解PaLM-E 把图像切块编码成视觉标记,和文本标记拼接后在同一 Transformer 中自回归生成。视觉标记会参与每一层注意力计算,空间细节得以保留,不是先转成一句 caption 再交给 LLM。就好比厨师长直接看锅里颜色,而不是听别人描述锅里颜色。

为何常见:许多多模态应用确实用“先 caption 后 LLM”的桥接方案,容易以偏概全。

误区大模型这么强,技能库可以由它自动写出,不需要预定义。

正解SayCan 的技能库是机器人真正能执行的原子动作集合,语言模型只负责从中选择并排序,并不生成物理动作原语。就像厨师长本领再大,也做不出菜谱之外的菜。新技能通常由工程师设计、仿真或真实数据训练获得,大模型不能凭空发明。

为何常见:对 LLM 能力的泛化估计偏高,加上部分端到端模型宣称“直接从像素生成动作”,容易造成误解。

面试题

Q1. SayCan解决的核心问题是什么?

单选题 · easy

  • A.让语言模型输出自然文字
  • B.让机器人听懂并选择可行动作← 正确答案
  • C.让机器人忽略环境做规划
  • D.用强化学习彻底替代语言模型

答案:B。SayCan 的核心是把语言理解与动作可行性相乘,不是生成文字或者忽略环境。A 只是普通语言模型,C 忽略了状态,D 抛弃了语言模型,因此选 B。

Q2. SayCan选择动作时使用哪两个关键概率?

单选题 · easy

  • A.语言概率与可行性概率← 正确答案
  • B.视觉概率与触觉概率
  • C.行动概率与奖励概率
  • D.推理概率与记忆概率

答案:A。语言概率衡量动作与指令的相关性,可行性概率衡量当前状态能否执行,二者相乘构成综合评分。B、C、D 都是干扰项,并不对应 SayCan 的概率分解。

Q3. SayCan中语言概率与可行性概率如何结合?

单选题 · mid

  • A.相加之后取平均值
  • B.相乘之后得到总得分← 正确答案
  • C.相减之后得到误差值
  • D.只保留语言概率值

答案:B。两个概率用乘法融合,任何一边低都会压低总分。加法允许一边补偿另一边,违背“想做”与“能做”同时成立的要求,因此 B 正确。

Q4. 下列关于技能库的说法正确的是?

单选题 · mid

  • A.技能库由语言模型实时生成
  • B.技能库是预定义的原子动作← 正确答案
  • C.技能库无需感知系统配合
  • D.技能库只包含语言描述

答案:B。技能库是事先定义好的机器人可执行原子动作集合,语言模型负责选择而非生成动作,且技能需要感知反馈验证。A、C、D 都与 SayCan 的实际设计不符。

Q5. PaLM-E与传统视觉加语言pipeline的主要区别?

单选题 · easy

  • A.完全不使用任何视觉标记
  • B.视觉标记与文本标记共同建模← 正确答案
  • C.只处理纯文本指令序列
  • D.仅依赖固定规则匹配图像

答案:B。PaLM-E 把图像编码成视觉标记,和文本标记一起送入同一个 Transformer,在注意力层交互,而不是先转文本再处理。因此 B 才是核心区别。

Q6. PaLM-E的训练与推理特点包括哪些?

多选题 · mid

  • A.自回归预测下一个标记← 正确答案
  • B.图文标记在模型中联合注意← 正确答案
  • C.一次前向输出全部动作
  • D.可处理多模态输入序列← 正确答案

答案:ABD。PaLM-E 自回归逐标记生成,不是一次输出完整动作序列,因此 C 错。A、B、D 都体现多模态联合与逐步生成特性。

Q7. 语言驱动机器人面临的主要挑战包括?

多选题 · mid

  • A.自然语言指令模糊← 正确答案
  • B.机器人物体操作复杂← 正确答案
  • C.环境状态实时变化← 正确答案
  • D.文本编码无需对齐

答案:ABC。自然语言往往省略关键细节,机器人物理操作充满不确定性,环境会随动作变化。文本编码同样需要与视觉、状态对齐,D 说法相反,因此排除。

Q8. P_Aff(a|s)在SayCan中表示什么?

单选题 · hard

  • A.动作与指令的语义相关程度
  • B.当前状态执行该动作的可行性← 正确答案
  • C.执行动作后获得的长期奖励
  • D.语言模型生成动作的概率

答案:B。P_Aff 是当前状态下的可行性概率,由感知和技能价值函数估计,不同于语言相关性或长期奖励,因此选 B。

Q9. 具身智能中“具身”强调什么?

单选题 · easy

  • A.拥有身体并感知环境← 正确答案
  • B.只具备强大的语言能力
  • C.只在虚拟环境里运行
  • D.不需要任何传感器反馈

答案:A。具身强调身体与环境的交互,机器人必须用视觉、触觉等感知环境。B、C、D 都丢弃了物理交互,仅会聊天不算具身智能,必须与环境互动。

Q10. 关于PaLM-E训练说法正确的有?

多选题 · hard

  • A.使用互联网图文数据← 正确答案
  • B.使用机器人操作数据← 正确答案
  • C.图像与文本联合学习← 正确答案
  • D.完全不需要真实文本

答案:ABC。PaLM-E 用互联网图文训练基础能力,再用机器人真实操作数据微调,图文在统一模型内联合学习。D 彻底否定文本,与事实相反。