π0:把「机器人控制」变成「大模型对齐」问题
🎯 为什么重要:第一次让「机器人基础模型」真的成立
在 LLM 里,GPT 用「预训练 + 后训练」两步走,把语义知识装进模型,再用高质量数据 align 出指令跟随能力。但机器人圈一直缺这一套——要么只在小数据上跑特定任务,要么直接拿 VLM 输出离散 token 当动作(精度差到抓不住东西)。π0 第一次完整跑通了这套范式:
💡 核心思想:VLM 大脑 + 动作专家小脑,分工明确
π0 是一个「混合专家 Transformer」:图像和语言走大 VLM(PaliGemma 3B,继承网络预训练知识),机器人状态和动作走小动作专家(300M,从零训)。两套权重只通过 self-attention 交互。动作不是回归出来的,而是从噪声「流」出来的(flow matching,扩散的近亲)。
训练目标(条件 flow matching)非常简洁:
$$\mathcal{L}_\tau(\theta) = \mathbb{E}_{p(A_t|o_t),\, q(A^\tau_t|A_t)} \left\| v_\theta(A^\tau_t, o_t) - u(A^\tau_t|A_t) \right\|^2$$
网络学的不是动作本身,而是「把噪声变成动作的向量场」$v_\theta$。推理时从 $\tau=0$(纯噪声)开始,用前向 Euler 积分 10 步到 $\tau=1$(干净动作)。
🛠️ 让它在真机上跑通的四个关键设计
| 设计 | 心智 | 为什么必要 |
|---|---|---|
| ① 动作专家(separate weights) | VLM 处理图像+语言;另一套小权重专门处理机器人状态和动作 | 两套数据分布天差地别(网络图文 vs 高频物理量),分开避免互相干扰;同时让动作专家可以做多次前向(flow matching 10 步)而 VLM 部分缓存复用 |
| ② Flow matching 替代扩散 | 用最优传输的直线 path($A^\tau = \tau A + (1-\tau)\epsilon$),而不是传统 DDPM 的曲 path | 路径短、步数少(10 步够)、训练稳;能让 50Hz 高频控制成为可能 |
| ③ Action chunking H=50 | 一次预测未来 50 个动作,但只执行前 25 个(50Hz 下 0.5s) | 预测长 → 时序一致(不抖);执行短 → 闭环纠错;类似 MPC receding horizon |
| ④ Pre-training + Post-training | 先在大规模混合数据(含 OXE)训练;再用高质量数据 fine-tune 单任务 | 大而杂的预训练教「怎么从错误恢复」(高质量数据里看不到错误);小而精的后训练教「怎么做得流畅」。两者互补,类比 LLM 的 SFT/RLHF |
如果让 VLM 直接输出动作 token(OpenVLA 的做法),它必须在「理解语义」和「输出毫米级连续动作」之间分配容量——两件事都不讨好。π0 让 VLM 专心做语义理解(这是它擅长的),把动作生成交给一个专门的小网络——分工明确,两边都受益。这其实就是 Mixture of Experts 思想,只不过只设了两个专家。
📊 结果:跨越 7 个机器人、68 个任务,难度断层式领先
| 维度 | 数字(来自 PDF) |
|---|---|
| 预训练数据规模 | 10,000+ 小时自有数据 + OXE/DROID/Bridge(9.1% 开源),共 7 种机器人构型、68 任务 |
| 模型规模 | 3.3B(PaliGemma 3B + 300M 动作专家) |
| 控制频率 | 20Hz(UR5e/Franka) / 50Hz(双臂 / 移动),单步推理 73ms(RTX 4090) |
| Out-of-box 5 任务 | 在 shirt folding、bussing easy 上「接近满分」(near perfect),全部 5 个任务(含 bussing hard / grocery bagging / toast)大幅领先 OpenVLA、Octo、π0-small |
| 语言跟随 | π0-human(中间指令由人给)和 π0-HL(由高层 VLM 给)显著优于 π0-flat 和 π0-small |
| Few-shot 微调 | 仅 1 小时数据,Tupperware 任务显著超越基线;5 小时数据,paper towel / drawer 等「难」任务也能跑通 |
| 多阶段长任务 | Laundry folding、mobile laundry、dryer unloading、table bussing、box building、packing eggs、to-go box——5~20 分钟级别的超长任务,论文称是「端到端学习文献里最长灵巧任务」 |
🌐 在领域中的位置
π0 是 VLA「规模化」的分水岭:它第一次把「网络规模语义知识 + 大规模机器人数据 + 连续动作生成」三者拧成一股绳,让后续工作(包括 RDT-1B、π0.5 等)都站在它的肩膀上。关联线索:T06 VLA 谱系。
❓ 常见误区
π0 是强化学习吗?
不是。它是模仿学习 / 行为克隆,从人类演示学,没有 reward、没有试错。但它把 LLM 那套「预训练 + 后训练」搬了过来,所以「训练范式」上有 RLHF 的影子——只是这里不是 RLHF,是「大规模 BC + 高质量 BC」。
为什么不用 VLM 直接输出动作?
OpenVLA/RT-2 这么做,但离散化动作 token 在高频、毫米级任务上精度不够(论文 Fig.7 里 OpenVLA 在所有 out-of-box 任务上几乎全跪)。Flow matching 直接生成连续动作,精度和速度都好得多。
Flow matching 和扩散有啥区别?
扩散(DDPM)是曲线路径,需要很多步去噪;flow matching 用最优传输的直线路径,10 步就够。数学上是 diffusion 的近亲,但工程上更友好——这正是 π0 能跑到 50Hz 的原因之一。
数据 10,000 小时是不是太夸张?
是当时最大的机器人学习实验(论文原话:"by far the largest robot learning experiment")。但比起 LLM 的网络数据,仍小到可笑。π0 的一个隐含信息:要继续 scale,机器人圈需要更多源、更便宜的数据采集方案。