VLA 与 WAM 数据预处理
真机与公开数据训 VLA、世界动作模型时,从统一格式到混合采样的主流预处理模式。
业界已经形成一个比较稳定的流水线:先把异构机器人数据对齐成统一轨迹格式,再做质量过滤、时序切块、视觉 / 语言 / 动作三路编码,最后按 embodiment 混合采样。 VLA 和世界模型(WAM / World-Action Model)前半段几乎共用,后半段分叉。
共同前置:统一数据容器#
几乎所有实验室和公司都会先把原始 rosbag / hdf5 / mp4 转成同一种 episode 结构:
| 字段 | 内容 |
|---|---|
observation.images.* | 多相机 RGB,键名固定(wrist / front) |
observation.state | 本体感觉,与动作严格对齐 |
action | 控制指令 |
task / annotation | 自然语言任务描述 |
timestamp | 硬件同步后的时间戳 |
主流容器:
- RLDS / OXE:OpenVLA、Octo、早期 Google RT 系列
- LeRobot v2 +
modality.json:GR00T、\(\pi\) 开源栈、多数新公司 - WebDataset shard:NVIDIA Cosmos 世界模型大规模视频
没有这一步,后面的归一化和混合采样都做不了。参考 OpenVLA 数据处理 和 GR00T 自定义本体。
质量过滤#
这是现在最关键、也最容易被忽略的一层。VLA 和 WAM 都会做,侧重点不同。
去静止 / 去空闲。 遥操作开头、结尾、思考停顿会让策略学会「在 home 位发零动作」。Physical Intelligence 的 DROID 处理会按关节速度找 idle 段:连续空闲超过约 7 帧就丢掉,有效段至少约 16 帧(约 1 秒),并裁掉段尾。见 openpi 的 idle filter。
只留成功 episode,并限制过长轨迹。 \(\pi_{0.5}\) post-training 明确过滤失败回合和超长回合。见 π0.5 论文。
世界模型额外做视频质量闸门(NVIDIA Cosmos Curator):
- 把长视频切成短 clip:优先用 TransNetV2 在镜头切换处切开(切镜检测),也可以按固定秒数硬切(例如每 5 秒一段)
- 运动过滤:去掉几乎静止的画面
- 美学 / 模糊阈值
- 可选 VLM 语义过滤
时序预处理#
| 模式 | 用途 |
|---|---|
| Action chunking | 一次预测未来 8–50 步,掩盖推理延迟。\(\pi\) 常用约 50 步 / 50 Hz;GR00T N1.7 的 horizon 从 16 扩到 40 |
| 历史观测窗口 | GR00T 用负 delta_indices,如 [-2,-1,0] |
| 相对动作 + 绝对夹爪 | 关节 / 末端用 delta,夹爪用绝对开合,跨本体更好迁 |
| 自适应 chunk | Knowing When to Stop 用内部 cross-attention 决定何时截断 chunk,而不是固定长度 |
| 因果视频 tokenize | Cosmos 世界模型要求 tokenizer 不看未来帧,才能图 / 视频联合训 |
视觉预处理#
VLA 常见:
- 统一分辨率(OpenVLA 按 backbone 的
image_sizesresize) - 训练时随机 crop / color jitter;若训练开了 aug,推理必须
center_crop=True,否则成功率会掉。见 OpenVLA-OFT - 多相机:第三人称 + 腕部;腕部对接触任务几乎必需
- 相机名必须全集一致,否则混合数据集对不齐
WAM / 视频世界模型额外:
- 镜头切分 → clip embedding(去重)→ VLM 自动 caption
- 因果压缩 tokenizer(连续 latent 走 diffusion,离散 latent 走 AR)
- 图文数据与机器人视频联合,补外观多样性
见 Cosmos WFM。
语言预处理#
已经从「一条任务字符串」变成多层语义:
- 整任务指令:
pick up the cup - 子任务标注:\(\pi_{0.5}\) 把 “clean the bedroom” 标成 “adjust the blanket / pick up pillow”,并让模型先预测子任务文本再预测动作
- 框 / 物体 grounding:在预测子任务前先预测相关 bbox
- 口头监督:人在旁边喊修正,作为 post-training 数据
- 互联网图文 / 网页数据:防止机器人数据把语义能力冲掉
- VLM recaption:Cosmos 用 Qwen / Cosmos-Reason 给 clip 生成更密的描述
近期 EmbodiedSkills 也在强调:编排、训练、部署要共用同一套技能 / 指令表示。具体怎么标,见 真机回流数据标注。
动作与本体感觉编码#
这是 VLA 和纯视频 WAM 最大的差别。
归一化必须按数据集 / 按本体分开算。 OpenVLA 对每个 OXE 子集做 min-max,推理用对应 unnorm_key。换机器人微调后如果不换 stats,动作会完全错。
常见动作表示:
| 表示 | 谁在用 |
|---|---|
| 256-bin 离散 token | 早期 OpenVLA |
| FAST:对 chunk 做 DCT + 量化 + BPE | Physical Intelligence,预训练更快 |
| Flow matching / diffusion 连续 chunk | \(\pi_{0.5}\) post-training、GR00T System 1 |
| L1 回归头 | OpenVLA-OFT 的高速微调 |
零动作过滤、夹爪二值化、四元数 / 欧拉统一 也是 OXE 标准化 transform 的一部分。
GR00T 再加一层 embodiment tag:同一套网络,用 tag 选择归一化统计、相机键、动作维(N1.7 状态 / 动作维扩到 132)。见 NVIDIA GR00T N1.7。
混合采样#
单数据集不够。主流是加权混合:
- OpenVLA:
OXE_NAMED_MIXTURES,Bridge / DROID / RT-1 等不同权重 - \(\pi_{0.5}\):多机器人操作 + 高层语义动作 + 网页数据联合预训练,再用目标场景成功轨迹 post-train
- GR00T:跨人形 / 机械臂 / 仿真,靠 embodiment tag 区分
- Cosmos:先海量无动作视频预训练世界模型,再在 video–action 序列上 post-train,变成「给定动作预测下一帧」的 WAM
VLA 与 WAM 的分叉#
原始多相机视频 + 遥操作
│
▼
统一格式 / 同步 / 切 episode
│
├──────────────┬─────────────────
▼ ▼
VLA WAM / 世界模型
去 idle、保成功 镜头切分、运动 / 美学过滤
多相机 + 本体 clip embedding 去重
任务 / 子任务文本 VLM caption + T5 embed
动作归一化 + tokenize 因果 video tokenize
action chunk WebDataset shard
embodiment mix 再(可选)对齐 action 条件- VLA:监督信号是动作;语言是条件;图像多是当前帧或短历史。
- WAM:监督信号是未来视频(或下一状态);动作是条件;更依赖长视频质量和 caption。NVIDIA Cosmos、LeRobot 里的 FastWAM / VLA-JEPA 走这条。
公司和近日论文#
| 来源 | 预处理侧重点 |
|---|---|
| Physical Intelligence \(\pi_{0.5}\) | FAST 离散预训练 → flow matching 连续 post-train;子任务 + bbox + 口头指令 |
| NVIDIA GR00T | LeRobot + embodiment tag;相对关节 + 绝对夹爪;horizon 40 |
| NVIDIA Cosmos | 视频策展流水线,再 post-train 成 action-conditioned 世界模型 |
| OpenVLA / OFT | OXE 标准化、per-dataset 归一化、腕部相机、center crop 对齐 |
| Hugging Face LeRobot | 统一 images/state/action/task,一套数据可训 π0、GR00T、世界模型 |
| Facet-0 | 接触丰富操作,更依赖腕部视觉与力 / 接触相关对齐 |
| Adaptive chunking | 不再固定 chunk 长度 |
| REFACTOR-VLA | 把动作抽成可复用的 typed motor program |
Figure、1X、Google DeepMind 公开细节更少,但公开系统同样是:多相机同步、语言指令、动作分块、成功轨迹筛选、跨本体混合。
自己做一套的最小顺序#
- 录成 LeRobot 或 RLDS,相机键固定,图-状态-动作硬件同步
- 按关节速度去 idle,只留成功 episode
- 动作:关节相对、夹爪绝对;存一份 per-dataset 统计
- 语言:任务句 + 子任务时间戳(长程任务必做)
- 训练开图像增强,推理用同样的 center crop
- VLA 用 action chunk;若还训 WAM,把同一批视频再走切镜–caption–tokenize
相关笔记#
相关论文#
- π0.5: a Vision-Language-Action Model with Open-World Generalization
- Fine-Tuning Vision-Language-Action Models: Optimizing Speed and Success
- Cosmos World Foundation Model Platform for Physical AI
- Knowing When to Stop: Adaptive Chunking for Vision-Language-Action Models
- EmbodiedSkills: Shared Skill Representations for Orchestration, Training, and Deployment