DreamZeroGR00T N2前戏:World Action Models are Zero-shot Policies
DreamZeroGR00T N2前戏World Action Models are Zero-shot PoliciesDreamZero这是一种基于预训练视频扩散模型主干的世界动作模型 (WAM)。与 VLA 不同WAM 通过预测未来世界状态和行为来学习物理动力学并使用视频作为世界如何演变的密集表示。至关重要的是通过模型和系统优化使 14B 自回归视频扩散模型能够以 7Hz 执行实时闭环控制。WAM 由基于网络规模视频数据训练的视频扩散模型初始化利用丰富的时空先验来共同生成以语言指令和观察为条件的未来帧和动作。这将动作学习从密集的状态动作模仿转变为逆动态——使运动命令与预测的视觉未来保持一致。本文解决两个问题①传统VLA物理感知能力不足导致的泛化性差 ②视频生成速度慢本文引入了各种工程方法来提高生成视频的速度在推理的时候采用自回归架构并利用闭环设置执行每个动作块后我们用 KV 缓存中的真实观测值替换预测帧消除复合错误同时通过 KV 缓存实现高效推理并保留本机帧速率以实现精确的模态对齐参见图 4 右侧。特别是DreamZero 经过训练可以自回归预测视频帧和相应的动作。自回归生成具有以下优点1它通过利用 KV 缓存实现更快的推理速度2策略模型可以利用视觉观察历史作为下一代的指导3它避免了双向模型固有的模态对齐挑战视频、动作和语言对齐。具体来说双向扩散通常需要处理固定长度的序列这通常需要视频子采样这会扭曲原生 FPS可能会损害视频动作对齐。另一方面自回归生成利用 KV 缓存来支持单个前向传递中的任意长上下文。这保留了原始帧速率确保视频帧和机器人动作之间的精确对齐。对于②还有个比较巧妙的设计点提出了DreamZero-FlashDreamZero蓝色将耦合噪声用于视频和动作均统一。 DreamZero-Flash红色通过 Beta 分布将视频偏向高噪声状态同时保持动作噪声均匀训练模型从嘈杂的视觉环境中预测干净的动作。原版 coupled 训练的问题 如果 video 和 action 总是共享同一个 t那模型训练时看到的总是 noisy video noisy action 或较干净 video 较干净 action 也就是两者噪声水平同步。但在快速推理尤其是few-step / single-step inference时现实情况更像是当前 chunk 的 video 还比较 noisy 但 action 这边需要赶紧尽快变“可执行的干净动作” 这时模型就会遇到没怎么训练过的情况“我要在视觉上下文还很脏的时候先把动作预测准。”DreamZero-Flash 的想法所以作者故意把 video 训练成“经常很脏”但 action 仍然正常均匀采样。 这样模型会更常见到这样的样本noisy video context但 action 需要被预测出来论文原话就是“this exposes the model to configurations where it must predict clean actions from noisy visual context”也就是让模型学会“从噪声很大的视觉条件里也能把动作弄干净”对于双向WAMs现实任务长度不固定但双向WAMs模型窗口往往是固定的。 它更像是在一个固定 clip 内做联合去噪、联合建模。论文正文直接说bidirectional diffusion typically requires processing fixed-length sequences。 给定一条长任务语言标注模型必须学会“这句指令对应的是视频里的哪一段时间区间”。问题在于如果用双向架构、又不做视频抽帧那模型常常只能生成这个任务区间里的一小部分视频。结果就是语言说的是完整任务视频只覆盖了其中一截语言描述的动作可能在当前视频帧里根本还没发生这就会出现language-video mismatch。 那为什么双向 WAM 要“抽帧”为了缓解上面这个错位一个自然想法就是既然一句语言覆盖的是整段任务那我就把整段任务的视频抽稀压缩到固定长度窗口里。这就是图中Video Subsampling的意思。 作者原文就说为了让视频和任务 caption 覆盖同一个时间区间双向方法往往需要subsample the video to match the task caption interval。举个简单例子原始视频是 5 FPS整段任务 6 秒共 30 帧但双向模型这次只能处理 6 帧那就只能从 30 帧里抽 6 帧出来这样做的好处是 这 6 帧大致覆盖了整段任务所以跟语言表面上更“对应”了。 坏处是原本连续的时间轴被压缩了。所以上面到图片说的这些就是在说明自回归的好。伪代码写的非常清晰实验的话比较常规了。然后一些pytorch和cuda的加速就比较偏向工程化/硬件了比较常规了。