先记住一句话
数据飞轮不是“rollout 全部回灌”,而是发现能力缺口、选择高价值状态、获得可信反馈、受控更新,再用固定评测确认缺口真的缩小。
1. 先建立失败 taxonomy
| 层 | 典型失败 | 优先证据 |
|---|---|---|
| 数据 | 错位、坏标定、标签错、覆盖缺口 | batch 可视化、时间线、schema |
| 感知/grounding | 选错对象、遮挡丢失、深度错误 | 注意/检测、反事实指令、多视角 |
| 策略 | 动作模式错、不会恢复、长时偏航 | proposed action、value、phase |
| 动作接口 | frame/单位/归一化/夹爪时机错 | 反归一化轨迹、controller input |
| 系统 | 延迟、buffer、RPC、丢帧 | 端到端 timestamps、P95 trace |
| 控制/硬件 | IK、限位、跟踪、接触、故障 | executed action、error、force |
2. 最小诊断顺序
- 确认机器人执行的是否真是模型提议动作。
- 用视频 + state/action 时间线确定第一次偏离发生在哪里。
- 判断是目标理解、到达、抓取、搬运、放置还是恢复阶段。
- 重放同一 observation,多 seed 采样,看是系统性错误还是分布多峰。
- 改变一个条件做反事实:对象、位置、指令、视角、延迟。
- 根据失败层选择数据、模型或系统修改,而不是统一“再训练久一点”。
3. 一个真正的数据飞轮
固定 capability suite
↓ 发现 failure cluster
主动选择最有信息量的 reset / scene / task
↓
autonomous rollout + human intervention + verifier
↓
质量过滤、失败归因、优先级与 replay 配额
↓
SFT / weighted BC / value / RL / latency post-training
↓
offline gates → canary → full evaluation
└──────── regression 则 rollback ────────┘
采集策略可以按不确定性、失败频率、任务价值、覆盖空白和预期学习增益选样。只采最常失败的状态可能过拟合一个 bug;还要保留 coverage 与旧能力 replay。
4. 把 technique 写成可证伪假设
模糊说法
“加 history 会更好”“WAM 更懂物理”“RTC 更平滑”。
可检验说法
在遮挡 0.5 秒、相同数据和算力下,两帧 history 将目标重捕获率提高;去除 history 则消失。
每个实验写:假设、机制、唯一主要变量、预期观测、反证条件、所需样本量和 failure breakdown。结果不支持也能积累知识。
5. 研究中的 matched ablation
- 研究 WAM:固定 action model/data/compute,只改变 future objective 或 attention path。
- 研究跨本体:固定总 batch,比较共享层、专用 head 与 sampling。
- 研究 RTC:固定 policy,扫 latency/jitter,比较同步、ensemble、RTC 和 training-time prefix。
- 研究后训练:固定新增 rollout,比 BC、intervention-only、weighted BC 与 RL。
- 研究 3D:固定 cameras/data augmentation,比较 RGB、多视角和 calibrated 3D。
6. 推荐学习与实作顺序
- 亲手画一条 episode,确认 observation/action/time 语义。
- 训练一个小 BC/action-chunk baseline,完成闭环部署。
- 加入多视角、history 和 VLM condition,每次做单变量 ablation。
- 比较 autoregressive、regression、diffusion/flow action head。
- 加入 future latent 或 video objective,验证 WAM 收益来自哪里。
- 建立 intervention/失败数据集,再尝试 value 或 RL 后训练。
- 最后优化 RTC、cache、distillation 与系统吞吐。
这条顺序刻意先完成小闭环:没有可靠 rollout、日志和评测,模型越复杂,越难知道哪里错。
7. 你最终应该能回答的问题
- 这批数据的 action 在什么 frame、频率和控制语义下定义?
- 模型从 VLM 继承了什么,robot data 又教了什么?
- WAM 的 future target 在训练和推理中分别起什么作用?
- 策略失败是 distribution shift、表达不足,还是时延/控制问题?
- 下一批 100 条数据应该收在哪里,为什么信息增益最大?
- 新增 technique 的提升能否被单变量实验归因?
8. 四个飞轮决策计算
例 1:失败 Pareto
200 次失败中 grounding 80、抓取 60、延迟 30、其他 30。前两类共 140,占 70%;先处理它们比平均撒数据更可能提高总体成功率。
例 2:采集价值分数
用 score=失败频率×任务价值×可修复性。A 为 $0.4×3×0.8=0.96$,B 为 $0.2×5×0.6=0.60$,有限采集预算优先 A;权重必须预先定义。
例 3:matched ablation
Baseline 与新方法各 100 trials,分别成功 62/100、74/100,绝对提升 12 点。若新方法还多用了 2×数据,就不能把全部 12 点归因于 architecture。
例 4:replay 配额
新增失败修复数据 10k,旧能力 replay 40k,每 epoch 新数据占 20%。若直接按库大小混合而旧库 1M,新数据只占约 0.99%,几乎没有更新信号。
不是背完 18 篇,而是面对一个新 VLA/WAM repo、paper 或 robot failure,能沿“数据 → 表示 → 目标 → 推理 → 控制 → 证据”独立拆解。
自测
1. 为什么不能把所有 rollout 直接回灌 BC?
失败和低质量动作会被当正例,热门状态还会挤掉长尾能力;需要反馈、过滤与采样策略。
2. matched ablation 的目的是什么?
隔离唯一主要变量,让性能差异能够归因于所研究的机制。
3. 为什么先做小闭环 baseline?
它验证完整数据、动作、部署与评测链路,为后续复杂模型提供可信对照。