π₀: A Vision-Language-Action Flow Model for General Robot Control¶
论文阅读笔记 — 用于后续讨论的概览
1. 基础信息¶
- 题目: π₀: A Vision-Language-Action Flow Model for General Robot Control
- 作者: Physical Intelligence (Kevin Black, Noah Brown, Danny Driess, Adnan Esmail, Michael Equi, Chelsea Finn, Niccolo Fusai, Lachy Groom, Karol Hausman, Brian Ichter, Szymon Jakubczak, Tim Jones, Liyiming Ke, Sergey Levine, Adrian Li-Bell, Mohith Mothukuri, Suraj Nair, Karl Pertsch, Lucy Xiaoyang Shi, James Tanner, Quan Vuong, Anna Walling, Haohuan Wang, Ury Zhilinsky)。注意:这是一篇公司发布的 technical report(非传统会议同行评审论文),署名以机构 Physical Intelligence 为主,是 π 系列的奠基之作。
- arXiv 编号: 2410.24164 (submitted 2024-10)
- 关键词: robot foundation model, vision-language-action (VLA), flow matching, action chunking, action expert, cross-embodiment, PaliGemma, dexterous manipulation, pre-training / post-training
Figure 1:π₀ 用一个预训练的 VLM (PaliGemma) 主干 + 一个通过 flow matching 输出连续动作的 action expert,在 7 种机器人构型、10000+ 小时的跨构型数据上预训练,再 fine-tune 到叠衣服、收拾餐桌、装箱等灵巧长程任务。
2. 文章介绍¶
2.1 解决的领域和问题¶
本文研究的是 通用机器人策略 (generalist robot policy / robot foundation model):希望像 LLM/VLM 那样,先在大规模、高度多样的数据上预训练出一个具备广泛物理能力的 base model,再通过 prompt 或 fine-tune 适配到具体下游任务。核心难点有三:
- 数据 (data):机器人数据稀缺、且分布在不同构型/动作空间上,难以统一利用。
- 泛化与鲁棒性 (generalization & robustness):窄数据训练的专用策略无法处理多样场景、无法从错误中恢复。
- 架构与表达能力 (architecture):既要吸收 Internet-scale 的语义知识,又要能表达灵巧任务所需的高频、多模态、连续动作分布。
2.2 Motivation¶
在 NLP 和 CV 中,"先在多样数据上大规模预训练、再微调/prompt" 的范式普遍胜过窄任务专用模型。作者主张机器人也应如此:用一个 base model 吸收来自不同任务、不同机器人、甚至非机器人来源的数据,从而缓解数据稀缺、并通过覆盖更广的观测/动作(包括纠错和恢复行为)提升鲁棒性。同时强调 训练 recipe(pre-training/post-training 分离)才是最关键的要素——只用高质量数据训练的模型很脆弱(不会从错误中恢复),只用低质量预训练数据则不够流畅高效;二者结合才能既流畅又鲁棒。
2.3 之前工作的问题¶
| 类别 | 代表工作 | 缺陷 |
|---|---|---|
| 自回归离散化 VLA | RT-2, OpenVLA | 把动作离散成 token 自回归生成,不支持高频 action chunk,难以表达灵巧任务所需的连续、高频、多模态动作分布;OpenVLA 在本文的灵巧数据混合上表现很差 |
| 非 VLA 的小型扩散/通用策略 | Octo (93M) | 支持 action chunk 且用 diffusion,但表达能力有限、无 VLM 语义先验,难以扩展到复杂任务 |
| 专用 diffusion / chunking 策略 | Diffusion Policy, ACT | 为小规模灵巧任务设计(10s–100s 条轨迹),不利用大规模预训练,泛化能力受限 |
| 大规模机器人数据集工作 | OXE, BridgeData, DROID | 任务多为简单的物体搬运/抽屉开关,缺乏灵巧、长程行为;本文用约 10000 小时自采灵巧数据补足 |
| LLM+diffusion 混合模型 | Transfusion, Playground | 主要面向图像生成,未应用于机器人 VLA/高频动作生成 |
2.4 论文解决方案(一句话)¶
在预训练 VLM (PaliGemma 3B) 主干上接一个 300M 的 action expert,通过 conditional flow matching 生成 50 步的连续 action chunk,在 7 种机器人构型、10000+ 小时跨构型数据上预训练 + 高质量数据 post-training,得到能 50Hz 控制、可直接 prompt 或 fine-tune 完成叠衣服/装箱等灵巧长程任务的通用机器人基础模型。
2.5 与前序工作的关系¶
- PaliGemma VLM 复用:π₀ 直接用开源 3B 的 PaliGemma (基于 Gemma 2B 语言模型) 作为主干并继承其 Internet-scale 视觉-语言知识;框架本身与任意 VLM 兼容,选 PaliGemma 是因为体积小、利于实时控制。
- Flow matching 来自 Lipman et al. / Liu et al.:用 conditional flow matching(diffusion 的一个变体)+ 线性-高斯(最优传输)概率路径来建模连续动作分布。
- 架构借鉴 Transfusion:单一 transformer、对连续输出用 flow matching loss、对离散输出用 cross-entropy;并借鉴 Playground 为 diffusion token 使用单独权重——这就是 action expert 的来源(类似 2-expert MoE)。
- Action chunking 来自 ALOHA/ACT (Zhao et al.):一次预测 H=50 步动作块以支持高频灵巧控制。
- 与 OpenVLA/RT-2/Octo/Diffusion Policy 的关系:它们既是思想来源也是实验 baseline。π₀ 的不同在于"VLM 主干 + flow matching action expert + 高频 chunk"的组合,以及把整套 pre-training/post-training recipe 当作一个框架来贡献。
3. 方法介绍¶
Figure 2:π₀ 框架总览。预训练混合数据 = 自采灵巧操作数据 + 开源数据 (OXE Magic Soup);模型 = 较大的 VLM 主干 (PaliGemma 初始化) + 较小的 action expert(处理 state 与 action token)。
3.1 形式化¶
目标是建模 \(p(\mathbf{A}_t \mid \mathbf{o}_t)\),其中: - action chunk \(\mathbf{A}_t = [\mathbf{a}_t, \mathbf{a}_{t+1}, \dots, \mathbf{a}_{t+H-1}]\),本文 \(H = 50\); - 观测 \(\mathbf{o}_t = [\mathbf{I}^1_t, \dots, \mathbf{I}^n_t, \ell_t, \mathbf{q}_t]\),包含每机器人 2–3 张 RGB 图像、语言指令 token 序列 \(\ell_t\)、以及关节角等本体感受状态 \(\mathbf{q}_t\)。 - 图像和状态经各自编码器后,线性投影到与语言 token 相同的 embedding 空间。 - 动作/状态向量统一为数据集中最大机器人的维度(本文 18 维:两个 6-DoF 臂 + 2 个夹爪 + 移动底盘 + 垂直驱动躯干),低维机器人用 zero-pad,缺失图像槽位用 mask。
3.2 模型架构 (PaliGemma backbone + action expert)¶
- 采用标准 late-fusion VLM 配方:图像编码器把图像 embed 到与语言 token 同一空间。
- 两组权重 / 类 MoE:单一 transformer,但 token 按类型路由到两个 expert——图像与语言 token 走较大的 VLM 主干(PaliGemma 初始化),机器人特有的 state 与 (noisy) action token 走较小的 action expert(从零初始化)。两个 expert 仅通过 self-attention 层交互,因此 width 和 mlp_dim 不必一致。
- 参数量:PaliGemma 主干约 3B,action expert 约 300M,合计约 3.3B。主干配置 {width=2048, depth=18, mlp_dim=16384, num_heads=18, num_kv_heads=1, head_dim=256, multi-query attention};action expert 缩小为 {width=1024, mlp_dim=4096} 以加速推理。
- Attention mask(blockwise causal,3 块):
- \([\mathbf{I}^1_t, \dots, \mathbf{I}^n_t, \ell_t]\)(VLM 预训练见过的模态,不允许 attend 后续块以减少分布偏移);
- \([\mathbf{q}_t]\)(state 单独成块,因为它在每个 flow 积分步中不变,单独成块便于缓存其 KV);
- \([\mathbf{a}^\tau_t, \dots, \mathbf{a}^\tau_{t+H-1}]\)(noisy actions,可 attend 整个输入序列)。块内双向注意力,块间禁止 attend 未来块。
3.3 Flow matching action generation¶
- 训练损失(conditional flow matching loss): $$ L^\tau(\theta) = \mathbb{E}{p(\mathbf{A}_t|\mathbf{o}_t),\, q(\mathbf{A}^\tau_t|\mathbf{A}_t)} \left| \mathbf{v}\theta(\mathbf{A}^\tau_t, \mathbf{o}_t) - \mathbf{u}(\mathbf{A}^\tau_t \mid \mathbf{A}_t) \right|^2 $$ 下标为机器人时间步,上标 \(\tau \in [0,1]\) 为 flow matching 时间步。
- 概率路径采用线性-高斯(最优传输)路径 \(q(\mathbf{A}^\tau_t|\mathbf{A}_t) = \mathcal{N}(\tau\mathbf{A}_t,\,(1-\tau)\mathbf{I})\)。实际中采样噪声 \(\epsilon \sim \mathcal{N}(0,\mathbf{I})\),构造 noisy action \(\mathbf{A}^\tau_t = \tau\mathbf{A}_t + (1-\tau)\epsilon\),让网络输出 \(\mathbf{v}_\theta\) 去拟合去噪向量场 \(\mathbf{u}(\mathbf{A}^\tau_t|\mathbf{A}_t) = \mathbf{A}_t - \epsilon\)。
- timestep 采样:不同于图像合成里强调中间 timestep 的 logit-normal,作者认为"给定信息丰富的观测预测动作均值"比"给定文本预测图像均值"更难,因此设计了一个 偏向低 timestep(高噪声) 的 shifted beta 分布 \(p(\tau) = \text{Beta}\!\left(\frac{s-\tau}{s};\, 1.5, 1\right)\),并截断 \(\tau > s\)(取 \(s=0.999\))。
- 推理:从 \(\mathbf{A}^0_t \sim \mathcal{N}(0,\mathbf{I})\) 出发,用前向 Euler 积分 \(\mathbf{A}^{\tau+\delta}_t = \mathbf{A}^\tau_t + \delta\,\mathbf{v}_\theta(\mathbf{A}^\tau_t, \mathbf{o}_t)\),10 步积分 (\(\delta=0.1\))。可缓存 prefix \(\mathbf{o}_t\) 的 KV,只对 action token 后缀重复前向,大幅省算。
Figure 3:flow matching timestep 采样分布——偏向低 timestep(噪声更大)且在 cutoff s=0.999 以上不采样。
3.4 数据与训练 (pre-training mixture, post-training, cross-embodiment)¶
- 跨构型 (cross-embodiment) 预训练:合并不同机器人类型到同一模型,靠 zero-pad / mask 统一动作空间与图像槽位。
- 预训练混合(按 timestep 计):约 9.1% 为开源数据(OXE / OXE Magic Soup、Bridge v2、DROID,多为 2–10Hz 低频、1–2 相机);其余为自采的 903M timesteps(106M 单臂 + 797M 双臂),覆盖 7 种机器人构型、68 个 task(这里 "task" 定义很宽,如 "bussing" 涵盖各种餐具/垃圾分拣,实际行为范围远大于 68)。
- 数据加权:各 task-robot 组合按 \(n^{0.43}\) 加权(\(n\) 为样本数),下调过度代表的组合。
- language label:结合 task name 与 segment annotation(约 2 秒子轨迹的细粒度标注)。
- post-training:用更小、更高质量、策略更一致流畅的任务数据 fine-tune;最简单任务约 5 小时数据,最复杂任务(叠衣服、移动操作)用 100+ 小时。
- 高层策略 (high-level policy):对需要语义推理的任务(如收拾餐桌),用一个高层 VLM 把 "bus the table" 分解为 "pick up the napkin" 等子指令,类似 SayCan。
3.x Implementation Details (params, control freq, chunk size, latency, hardware)¶
- 参数量:主干 3B + action expert 300M ≈ 3.3B;非 VLM baseline π₀-small 仅 470M(无 VLM 初始化,用 DistilBERT 编码语言、R26-S-32 ResNet-ViT 编码图像、action expert 用 DiT + AdaLN-Zero 并 cross-attend 观测编码,而非主模型的 decoder-only MoE)。
- 控制频率:最高 50Hz(UR5e/Franka 为 20Hz)。
- action chunk size:\(H = 50\)。
- flow 积分步数:10 步。
- 推理延迟(RTX 4090,3 相机):image encoders 14ms + observation forward 32ms + 10×action forward 27ms = on-board 共 73ms;off-board (Wi-Fi) 再加 13ms 网络延迟 = 86ms。
- 执行策略:开环执行 action chunk(尝试过 temporal ensembling 但发现会损害性能,故放弃聚合)。20Hz 机器人每 0.8s 推理一次(执行 16 个动作后),50Hz 机器人每 0.5s 推理一次(执行 25 个动作后)。
- 训练步数:主模型训练 700k 步;另设 "compute parity" 版本只训 160k 步 以与 baseline 对齐。
Figure 4:实验所用的 7 种机器人构型——单臂/双臂 6-DoF 与 7-DoF 操作器、以及完整/非完整移动操作器(UR5e、Bimanual UR5e、Franka、Bimanual Trossen、Bimanual ARX & AgileX、Mobile Trossen & ARX、Mobile Fibocom)。π₀ 在所有平台上联合训练。
4. 结果对比¶
Figure 5:开箱 (out-of-box) 评测的五个任务——shirt folding、bussing easy、bussing hard、grocery bagging、toast out of toaster,要求灵巧操作 + 多阶段行为 + 语义识别。
评测指标为每任务 10 个 episode 的归一化平均分(满分 1.0,可给部分分,如 bussing 按正确分拣物体比例计分)。
(1) 开箱 base model 评测(Fig. 6 对应结果):在全部 5 个任务上 π₀ (700k) 全面大幅领先所有 baseline,shirt folding 与 bussing easy 接近满分。 - π₀ (160k, parity) 即便算力受限仍优于所有 baseline; - π₀-small 也优于 OpenVLA 和 Octo; - OpenVLA (7B):自回归离散化不支持 action chunk,在该灵巧混合上表现很差(即使只在 UR5e 上 fine-tune 的版本也远低于 π₀); - Octo (93M):支持 chunk 但表达能力有限。 - 结论:大而强的架构 + flow matching/diffusion 的分布建模能力缺一不可;VLM 预训练带来显著增益(但 π₀-small 同时更小且无 VLM 初始化,混杂了两个因素)。
(2) 语言指令跟随(Fig. 8 对应结果):在 bussing / table setting / grocery bagging 三个语言条件任务上对比 π₀ 与 π₀-small:
- 五种条件:-flat(只给总指令)、-human(人类专家给中间子指令)、-HL(高层 VLM 给子指令,全自主)。
- π₀ 的语言跟随准确率显著高于 π₀-small;π₀ 能从人类专家指令 (-human) 与高层 VLM (-HL) 显著获益,而 π₀-small 因语言能力弱,加入高层专家几乎无增益。
(3) 学习新灵巧任务的 fine-tune(Fig. 10 对应结果):在与预训练差异不同的 "tier" 任务上(stack bowls、towel folding 为 easy;Tupperware in microwave 为引入新元素;paper towel replacement、Franka items in drawer 为 hard),对比 OpenVLA、Octo、ACT、Diffusion Policy(后两者只在 fine-tune 数据上训练)以及 π₀ 从头训练 vs 预训练后 fine-tune: - π₀ 总体最优;有趣的是先前模型里 从头训练 的反而最强,说明它们难以利用大规模预训练; - 与预训练越相似的任务,预训练增益越大,预训练版有时比从头训练好 约 2×。
(4) 复杂多阶段任务(Fig. 12 对应结果):laundry folding、mobile laundry、dryer unloading、table bussing、box building、to-go box、packing eggs 等,单任务耗时 5–20 分钟。这些任务其他方法无法解决,故只与 π₀ 自身的消融对比(full pre-train+fine-tune / out-of-box / scratch): - full π₀ 在所有任务上拿到 >50% 的满分,且基本优于各消融; - 越难的任务,预训练带来的提升越大。
总体上:π₀ 在开箱、语言跟随、fine-tune、复杂长程四类评测中均明显优于 OpenVLA / Octo / ACT / Diffusion Policy / π₀-small。
5. 引申问题 / 讨论¶
5.1 做得好的地方¶
- 架构组合新颖且实用:首个用 flow matching 产生高频 action chunk 的 VLA,把 VLM 语义先验、连续多模态动作建模、action chunking、跨构型统一到一个框架里。
- action expert 的工程取舍漂亮:单 transformer 两组权重(类 2-expert MoE),仅 self-attention 交互,action expert 缩小到 300M;配合 blockwise causal mask 与 KV 缓存,使 10 步 flow 采样在消费级 4090 上 on-board 仅 ~73ms。
- 数据规模空前:约 10000 小时、903M 自采 timesteps、7 构型、68 task,外加 OXE/Bridge/DROID,作者称是迄今最大的机器人操作预训练混合。
- pre-training/post-training recipe 的实证:清晰论证 "预训练给广度+恢复能力、post-training 给流畅高质量执行" 的互补性。
- 任务难度与时长突破:完成数十分钟级、组合复杂的灵巧任务(多件叠衣、装箱、装蛋),刷新端到端机器人学习的任务复杂度上限。
- 针对动作任务定制的 timestep 采样:从 "预测动作均值比预测图像均值更难" 的直觉出发设计偏向高噪声的 beta 分布,是有 insight 的细节。
5.2 做得不够好的地方 / 值得质疑的地方¶
- 数据完全闭源:约 10000 小时核心数据、68 task 全部为 Physical Intelligence 私有,外部既无法复现也无法验证规模/质量声明,是最大的可复现性硬伤。
- 缺少隔离 flow matching vs autoregressive 的真正消融:文中只是对比 OpenVLA(不同架构、不同初始化、不同算力)来论证 flow matching 的优势,没有在同一主干、同一数据下做 flow matching 与自回归离散化的对照实验,所以 "flow matching 更好" 这一关键论点并未被干净地证明。
- π₀-small 这个 baseline 混淆了多个变量:它同时 更小 (470M vs 3.3B)、无 VLM 初始化、且架构细节不同(DistilBERT、DiT cross-attention、ViT 不共享权重等)。作者自己也承认 "难以去除这个 confounder",因此 "VLM 预训练带来语言/性能增益" 的结论里混入了模型规模与架构差异。
- 结果图缺乏数值表格与方差:核心对比 (Fig. 6/8/10/12) 均以柱状图呈现,每任务仅 10 个 episode,没有给出置信区间/标准差,也没有统计显著性,灵巧任务的成功率本身波动很大,结论的稳健性存疑。
- 没有公开 benchmark,评测几乎全在自家任务上:评测任务、机器人、打分 rubric 都是 in-house,缺少社区可比的标准 benchmark,难以横向对照其他工作。
- 打分 rubric 偏宽松:大量任务采用 "部分给分" 的连续评分(如 bussing 按物体比例、box building 满分 5 拆成 5 个子步骤),"完成 >50% 满分" 不等于 "完整完成任务",容易高估实际可用性。
- baseline 训练不充分且对其不利:OpenVLA/Octo 因 "time constraints" 没训到与 π₀ 同等步数;OpenVLA 被强行塞进它本不支持高频 chunk 的数据混合,对比难言公平(尽管作者也补了 parity / UR5e-only 版本缓解)。
- flow 采样仍带延迟与开环执行的隐忧:尽管 10 步 + KV 缓存把延迟压到 ~73–86ms,但仍是多次前向;且采用开环执行 chunk(temporal ensembling 反而有害),对动态/受扰场景的闭环反应性可能受限。
- 作为 technical report 缺少细节与诚实的失败分析:很多关键结论指向 "见网站视频",正文未充分报告失败模式、各任务绝对成功率分布,限制了对方法边界的判断。
- 泛化范围未知:作者在 limitation 中也承认,尚不清楚预训练数据应如何组成/加权、跨更远域(自动驾驶、导航、足式运动)是否仍有正迁移,当前 "通用性" 仍限于桌面/移动操作。
5.3 值得继续探讨的方向¶
- 数据配比的科学化:什么数据值得加入、各 task-robot 如何加权(目前只是 \(n^{0.43}\) 的启发式),以及预测 "某任务达到近满分需要多少/何种数据"。
- 正迁移的边界:跨更异质的构型与领域(导航、locomotion、driving)是否仍有正迁移。
- flow matching vs 自回归的干净对照:在同一主干/数据下系统比较两种动作头,定量回答 flow matching 的真实增益(后续 π₀-FAST 用频域离散 token 的自回归方案部分回应了这一点)。
- 推理加速与闭环性:量化、蒸馏、更少积分步、以及在保持精度下提升闭环反应性。
- 公开 benchmark 与可复现性:建立社区可比的灵巧操作评测,以及开放(哪怕部分)数据/权重。
参考资源¶
- 论文 PDF: paper.pdf
- LaTeX 源码: source/
- 关键 baseline / 相关论文:
- OpenVLA (Kim et al. 2024) — 7B 自回归离散化 VLA,主要 baseline
- Octo (Octo team 2024) — 93M diffusion 通用策略
- RT-2 (Brohan et al. 2023) — 自回归 VLA 范式来源
- PaliGemma (Beyer et al. 2024) — 3B VLM 主干来源
- Diffusion Policy (Chi et al. 2023) / ACT (Zhao et al. 2023) — 专用灵巧操作策略 baseline,action chunking 来源
- Flow matching (Lipman et al. 2022; Liu et al. 2022 rectified flow) — 动作生成核心方法
- Transfusion (Zhou et al. 2024) / Playground (Liu et al. 2024) — action expert / 多目标单 transformer 设计灵感
- OXE / Open X-Embodiment (2023)、BridgeData v2、DROID — 开源预训练数据
- π₀-FAST — 后续工作(用 FAST 频域离散 token 做自回归动作生成)