跳到主要内容

9. pi0 架构与训练配方

先修建议

  • 已完成 RT-1 / RT-2 / ACT / Diffusion Policy 章节阅读,理解离散动作 token 与连续动作生成的差异。
  • 熟悉行为克隆(BC)与条件生成模型的基本概念。
  • 对 Transformer 的 token、attention mask、KV cache 有基础认识。

本节目标

  • 建立 π₀ 的完整问题定义:输入、输出、训练目标与推理方式。
  • 看懂 π₀ 为什么采用 VLM 主干 + Action Expert + Flow Matching 的三段式设计。
  • 理解 π₀ 的训练配方(pre-training / post-training)如何与架构配合。
  • 用论文中的实验证据判断 π₀ 的能力边界,而非只看单个 demo。
读图重点:π₀ 不是单一网络改动,而是‘预训练 VLM + 动作专家 + 流匹配 + 分阶段训练’的组合方案。
读图重点:π₀ 不是单一网络改动,而是‘预训练 VLM + 动作专家 + 流匹配 + 分阶段训练’的组合方案。

1. pi0 定位

π₀ 关注的核心问题不是“单任务精度再提高一点”,而是:同一套参数如何在跨机体、跨任务条件下保持语义理解与连续控制能力

论文将这件事拆成三条约束:

  1. 语义能力要继承互联网预训练(否则语言泛化不足)。
  2. 动作输出要支持高维连续联合分布(否则难以覆盖高频灵巧操作)。
  3. 推理必须落在可部署时延预算内(否则真实系统无法闭环)。

在论文宏定义中,作者自采数据覆盖 7 种机器人配置(\Robots=7)与 68 类任务(\Tasks=68),并叠加 OXE 等开源数据做跨机体训练。这决定了 π₀ 从一开始就不是“单机体策略”,而是“跨机体基础模型”路线。

读图重点:下面这张图主要看“机体形态跨度”,不是看某一个单项任务分数。

π₀ 在单臂、双臂、移动操作等不同机体形态上进行统一建模。
π₀ 在单臂、双臂、移动操作等不同机体形态上进行统一建模。

2. 任务定义

π₀ 的核心建模对象是条件动作块分布:

其中:

  • 观测
  • 动作块

这一定义有两个直接后果:

  1. 模型每次不是只预测一步,而是预测一个未来动作块(action chunk)。
  2. 输出是连续动作分布,不是离散 token 分类。
符号含义
时刻 的观测(多视角图像 + 语言 + 本体状态)
开始长度为 的动作块
动作块长度,论文设为 50
Flow Matching 的时间步,范围
推理积分步长,论文设为 0.1(10 步)

3. 数据体系与训练阶段

π₀ 的训练并非“单阶段端到端”,而是显式分为 pre-training 与 post-training 两阶段。

3.1 Pre-training:先学广覆盖

预训练混合数据由两部分组成:

  1. 自采高难灵巧操作数据。
  2. 开源机器人数据(OXE / Bridge / DROID 等)。

论文按 timestep 统计时给出了一些关键口径:

  • 预训练混合中约 9.1% 来自开源数据。
  • 自采数据约 903M steps,其中单臂约 106M、双臂约 797M
  • OXE 子集本身包含来自 22 种机器人的数据来源。

读图重点:这张图主要看“数据分布与采样权重”,不是简单看柱状图高低。

预训练混合中,不同任务-机体组合采用幂律重加权,避免大数据源独占梯度。
预训练混合中,不同任务-机体组合采用幂律重加权,避免大数据源独占梯度。

3.2 数据对齐与加权策略

为解决跨机体动作空间不一致,论文采用统一表示:

  1. 配置向量与动作向量统一到 18 维。
  2. 低维机器人通过 zero-padding 对齐。
  3. 少于 3 路相机的机体,对缺失图像槽位做 mask。

采样方面,任务-机体组合按 加权( 为该组合样本量),用来下调过度代表的数据源。

3.3 Post-training:再学任务质量

post-training 使用更小但更高质量的任务数据集做专项适配。论文给出范围:简单任务约 5 小时,复杂任务可达 100+ 小时。

这套“先广覆盖、再高质量专项”的训练配方与大模型常见的 pretrain / post-train 分工一致:

  1. pre-training 提供广泛可迁移能力。
  2. post-training 提供任务执行风格、稳定性与完成质量。

4. 模型架构

4.1 从 PaliGemma 到 pi0

π₀ 以 PaliGemma 3B 为主干,新增动作专家模块约 300M 参数,总规模约 3.3B。

相对标准 VLM,π₀ 额外引入:

  1. 本体状态输入
  2. 噪声动作块输入
  3. 对应动作 token 的向量场输出头

4.2 Action Expert 与 token 路由

π₀ 可以理解为“单个 Transformer + 两套专家权重”:

  1. 图像与语言 token 路由到较大的 VLM backbone。
  2. 本体状态与动作 token 路由到 Action Expert。
  3. 两套权重主要在 self-attention 层发生交互。

作者将 Action Expert 做了降宽(例如 width=1024, mlp_dim=4096),核心目的是降低多次积分推理时的计算成本。

4.3 Attention Mask 与 注入

论文附录描述的 mask 机制是 blockwise causal(按 block 的先后做因果屏蔽),并且每个 block 内部是双向注意力:

  1. block 1:
  2. block 2:
  3. block 3:

该设计的工程含义:

  1. 前缀 block 不看未来 block,减少对 VLM 预训练分布的扰动。
  2. 状态 block 单独隔离,便于推理阶段缓存对应 KV。
  3. 动作 block 可看全输入,满足条件生成需要。

Flow timestep 的注入则通过动作侧 MLP 完成:将动作投影与 (正弦编码)拼接后再映射到 expert 宽度。


5. Flow Matching 训练机制

5.1 主线版:训练到底在拟合什么

π₀ 使用条件 Flow Matching 损失:

概率路径采用线性高斯形式:

训练时采样 ,构造:

直观上,网络学的是“从带噪动作块回到干净动作块的速度方向”。

5.2 推理版:如何把向量场变成动作

推理从纯噪声动作块开始,按 Euler 规则从 积分到

论文设置:

  1. 共 10 步积分

5.3 可选深入:为什么强调低

附录给出的采样分布并非简单均匀,而是 shifted Beta:

读图重点:图中关注“低 (更高噪声)被更高频采样”这一趋势。

Flow Matching timestep 采样在低 τ 区域更密集,并对高 τ 进行截断。
Flow Matching timestep 采样在低 τ 区域更密集,并对高 τ 进行截断。

该策略的经验动机是:动作预测任务在高噪声区域往往更难,训练预算向低 倾斜有助于收敛效率。


6. 推理控制与系统预算

6.1 推理链路

一次动作块推理包含三段计算:

  1. 图像编码。
  2. 观测前缀前向(可缓存 KV)。
  3. 10 次动作后缀前向(Flow 积分步骤)。

附录给出的 RTX 4090 实测时延(3 路相机)如下:

模块时延
image encoders14 ms
observation forward pass32 ms
x10 action forward pass (flow)27 ms
network latency(off-board)13 ms
total on-board73 ms
total off-board86 ms

这组数字说明:π₀ 的“可部署”不是免费获得的,而是依赖 前缀缓存 + 专家降宽 + 多步后缀复用 的系统优化。

6.2 控制执行策略

虽然模型每次生成 步动作块,但论文并未简单“每次都执行满 50 步再推理”,而是采用任务相关触发策略:

  1. 20Hz 的 UR5e / Franka:每 0.8s 推理一次(执行 16 步)。
  2. 50Hz 的其他机器人:每 0.5s 推理一次(执行 25 步)。

此外,作者报告早期尝试过 temporal ensembling,但性能下降,最终采用 open-loop 执行 chunk。


7. 实验结果与能力边界

7.1 Out-of-box 基础能力

论文在 pre-training 后直接评估 base model(不做 post-training),并与 OpenVLA、Octo 以及不使用 VLM 初始化的 π₀-small 对比。

读图重点:关注“full π₀ 与 compute-parity π₀”都能超过对比方法这一点。

Out-of-box 评估中,π₀ 在多任务上相对基线表现更强,且训练步数受限版本仍保持优势。
Out-of-box 评估中,π₀ 在多任务上相对基线表现更强,且训练步数受限版本仍保持优势。

7.2 语言跟随能力

语言实验比较了多种条件:

  1. -flat:只给高层任务描述。
  2. -human:给中间子任务语言指令。
  3. -HL:由高层 VLM 生成中间指令。

结果显示,使用 VLM 初始化的 π₀ 在语言跟随准确性上显著优于 π₀-small,且这种差异会转化为复杂任务中的执行收益。

读图重点:看“同一任务下,语言条件变化带来的性能分化”。

语言条件化实验显示:更强的语言理解通常带来更稳定的任务执行。
语言条件化实验显示:更强的语言理解通常带来更稳定的任务执行。

7.3 新任务微调与预训练收益

在若干与预训练数据分布差异较大的下游任务中,论文比较了:

  1. 从预训练 π₀ 继续微调。
  2. 同架构从零训练。
  3. 其他已有方法的微调或训练方案。

论文报告的趋势是:

  1. 与预训练更相近的任务,迁移收益更明显。
  2. 在小样本微调设置下,预训练版本常显著优于非预训练版本,部分任务可达约 2x 量级改进。

7.4 复杂多阶段任务

作者还评估了 laundry folding、table bussing、box building、packing eggs 等更长时序任务。报告结论显示:完整的 pre-train + post-train 配方通常优于去除预训练或仅靠下游数据从零训练的变体。

读图重点:这里看“长时序任务是否可完成 + 是否具备恢复能力”,不只看单步动作精度。

复杂多阶段任务展示了 π₀ 在真实场景中的策略连贯性与恢复行为。
复杂多阶段任务展示了 π₀ 在真实场景中的策略连贯性与恢复行为。

7.5 能力边界(基于实验与讨论)

从主文与讨论段落可以提炼出三条边界:

  1. 任务成功率仍随任务难度与数据覆盖度显著波动。
  2. 预训练数据“如何组成最优配方”仍是开放问题。
  3. 跨任务、跨机体的正迁移虽然存在,但其适用范围还未被系统刻画。

8. 局限与过渡

π₀ 的关键价值在于把三件事放进同一框架并跑通:

  1. 用预训练 VLM 提供语义底座。
  2. 用 Action Expert 与连续动作块建模高频控制。
  3. 用可部署的推理策略把多步 Flow Matching 落到真实系统。

同时,论文也明确保留了后续研究空间:

  1. 数据配比与混合策略仍有较大优化空间。
  2. 复杂任务的稳定性与可预测性仍需提升。
  3. 模型的“通用性”是否能扩展到更远域(如导航、驾驶、腿足)尚无定论。

这也是下一讲的自然过渡点:在已有跨机体能力基础上,进一步讨论 open-world 场景中的泛化与长期执行稳定性问题。