10 KiB
π0.7 最小复现
本项目是 Physical Intelligence π0.7 的最小复现,包含 MEM 视觉记忆、高层 subtask、visual subgoal、FAST 离散动作、flow action expert 和 training-time RTC。实现使用小型模型和极小数据集,可在单机上完成训练、推理与消融对比。
复现范围
本仓库使用小型自定义模块实现 memory、goal generation、high-level control、steerable metadata、CFG 和 real-time chunking。TinyMEMEncoder、TinyGoalGenerator、HighLevelPolicy 和 Pi07Mini 均为本项目的最小实现。
模型阶段与输入输出
| 阶段 | 输入 | 模块 | 输出 | 训练或验证目标 |
|---|---|---|---|---|
| 1. 历史构造 | 当前图像、过去 XY;不接受 future | deterministic history proxy | 6 帧 oldest-to-newest 图像、历史状态、共享当前状态的 ambiguous history pair |
检查无未来轨迹泄漏 |
| 2. Temporal memory | 历史图像与历史状态 | TinyMEMEncoder |
memory tokens / pooled memory embedding | 区分当前状态相同、过去路径不同的样本 |
| 3. Goal generation | 当前 observation、memory、任务文本 | TinyGoalGenerator |
endpoint heatmap / subgoal XY | 只监督 future endpoint,不把完整真值轨迹输入 policy |
| 4. High-level policy | observation、memory、任务与可见 metadata | HighLevelPolicy |
high-level context、goal/metadata logits | goal loss 与 high-level classification loss |
| 5. Steerable flow policy | high-level context、预测 goal、metadata、noisy action、flow time | Pi07Mini low-level action expert |
连续 action vector field [16,2] |
flow-matching loss |
| 6. RTC alignment | action chunk、随机 delay d∈[0,12]、已执行 action prefix |
real-time chunking target alignment | 从 action[d] 开始的 target 与有效位置 mask |
仅在有效位置计算 masked flow loss |
| 7. CFG inference | 同一 observation 的 conditional 与 metadata-omitted 两次前向 | classifier-free guidance | guided action chunk | 与普通 conditional、unconditional 和真值同图比较 |
| 8. 轨迹恢复 | normalized action deltas、历史终点、训练统计 | denormalize + cumulative sum | 未来 XY 轨迹 | 轨迹 MSE 与可视化,不等同安全指标 |
核心信息流:
history frames + history states
↓
TinyMEMEncoder ───────────────┐
│
current image + task ────────────────┼→ TinyGoalGenerator → predicted subgoal
│
optional speed/quality/mistake/control metadata
↓
HighLevelPolicy
↓
noisy action + flow time + RTC prefix → Pi07Mini action expert
↓
continuous action chunk
重点结构
1. MEM:短时历史而非单帧
PAI 的极小 manifest 只有一张相机图像,本项目依据已观测的过去 XY 对该图像做 确定性的微小平移和曝光变化,构造短时视觉 history proxy。它不是实际多帧视频, 只能验证 temporal memory 的接口。
ambiguous_history_pair 刻意构造两个“当前状态相同、历史路径不同”的序列。
完整模型应比 no_history 消融更能区分它们。这里的 MEM 仅表示本仓库的 temporal
memory encoder;在官方资料缺失时,不推断该缩写的官方全称。
2. Goal generator:只用 endpoint 监督
训练目标是 future trajectory 的最后一个 XY endpoint,经高斯渲染得到 heatmap。 API 只接受 endpoint,不接受整条 future trajectory,从而避免把低层动作答案作为 视觉 subgoal 条件泄漏给 action expert。推理和最终评估必须使用模型预测的 goal; 真值 heatmap 只可用于训练监督和 oracle 诊断。
3. High-level 与 steerable metadata
最小数据由一条 expert demonstration 确定性构造五种 policy mode:
| Mode | speed | quality | mistake | control |
|---|---|---|---|---|
| expert | normal | expert | none | human |
| fast | fast | good | none | autonomous |
| slow | slow | good | none | autonomous |
| understeer | normal | poor | understeer | autonomous |
| stop | slow | poor | stop | autonomous |
训练时 speed、quality、mistake、control 独立做 metadata dropout,任务文本
始终保留。这既检验属性是否能单独控制行为,也提供 CFG 所需的 omitted condition。
这些合成标签不是人类偏好数据,也不能证明真实世界可控性。
4. RTC:控制延迟下的 action chunk 对齐
若推理耗时等价于已经执行 d 个 action,模型不应再次预测旧 chunk 的开头:
original target: a0 a1 ... a15
delay d=4: a4 a5 ... a15 PAD PAD PAD PAD
valid mask: 1 1 ... 1 0 0 0 0
默认随机采样 d=0..12,返回已执行 prefix,并对 padding tail 屏蔽损失。RTC 在
这里表示训练/评估时的离线对齐机制,不包含实际控制器、异步推理线程或硬实时保证。
5. CFG
推理时在相同 observation、goal、memory 和初始噪声下计算 metadata conditional 与 metadata-omitted 预测:
v_cfg = v_uncond + beta * (v_cond - v_uncond)
默认 beta=2.0。必须同时报告 beta=0,1,2,因为高 guidance 可能放大过拟合、
产生分布外动作,不能只展示最好看的曲线。
数据与防泄漏约束
- history proxy 和 ambiguous pair 只依赖当前图像与过去状态;
- subgoal condition 只使用 endpoint target,不能编码完整 action chunk;
- flow expert 训练时不能读取 teacher-forced 真值动作 token;
- 所有模型对比使用同一 initial noise、归一化统计和 RTC delay;
- 数据增强的随机数由 sample index 和 seed 决定,保证复现实验;
- 仓库不包含或重新分发原始 PAI 数据。
安装
cd pi07-minimal-validation
python -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
python -m pip install -e '.[dev]'
默认数据路径:
../../alpamayo/alpamayo-qwen05b-validation/data/processed/overfit_manifest.jsonl
若路径不同,请修改 configs/overfit.yaml 的 data.source_manifest。
测试
pytest -q
测试至少应覆盖:history/goal 无 future 泄漏、ambiguous history、metadata 独立 dropout、五类策略构造、action normalization、flow matching、RTC shift/mask、 MEM/goal/high-level/policy 前向形状、CFG 公式和 checkpoint reload。
三阶段过拟合训练
pi07mini-train --config configs/overfit.yaml
或:
python -m pi07mini.train --config configs/overfit.yaml
| 阶段 | 默认步数 | 更新内容 | 目的 |
|---|---|---|---|
| goal | 300 | MEM + goal generator | 先证明 history-conditioned endpoint heatmap 可被记忆 |
| high-level | 200 | MEM + high-level policy | 记住五类 metadata/goal 高层条件 |
| policy | 900 | 完整 Pi07Mini |
联合训练 metadata dropout、flow action 与 RTC masked target |
默认预算面向极小样本过拟合,不代表官方训练 schedule。训练完成后应保存实际 训练会生成 loss history、checkpoint、evaluation JSON 和消融效果图。
当前最小实验结果
固定相同 flow 初始噪声时,高层策略预测 steer_left。轨迹 MSE 如下:
| 条件 | MSE |
|---|---|
| Full context + oracle endpoint goal | 0.470 |
| Full context + generated goal | 0.491 |
| No metadata | 2.458 |
| No goal | 4.043 |
| No history | 2.159 |
| Metadata CFG beta=2 | 10.576 |
完整上下文明显优于移除 metadata、goal 或 history 的消融。TinyGoalGenerator 的像素级结果仍较粗糙;生成 goal 在当前 policy 上可提供有效条件,但不能视为真实未来图像生成能力。较强 CFG 在此极小数据实验中造成退化。
推理、画图与必要消融
pi07mini-infer --checkpoint outputs/overfit/checkpoint.pt
或:
python -m pi07mini.infer --checkpoint outputs/overfit/checkpoint.pt
最终展示不能只有 full model。相同样本、noise seed 和 RTC delay 下至少比较:
| 实验 | 移除内容 | 要回答的问题 |
|---|---|---|
full |
无 | 完整链路能否过拟合并重建对应 mode 的轨迹? |
no_metadata |
speed/quality/mistake/control | policy mode 差异是否真的来自 steerable condition? |
no_goal |
predicted goal | endpoint condition 是否改善几何方向和终点? |
no_history |
MEM history,只保留当前 observation | temporal history 是否解决相同当前状态的歧义? |
还必须提供:
- predicted goal heatmap 与 ground-truth endpoint heatmap;
- expert/fast/slow/understeer/stop 的真值与预测轨迹;
- CFG
beta=0,1,2; - RTC delay
0,4,8,12的 masked trajectory error; - 每个 ablation 的轨迹 MSE,以及 goal endpoint error;
- full/no-history 在 ambiguous history pair 上的差异指标。
小样本过拟合中,某个消融偶然更好并不证明模块无效;应展示全部固定设置结果, 不调换 noise seed 或只挑选最佳样本。
安全限制
- 严禁连接车辆、机械臂、移动机器人或任何会造成物理影响的执行器。
- 合成 fast/understeer/stop 轨迹只用于离线可控性探针,不是安全驾驶示范。
- endpoint 命中、轨迹 MSE 下降、loss 收敛和 CFG 改善都不代表闭环稳定性。
- history proxy 不是视频;RTC target shift 也不是硬实时系统验证。
- metadata 可控性可能放大危险属性,尤其是
fast、poor或高 CFG beta。 - 真实部署至少需要真实时序传感器、闭环 rollout、OOD 与延迟压力测试、动力学 约束、碰撞检查、冗余控制器、故障降级、急停和人工监督。
- PyTorch checkpoint 使用 pickle 机制,只加载可信来源的文件。
能得出的结论
成功实验最多能说明:本仓库定义的 memory、endpoint goal、high-level metadata、 conditional flow、CFG 与 RTC 对齐可以在几个合成 PAI trajectory mode 上形成一条 可训练、可消融的最小链路。它不能证明与未公开 π0.7 的结构或数值等价,不能 证明 emergent capability,也不能支持任何真实世界安全或泛化主张。
可核验背景资料
在原始 π0.7 论文或官方源码可核验前,本 README 不提供推测性的论文链接、arXiv 编号或官方结果表。