里程碑
机器人Franka / ALOHA / ARX / UR5e / Dart / Stretch 等 7 平台
数据集大规模私有 VLA 数据 + OpenX
上真机
实时
输入模态vision,language,proprioception

π0:把「机器人控制」变成「大模型对齐」问题

Physical Intelligence(Black, Brown, Driess, Finn, Hausman, Levine 等)。arXiv:2410.24164 (2024)。 VLA 基础模型flow matching线索 T06

🧠 一句话心智模型:把 GPT 那套「大规模预训练 + 高质量后训练」搬到机器人上——VLM 当大脑(懂图像和语言),加一个「动作专家」小脑袋(用 flow matching 输出连续动作),就能让一个模型同时学会叠衣服、收桌子、装盒子、煎鸡蛋……

🎯 为什么重要:第一次让「机器人基础模型」真的成立

在 LLM 里,GPT 用「预训练 + 后训练」两步走,把语义知识装进模型,再用高质量数据 align 出指令跟随能力。但机器人圈一直缺这一套——要么只在小数据上跑特定任务,要么直接拿 VLM 输出离散 token 当动作(精度差到抓不住东西)。π0 第一次完整跑通了这套范式:

核心矛盾:要「灵巧」(高频 50Hz、连续、毫米级),就别用离散化动作 token(RT-2/OpenVLA 的做法);要「泛化」(多任务、多机器人、多场景),就别只在小数据上从头训。π0 的答案是:大 VLM 主干 + 小动作专家 + flow matching 动作头,鱼和熊掌一起要。

💡 核心思想:VLM 大脑 + 动作专家小脑,分工明确

π0 是一个「混合专家 Transformer」:图像和语言走大 VLM(PaliGemma 3B,继承网络预训练知识),机器人状态和动作走小动作专家(300M,从零训)。两套权重只通过 self-attention 交互。动作不是回归出来的,而是从噪声「流」出来的(flow matching,扩散的近亲)。

输入 Observation o_t 📷 图像 ×2~3 💬 语言指令 "fold the laundry" 🎛️ 关节状态 q_t 🌫️ 噪声动作块 A^τ_t (H=50) 🧠 VLM 主干(PaliGemma 3B) 处理图像 + 语言 → 语义理解 继承 Internet 预训练知识 ⚡ 动作专家(300M) 处理 q_t + 噪声动作 从零训练,独立权重 attention ✨ 10 步 flow matching 积分 → 干净动作块 输出未来 50 步动作,执行前 25 步(50Hz) 总参数:3.3B · 推理时只重算动作 token,缓存其余
图 1:π0 架构。VLM 主干和动作专家是「同一个 Transformer 里的两套权重」(MoE 风格),通过 self-attention 交互。动作不是回归,是 10 步 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 不是在某一个任务上赢了,而是在「灵巧度 × 泛化度 × 任务长度」三个维度同时突破。它的「学习+对齐」范式几乎复制了 LLM 的成功路径——这不是某项 trick 的胜利,而是整个范式选择的胜利。

🌐 在领域中的位置

RT-1 / RT-2 / OpenVLA(离散动作 token VLA) Octo(93M 扩散动作头,规模小) π0(VLM + flow matching 动作专家)⭐ π0-FAST / π0.5(更高效、跨场景迁移)

π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,机器人圈需要更多源、更便宜的数据采集方案。