PI-QT-Opt:让机器人「学会预测下一步」以掌握 297 项任务
🎯 为什么重要:通用机器人需要「举一反三」,而不仅仅是「熟能生巧」
2022 年 Google 的 QT-Opt 已经能在仿真 + 真机上抓取数千对象。但当任务从「一个抓取」扩展到「3 类技能(move/pick/knock)× 17 个厨房对象 = 297 个任务」时,传统 Q-learning 表征开始崩:
PI-QT-Opt 的回答来自信息论:「预测信息」$I(\text{past}; \text{future})$——过去和未来之间的互信息。如果一个表征能从「当前状态 + 动作」预测出「下一状态 + 下一最优动作 + 奖励」,那它一定抓住了环境的动态结构(dynamics),而不是某个任务专用的 trick。这种表征天然可以迁移到新任务、新对象、甚至 sim→real。
💡 核心思想:用 Conditional Entropy Bottleneck 学「压缩的预测信息」
「预测信息」$I(X; Y)$ 中,过去 $X = (s_t, a_t)$,未来 $Y = (s_{t+1}, a_{t+1}^*, r)$。直接最大化这个互信息有个坑:表征会偷懒复制整个过去(因为 $H(X)$ 增长比 $I(X; Y)$ 快)。所以论文沿用 Lee et al. 2020 的做法,用 Conditional Entropy Bottleneck (CEB) 强迫表征 $Z$ 关于 $X$ 被压缩:
$$ \text{CEB} = \min_Z \, \beta \, I(X; Z | Y) - I(Y; Z) $$🛠️ 三个工程上必须搞对的细节
| 设计 | 心智 | 为什么必要 |
|---|---|---|
| ① 任务上下文条件化 | 给 Q 函数和 PI 头都注入一个「任务向量」——可以是图像 overlay(在初始图上叠颜色块标对象位置),也可以是语言嵌入 | 一套参数管 297 个任务,必须有任务信号;论文发现简单的 additive conditioning 就够用,不需要 MT-Opt 那种「每任务一个 head」的复杂架构 |
| ② 共享 conv、分头 MLP | 两个损失共享 conv 参数(强制表征同时服务两个目标),但各有一个 MLP 让损失能 specialize | 共享太少→PI 失去对视觉表征的影响力;共享太多→两目标相互干扰。MLP 解耦是经验上的甜蜜点 |
| ③ CEB 而非 plain InfoNCE | 用 Conditional Entropy Bottleneck,多了一个 $\beta I(X;Z|Y)$ 项强迫 $Z$ 关于 $X$ 压缩 | 避免表征「复制整个过去」偷懒——这是 plain 互信息最大化的常见 bug。$\beta$ 小=压缩弱、信息多;论文用 von Mises-Fisher 分布参数化 $e(z|x), b(z|y)$ |
单任务 RL 里,表征只要能区分「这个 (s,a) 在这个任务里值多少分」就够。但多任务 RL 里,同一个 (s,a) 在不同任务里值差异巨大——表征必须抽象出「物理上发生了什么」(抓到了吗?对象移动了吗?),才能在 Q 头前加个任务条件就给出正确 Q 值。预测信息正是这种「物理抽象」的最大化。论文 §5.3 用数据验证:成功 episode 的 $I(X;Y)$ 估计显著高于失败 episode;TD-error 高的 episode 几乎都失败且 PI 低。
📊 结果:训练 +20~28%,真机 +46~64%
| 实验(仿真,训练任务) | QT-Opt | PI-QT-Opt | 相对提升 |
|---|---|---|---|
| Move Skill(246 任务) | baseline | +20% (rel.) | 训练全程一致领先 |
| SayCan 297 任务(全技能合一) | baseline | +25% (rel.) | 最复杂的设定,PI 收益最大 |
| Pick / Knock / Instance Grasping / 6-Object | baseline | 一致提升 | 见 Fig.3 各曲线 |
| Zero-shot 泛化(仿真,未见任务) | QT-Opt | PI-QT-Opt | 相对提升 |
|---|---|---|---|
| Move Skill held-out 任务 | 低 | 显著高 | Fig.4(a) |
| Pick Skill held-out 对象 | 低 | 显著高 | Fig.4(b) — 验证「对象泛化」 |
| Knock Skill held-out 对象 | 低 | 显著高 | Fig.4(c) |
| SayCan 297 任务 held-out | 低 | +28% (rel.) | Fig.4(d) — 大综合设定 |
真机部署(sim→real,Table 1)——只在仿真训练(用 RetinaGAN/CycleGAN 做图像翻译),直接部署到 Everyday Robots 机械臂:
| 真机任务 | PI-QT-Opt 成功率 | QT-Opt 成功率 | 相对提升 |
|---|---|---|---|
| SayCan Move("把 A 移到 B 旁") | 22.9 ± 8.4% | 13.93 ± 3.2% | +64.4% |
| SayCan Pick(拾取对象) | 42.0 ± 9.9% | 28.7 ± 8.0% | +46.6% |
| SayCan Knock(敲倒罐子) | 54.6 ± 2.4% | 36.2 ± 11.6% | +50.7% |
🌐 在领域中的位置
PI-QT-Opt 是 Google 「机器人通用智能」路线的关键中间节点。它验证了一个核心论点:表征学习是规模化的瓶颈,而非 RL 算法本身。这条思路后来被 RT 系列(RT-1 用 Transformer 作骨干、RT-2 用 VLM 作骨干)进一步推向极端——本质上都是「更好的表征 + 大规模数据」。PI-QT-Opt 也证明:在 VLA 出现之前,纯 RL + 表征学习就能做到 297 个真机任务,这是当时单一策略覆盖任务数的天花板。
❓ 常见误区
PI-QT-Opt 是新 RL 算法吗?
不是。它就是 QT-Opt(off-policy actor-critic + CEM)+ 一个辅助损失。RL 算法部分一字未改。它证明的是「表征质量比 RL 算法的细节更重要」——论文甚至提到 SAC 和 PI-SAC 在这些任务上成功率接近 0,说明「选对基础算法(QT-Opt)+ 加对表征损失(PI)」缺一不可。
「预测信息」是不是就是「世界模型」/model-based RL?
不是。世界模型(Dreamer、PlaNet)显式重建未来状态并在 rollout 时用它规划。PI-QT-Opt 只学一个压缩的潜在表征 $Z$,最大化它与未来 $Y$ 的互信息,不重建、不 rollout——它只是用 PI 作「表征正则」。这相当于「不开世界模型的引擎,但偷它的表征学习信号」。所以推理时无额外开销。
为什么必须用 CEB?plain InfoNCE 不行吗?
plain InfoNCE 只最大化 $I(Y; Z)$,会让 $Z$ 把 $X$ 全部「塞进去」(因为 $H(X)$ 增长比 $I(X; Y)$ 快,把 $X$ 整个复制进 $Z$ 总是有用的)。这等于表征退化成原图的副本,丧失压缩和泛化。CEB 加的 $\beta I(X; Z | Y)$ 项就是惩罚 $Z$ 携带太多与 $Y$ 无关的 $X$ 信息——「只保留对预测未来有用」的过去信息。
297 个任务是不是太少了?现在 RT-X 都几百万 episode。
2022 年的 297 个真机任务是当时单策略的上限。RT-1 (2022-12) 之后用了 Transformer 骨干 + 大规模真机数据,覆盖更广。但 PI-QT-Opt 的论点(「表征是瓶颈」)被后续工作完全继承——RT-2 用 VLM 表征、π0 用 VLM + flow matching,本质都是把表征做得更好。PI 辅助损失是这条路线的早期证据。