引言
机器人领域正经历由基础模型驱动的革命。如同大语言模型重塑了自然语言处理,视觉 - 语言 - 动作模型(VLA)正在改变机器人学习的范式。
Physical Intelligence 公司先后发布了两代 VLA 模型:
- π₀(2024 年 10 月):首个通用机器人策略
- π₀.5(2025 年 4 月):具备开放世界泛化能力的 VLA
本文将深入分析这两个模型的核心差异,帮助理解 VLA 技术的演进方向。
π₀:首个通用机器人策略
设计目标
π₀ 的核心目标是实现灵巧操作和跨具身控制。它追求让机器人完成前所未有的复杂技能,例如折叠衣物、组装纸板箱、清理餐桌或装袋杂货。
模型架构
π₀ 采用双专家并行加共享注意力的架构设计。这种设计允许 VLM Expert 负责视觉 - 语言理解,而 Action Expert 专注于动作生成。
┌─────────────────────────────────────────────────────────────────────┐
│ π₀ 架构 │
├─────────────────────────────────────────────────────────────────────┤
│ 输入 │
│ ├── 图像 ──► SigLIP 视觉编码器 │
│ ├── 语言 ──► Tokenizer │
│ └── 状态 ──► MLP 编码 │
│ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ VLM Expert (PaliGemma 3B) │ │
│ │ ↕ │ │
│ │ 逐层共享注意力机制 │ │
│ │ ↕ │ │
│ │ Action Expert (Gemma 300M) │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ▼ │
│ 输出:连续动作(通过 Flow Matching 生成) │
└─────────────────────────────────────────────────────────────────────┘
关键设计特点包括:
- 双专家架构:职责分离,VLM 理解,Action 生成。
- 逐层共享注意力:两层专家通过共享自注意力机制交互。
- Flow Matching:使用流匹配生成连续动作。
- 非对称信息流:Action tokens 可关注 VLM tokens,但 VLM tokens 被遮蔽以保护预训练知识。
训练数据
训练数据主要包含 Open X-Embodiment 开源数据集、基于 PaliGemma 的互联网规模预训练以及来自 8 种不同机器人的灵巧任务数据。
推理流程
推理时先进行 VLM 前向传播生成 KV Cache,随后通过 Flow Matching 迭代生成动作序列。
输入:图像 + 语言指令 + 机器人状态 + 噪声
▼
┌──────────────────┐
│ VLM 前向传播 │ ← 只运行 1 次,生成 KV Cache
└────────┬─────────┘
│
┌────────▼─────────┐
│ Flow Matching │ ← 迭代 10 次(欧拉积分)
│ Action Expert │
└────────┬─────────┘
│
▼
输出:50 步动作序列(Action Chunk)
π₀.5:开放世界泛化的 VLA
设计目标
π₀.5 的核心目标是实现开放世界泛化。它要求机器人在从未见过的新家庭中执行任务,理解任务的语义结构并自主分解,处理新物体和新场景。
核心创新:Knowledge Insulation
π₀ 存在一个严重问题:训练时 Action Expert 的梯度会破坏 VLM 的预训练知识,导致训练速度慢、语言指令跟随能力下降及泛化受限。
π₀.5 通过 Knowledge Insulation 解决这个问题,关键在于梯度截断,防止低层动作训练的梯度回传到高层语义模型。
┌─────────────────────────────────────────────────────────────────────┐
│ Knowledge Insulation 训练 │
├─────────────────────────────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ VLM Backbone 损失 │ │
│ │ FAST Token Loss Web Data Loss 高层次语义 Loss │ │
│ │ (离散动作预测) (VQA, Caption) (子任务预测) │ │
│ └─────────────────┼─────────────────┘ │
│ ▼ │
│ ┌───────────────────────────┬─────────────────────────────┐ │
│ │ VLM Backbone │ │ │
│ └───────────────────────────┼─────────────────────────────┘ │
│ │ Stop Gradient ✕ ← 关键:梯度截断 │
│ │ │
│ ┌───────────────────────────┼─────────────────────────────┐ │
│ │ Flow Matching Loss │ │ │
│ │ Action Expert │ │ │
│ │ (梯度不传回 VLM) │ │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
三个关键点:
- Stop Gradient:Action Expert 的梯度不传给 VLM Backbone。
- FAST Token Loss:用离散动作 token 训练 VLM,快速学习运动表示。
- VLM Data Co-training:同时训练 Web 数据,保持语言理解能力。
Co-Training 数据策略
π₀.5 采用协同训练策略,融合多种数据源:
┌─────────────────────────────────────────────────────────────────────┐
│ π₀.5 Co-Training 数据 │
├─────────────────────────────────────────────────────────────────────┤
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ 多模态 Web 数据(WD) │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌───────────┐ │ │
│ │ │ 图像描述 │ │ VQA │ │ 物体检测 │ │ 通用多模态│ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ └───────────┘ │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ 机器人数据 │ │
│ │ ┌──────────────┐ ┌─────────────────┐ ┌──────────────┐ │ │
│ │ │ ME 数据 │ │ CE 数据 │ │ 移动操作数据 │ │ │
│ │ │ (多环境静态) │ │ (跨具身) │ │ (~400 小时) │ │ │
│ │ └──────────────┘ └─────────────────┘ └──────────────┘ │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ 高层次语义数据 │ │
│ │ ┌──────────────┐ ┌─────────────────┐ ┌──────────────┐ │ │
│ │ │ 语言指令 │ │ 子任务标注 │ │ 高层次规划 │ │ │
│ │ │ "关闭微波炉" │ │ "捡起枕头" │ │ │ │ │
│ │ └──────────────┘ └─────────────────┘ └──────────────┘ │ │
│ └────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
层次化推理
π₀.5 采用层次化推理流程,类似于 LLM 中的 Chain-of-Thought:
┌─────────────────────────────────────────────────────────────────────┐
│ π₀.5 层次化推理流程 │
├─────────────────────────────────────────────────────────────────────┤
│ ① 高层任务 │
│ "打扫卧室" │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ VLM 推理(高层) │ │
│ │ 输入:图像 + "打扫卧室" │ │
│ │ 输出:"捡起枕头" ← 自动生成子任务 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ② 子任务 │
│ "捡起枕头" │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Action Expert 推理(低层) │ │
│ │ 输入:图像 + "捡起枕头" │ │
│ │ 输出:[-1.7, 1.25, 3.14, ...] (50 步动作) │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ③ 执行动作 │
│ 机器人执行生成的动作序列 │
└─────────────────────────────────────────────────────────────────────┘
π₀ 与 π₀.5 核心差异对比
设计目标对比
| 维度 | π₀ | π₀.5 |
|---|---|---|
| 核心目标 | 灵巧操作(Dexterity) | 开放世界泛化(Generalization) |
| 评估场景 | 训练环境或类似环境 | 从未见过的全新环境 |
| 代表任务 | 折叠衣物、组装盒子 | 在新家庭中打扫厨房/卧室 |
训练方法对比
π₀ 依赖 Flow Matching Loss,Action Expert 直接更新 VLM Backbone,导致预训练知识被破坏。π₀.5 引入 Knowledge Insulation,梯度截断保护了 VLM Backbone,使得训练快 7.5 倍且语言理解更好。
数据策略对比
| 数据类型 | π₀ | π₀.5 |
|---|---|---|
| VLM 预训练 | ✅ | ✅ |
| 机器人动作数据 | ✅ | ✅ |
| Web 多模态数据 | ❌ | ✅ |
| 高层次语义标注 | ❌ | ✅ |
| 多环境数据(ME) | 有限 | ✅ |
| 跨具身数据(CE) | ✅ | ✅ |
性能对比
| 指标 | π₀ | π₀.5 |
|---|---|---|
| 训练步数 | 160K | 20K(快 7.5 倍) |
| 推理速度 | 快(Flow Matching) | 快(相同) |
| 分布内成功率 | 高 | 高 |
| OOD 成功率 | 有限 | 94% |
| 语言跟随率 | 较差 | 94% |
消融实验显示,Web 数据对 OOD 泛化最重要,多环境数据对所有条件都重要,跨具身数据提供通用物理技能。
模型结构差异(代码层面)
从 openpi 代码库来看,两者结构差异很小,主要体现在两点:
状态输入方式
# π₀:状态作为连续向量输入
state_embedding = self.state_proj(state)
# MLP 编码
# π₀.5:状态离散化为语言 token,作为 prefix 的一部分
state_tokens = tokenize_state(state)
# 离散化
时间步注入方式
# π₀:时间步与动作嵌入拼接
action_with_time = torch.cat([action_emb, time_emb], dim=-1)
output = self.mlp(action_with_time)
# π₀.5:使用 AdaRMS(Adaptive RMSNorm)
# 时间步条件动态调整归一化的 scale 和 shift
class AdaptiveRMSNorm:
def forward(self, x, cond):
normed = rms_norm(x)
# cond 生成 scale, shift, gate
scale, shift, gate = self.modulation(cond).chunk(3)
return normed * (1 + scale) + shift
总结
演进路线
第一代 VLA(RT-2, OpenVLA)使用离散动作 token,精度低速度慢。π₀ 引入 Flow Matching 连续动作和双专家架构,灵巧操作强但泛化有限。π₀.5 通过 Knowledge Insulation、Co-Training 和层次化推理实现了开放世界泛化。未来将朝向更强的推理、规划和自主改进能力发展。
核心结论
- π₀ vs π₀.5 的核心差异不在模型结构,而在训练方法和数据策略。
- Knowledge Insulation 是关键创新:Stop Gradient 保护 VLM 预训练知识,FAST Token 快速学习运动表示,训练快 7.5 倍,语言理解更好。
- Co-Training 实现泛化:Web 数据提供语义理解,多环境数据提供场景泛化,跨具身数据提供通用技能。
- 层次化推理:类似 Chain-of-Thought,先生成高层语言指令,再生成低层动作。
启示
π₀ 到 π₀.5 的演进表明,VLA 模型的发展方向是保护预训练知识,而非简单地端到端训练;需要多模态协同训练,融合 Web 数据、机器人数据和语义标注;应让模型学会'思考'而不只是'反应'。

