Physical Intelligence 的 π₀ 系列是具身智能领域最具影响力的 VLA(Vision-Language-Action)模型系列。理解它们的训练流程差异,对复现和部署至关重要。
Behavior Cloning(行为克隆) = 监督学习,让模型模仿人类专家的动作。
| 架构 | PaliGemma (SigLIP + Gemma 2B) + Action Expert (300M) |
| 数据 | 多任务、多机器人的 demonstration 数据(视觉+语言指令+动作) |
| 目标 | 预测动作块(action chunk)的 Flow Matching 损失 |
π₀.5 不使用传统的 MSE 损失预测动作,而是采用 Flow Matching:
传统 BC 是直接"背答案",Flow Matching 是学习"从噪声到动作的路径",类似扩散模型,生成更平滑、多样的动作。
RL with Experience and Corrections via Advantage-conditioned Policies
通过优势条件策略,利用经验数据和人工纠正进行强化学习。
π₀.5 的问题:
Value Function V(s,ℓ) 预测在给定状态 s 和语言指令 ℓ 下,距离任务完成还有多少个时间步。
Value Function 不是预测"任务能成功吗",而是预测"还要多久"。这使得模型能区分"快成功了"和"还很远"的状态。
Advantage A(s,a) 衡量采取动作 a 比平均水平好多少:
在训练时,I_t 作为文本标签注入到语言指令中:
任务文本: "pick up the cup"
↓ 注入优势标签
训练文本: "pick up the cup. Advantage: positive"(如果 I_t = 1)
或: "pick up the cup. Advantage: negative"(如果 I_t = 0)
部署当前策略 π_k,收集 rollout 数据。专家可在需要时干预(intervention)。
用所有数据训练/更新 Value Function,预测 return-to-go。
计算 advantage,二值化为指示器标签 I_t。
用 advantage-conditioned 数据训练策略,得到 π_{k+1}。
Human-in-the-Loop (HITL) 指在自主执行过程中,人类专家可以随时接管控制权,纠正机器人的错误动作。
HITL 过程中会记录以下信息:
| complementary_info.policy_action | 策略输出的原始动作 |
| complementary_info.is_intervention | 当前步是否在干预状态 |
| complementary_info.collector_policy_id | 动作来源(human 或 policy ID) |
| episode_success | episode 级别成功/失败标记 |
HITL 类似于驾校教练坐在副驾驶:学员(机器人)自己开车,但教练(专家)随时准备踩刹车、接管方向盘,并在事后指出哪里做错了。
i: 切换干预模式(策略 ↔ 遥控接管)
s: 标记成功并结束当前 episode
f: 标记失败并结束当前 episode
→: 提前结束当前 loop
←: 提前结束并重新录制当前 episode
Esc: 停止录制会话
| 维度 | π₀.5 | π₀.6* |
|---|---|---|
| 训练类型 | 纯监督学习 (Behavior Cloning) |
监督学习 + 离线 RL (Offline RL + BC) |
| 奖励信号 | 无(只需动作标签) | 稀疏奖励(任务成功/失败) |
| Value Function | ❌ 无 | ✅ 有(预测剩余步数) |
| 迭代改进 | ❌ 不支持 | ✅ ReCAP 循环迭代 |
| 数据要求 | 大量 demonstration | Demonstration + 自主 rollout |
| Human-in-the-Loop | ❌ 训练阶段不需要 | ✅ 部署阶段需要 |
| 适用场景 | 固定任务、数据充足 | 动态任务、持续学习 |
Evo-RL 是上交和 EvoMind 开源的 π₀.6* ReCAP 流程复现,基于 LeRobot 框架。
| ✅ 已实现 | Value Function 训练 (Pistar06)、Advantage 计算、ACP (Advantage-Conditioned Policy) 训练 |
| ✅ 已实现 | Human-in-the-Loop 数据收集 (lerobot-human-inloop-record) |
| ✅ 已实现 | 迭代训练循环(ReCAP) |
| ❓ 需确认 | 预训练阶段是否使用 Offline RL(论文中 π₀.6* 的预训练包含 Offline RL) |
使用 lerobot-human-inloop-record 收集 demonstration + 干预数据
lerobot-value-train --value.type=pistar06
lerobot-value-infer 计算 advantage 和 indicator 标签
lerobot-train 使用 ACP 标签训练策略
部署策略,收集下一轮数据,循环迭代
Evo-RL 的代码主要关注 后训练阶段(ReCAP)。对于预训练阶段:
理解 π₀ 系列的训练流程,有助于你在实际项目中做出正确的选择: