Inner Monologue:让 LLM「边想边做边纠正」的机器人规划
🎯 为什么重要:LLM 规划的「开环」死穴
2022 年 SayCan / Huang et al. 等工作把 LLM 当机器人「大脑」:把高层指令(「给我拿杯喝的」)拆成技能序列(「去桌边 → 拿可乐 → 回来」)。听起来很美,但有个致命假设——每一步都执行成功。
论文用一句很妙的话总结人脑的做法:人类开门时会想「拿钥匙→插锁→诶不对,换一把→这把行了→转」。这个内心独白(inner monologue)里有观察(「不对」)、有纠错(「换一把」)。论文就问:能不能让 LLM 也形成这种内心独白?
💡 核心思想:把一切反馈翻译成「文字」塞进同一个 prompt
Inner Monologue 不训练任何东西——LLM 是冻结的,只靠 few-shot prompting。它的全部魔法在:把异构的环境反馈统一翻译成自然语言,拼到 LLM 的 prompt 里。论文把反馈分成三类:
关键在于:反馈不是数字向量,而是文字——这正好是 LLM 的母语。所以不需要训练,prompt 拼好就能用。
🛠️ 怎么做:三个领域、三种实现、同一套思想
论文特意说明 Inner Monologue 不是「某个具体算法」,而是一种范式 case study:三个领域用了不同的 LLM、不同的反馈、不同的低层技能——但都遵循「文字反馈 → LLM → 技能」的回环。
| 领域 | LLM | 反馈类型 | 低层技能 | 对照基线 |
|---|---|---|---|---|
| 仿真桌面重排 (Sec 4.1, Ravens) | InstructGPT | Object(脚本) + Scene(任务进度) + Success(脚本) | CLIPort 风格 pick-place | CLIPort 多任务(含 oracle 终止) |
| 真机桌面重排 (Sec 4.2, UR5e) | InstructGPT | Object(MDETR 开放词表) + Success(包围框启发式) | 零样本吸盘 pick-place | 开环(只描述一次场景,Socratic 风格) |
| 真机厨房移动操作 (Sec 4.3, Everyday Robot) | PaLM | Success(学习分类器) + Object(人提供) + 可选 Human(LLM 主动问) | SayCan 的技能库 + value function 做 affordance grounding | SayCan(开环) |
两者解决的是不同的失败模式:缺 Object → 一开始就漏看了被遮挡的物体,计划天生残缺;缺 Success → 抓取失败了也不知道,不会重试。论文 Table 2 显示:真机桌面上「Object only」45%、「Success only」40%,但合起来 90%——互补,不是简单叠加。
测试时为了检验「闭环纠错」的价值,论文在所有领域都故意注入扰动(仿真:像素/动作/放置位置加高斯噪声;真机:动作噪声 σ=4mm;厨房:人对执行过程加对抗性干扰),强制制造失败,看系统能否恢复。
📊 关键结果(数字均来自原文表格)
| 实验 | 基线 | Inner Monologue 最佳变体 | 结论 |
|---|---|---|---|
| 仿真桌面(Table 1,每任务 50 episodes,seen 任务) 「Pick and place」 | CLIPort + oracle:74.0% | Object + Scene:94.0% | 反馈越丰富越准;unseen 任务从 0% 拉到 6–86%(Object+Scene:「mismatched bowls」86%、「stack on corner」仅 6%) |
| 仿真桌面 unseen「mismatched bowls」 | CLIPort:0.0%;CLIPort+oracle:0.0% | Object + Scene:86.0% | |
| 真机桌面(Table 2,10 runs 平均) Total | LLM 开环:20% | Object + Success:90% | 两种反馈互补:单独 40–45%,合起来 90% |
| 真机厨房移动操作(Table 3,120 evaluations,含标准+对抗扰动两条件) Total | SayCan:30.8% | Object + Success:60.4% | 有对抗扰动时 SayCan 接近 0%;IM 把移动操作从 0% → 75% |
🌟 四个「涌现」能力(论文 §4.4)
下面这些行为 prompt 里没教过,但 LLM 在反馈驱动下自发涌现:
| 能力 | 含义 |
|---|---|
| Continued Adaptation | 人中途改指令(「算了我改主意了」→「还是做上一个吧」),LLM 能跟着切两次 |
| Self-Proposing Goals | 紫色方块太重拿不动 → LLM 自己提出「找轻一点的」,换蓝色方块成功 |
| Multilingual Interaction | 人用中文下指令,LLM 自动翻译成英文目标并执行 |
| Interactive Scene Understanding | 任务做完后人问「紫碗里有啥?」,LLM 凭执行历史+反馈正确作答 |
🌐 在领域中的位置
Inner Monologue 是 LLM 机器人规划从「开环」走向「闭环」的转折点。它的解法非常「工程」——不训练、用文字缝合所有模态——这恰好是 2022 年最务实的选择。今天 VLA 把这套反馈内化进权重,但「文字作为通用接口」的思路仍贯穿 Socratic Models、Code as Policies 等。
❓ 常见误区
Inner Monologue 训练了 LLM 吗?
没有。LLM 完全冻结(用 InstructGPT / PaLM 现成模型),只用 few-shot prompting。论文的工程量在「把各类反馈翻译成文字」+「拼 prompt」。
那它和 SayCan 的根本区别是什么?
SayCan 的 LLM 也是开环——它用 value function 做 affordance grounding(过滤不可执行的技能),但执行后不反馈给 LLM。Inner Monologue 在 SayCan 基础上把 Success/Object 反馈 塞回 prompt,让 LLM 能 retry/replan。Table 3 就是直接和 SayCan 对比。
「Inner Monologue」这个内心独白具体指什么?
指 LLM prompt 里那段不断增长的对话历史:人指令 → 机器人动作 → 场景描述 → 机器人思考 → 动作 → 成败……每一步都把新反馈拼进去,看起来就像 LLM 在「自言自语」地推进任务。
它的局限?
论文 §5 自承:(1) 仿真/真机部分实验用了 oracle 场景描述(人或脚本提供),全自动版本依赖 VQA/captioning 进步;(2) 系统可能因 success detector 假阳/假阴、LLM 忽略反馈 而失败;(3) 整体上限被低层技能卡死——LLM 推理再好,抓不住就是抓不住。