WAM-202601:Cosmos Policy02【微调训练数据构造方式:把非视频数据伪装成视频帧,插到原本视频帧序列之间,通过mask构造三类训练任务:①Policy训练、②WM训练、③VF训练】
Cosmos Policy 论文 Figure 2 / Figure 8:微调训练数据构造方式与原理详解
论文:Cosmos Policy: Fine-Tuning Video Models for Visuomotor Control and Planning
arXiv: 2601.16163
1. 核心问题:视频模型如何变成机器人策略模型?
Cosmos Policy 的出发点是:原始Cosmos-Predict2-2B-Video2World是视频生成模型,它原本只会做:
输入起始图像 + 文本 → 生成后续视频帧 \text{输入起始图像 + 文本} \rightarrow \text{生成后续视频帧}输入起始图像 + 文本→生成后续视频帧
但机器人控制需要的不只是视频帧,还需要:
机器人本体状态 \text{机器人本体状态}机器人本体状态
动作 \text{动作}动作
未来状态 \text{未来状态}未来状态
状态价值 \text{状态价值}状态价值
多相机视角 \text{多相机视角}多相机视角
原始 Cosmos-Predict2 不支持这些机器人控制模态。
论文的做法不是新增 action head、value head 或 world model head,而是提出Latent Frame Injection:把这些非图像模态编码成“视频 latent frame”,直接插入视频扩散模型的 latent 序列中。
论文明确说明,Cosmos Policy 通过单阶段 post-training,在机器人演示数据上微调 Cosmos-Predict2,且不做架构修改。(ar5iv)
2. Figure 2:训练样本的抽象结构
Figure 2 展示的是 Cosmos Policy 的 latent diffusion sequence。它可以理解为把一条机器人轨迹样本构造成如下序列:
s t → a t : t + k → s t + k → V ( s t + k ) s_t \rightarrow a_{t:t+k} \rightarrow s_{t+k} \rightarrow V(s_{t+k})st→at:t+k→st+k→V(st+k)
其中:
- s t s_tst表示当前状态,包括当前机器人本体状态和当前多视角图像;
- a t : t + k a_{t:t+k}at:t+k表示一个动作块,也就是连续多个时间步的动作;
- s t + k s_{t+k}st+k表示执行动作块后的未来状态;
- V ( s t + k ) V(s_{t+k})V(st+k)表示未来状态的价值,即 expected rewards-to-go。
Figure 2 的关键是:模型不是只预测动作,而是同时把policy、world model、value function都放进同一个 latent diffusion 序列里。
论文描述 Figure 2 时说,原始图像先被 tokenizer 编成 latent frames,然后额外模态被插入 latent frame sequence,最后模型在 clean frames 条件下,对 noised latent frames 做 denoising。(ar5iv)
3. 一个完整训练样本如何构造?
以论文中的三相机机器人为例:两个第三人称相机 + 一个腕部相机。训练时会构造 11 个 latent frames:
[ blank , current proprio , I t w r i s t , I t c a m 1 , I t c a m 2 , a t : t + k , future proprio , I t + k w r i s t , I t + k c a m 1 , I t + k c a m 2 , V ( s t + k ) ] [ \text{blank}, \text{current proprio}, I_t^{wrist}, I_t^{cam1}, I_t^{cam2}, a_{t:t+k}, \text{future proprio}, I_{t+k}^{wrist}, I_{t+k}^{cam1}, I_{t+k}^{cam2}, V(s_{t+k}) ][blank,current proprio,Itwrist,Itcam1,Itcam2,at:t+k,future proprio,It+kwrist,It+kcam1,It+kcam2,V(st+k)]
论文原文列出的 11 个位置分别是:
- blank placeholder(空白占位符)
- robot proprioception(机器人本体感知,例如末端位姿或关节角)
- wrist camera image(腕部相机图像)
- first third-person camera image(第一个第三人称相机图像)
- second third-person camera image(第二个第三人称相机图像)
- action chunk(动作块)
- future robot proprioception(未来机器人本体感知)
- future wrist camera image(未来腕部相机图像)
- future first third-person camera image(未来第一个第三人称相机图像)
- future second third-person camera image(未来第二个第三人称相机图像)
- future state value(未来状态价值)
其中第 2、6、7、11 项是新增非图像模态;第 3、4、5、8、9、10 项是多视角图像模态。(ar5iv)
4. Figure 8:训练数据构造的工程实现
Figure 8 是 Figure 2 的详细实现版。它回答了一个关键问题:
非图像的机器人状态、动作和值,如何真的变成视频 latent frame?
4.1 先构造“伪视频图像序列”
训练数据一开始不是直接构造 latent,而是先构造一个 image sequence。这个序列里既有真实相机图像,也有全零 blank images。
blank images 的作用是占位:
blank image → VAE latent placeholder \text{blank image} \rightarrow \text{VAE latent placeholder}blank image→VAE latent placeholder
然后这些 placeholder latent 会被非图像模态覆盖。论文 Figure 8 的说明中明确说:顶部行插入 all-zero blank images,经过 VAE tokenizer 编码成 latent frames;中间行再用 robot proprioception、actions、value 完全覆盖这些 placeholder latent frames。(ar5iv)
4.2 为什么最前面有一个 blank frame?
Figure 8 里最前面单独放了一个 blank placeholder。这个不是机器人语义信息,而是为了适配视频 VAE 的 tokenization 机制。
Cosmos-Predict2 / Wan2.1 tokenizer 的特点是:
第一张图像单独编码 \text{第一张图像单独编码}第一张图像单独编码
后续图像则按 4 张一组做时序压缩。论文说明,为了让当前时刻观测和未来时刻观测拥有相似结构的 latent representation,作者把当前观测和未来观测都放在
