Video Prediction Policy 精读
论文:Video Prediction Policy: A Generalist Robot Policy with Predictive Visual Representations
你给出的 arXiv 入口目前对应 2025 年 5 月更新的 v2,论文后来发表于 ICML 2025,并被选为 Spotlight。下面主要按照 ICML 终稿讲解;它与早期 arXiv 版本在部分实验数字和 baseline 上略有更新,但核心方法完全一致。(arXiv)
1. 先用一句话理解 VPP
传统机器人策略是:
VPP 则是:
这里最关键的一点是:
VPP 在执行时并不真正生成完整视频,而只运行视频扩散模型的一次前向传播,读取中间层 latent,把它当作带有未来信息的视觉编码。
因此,它不是“先花几十步生成视频,再根据视频控制机器人”,而是把视频生成模型改造成一个 predictive vision encoder。(ar5iv)
2. 论文试图解决什么问题?
2.1 传统视觉编码器只理解“现在”
一般的机器人策略使用 ImageNet、CLIP、R3M、VC-1、Voltron 等视觉编码器:
这些编码器通常通过以下目标预训练:
-
单张图像重建;
-
masked autoencoding;
-
两帧对比学习;
-
图像—文本对齐。
它们擅长回答:
-
当前有哪些物体?
-
物体在哪里?
-
当前场景语义是什么?
但机器人控制还需要回答:
-
这个杯子接下来应该向哪个方向移动?
-
机械臂接近物体后可能发生什么?
-
当前动作序列最终会形成怎样的状态?
作者认为,静态视觉编码器没有显式建模这种未来动力学信息。(ar5iv)
2.2 视频扩散模型天然包含未来表示
视频扩散模型需要完成:
即给定当前图像 和语言指令 ,预测未来视频 。
为了完成这个任务,它的中间特征不能只编码“当前是什么”,还必须编码:
-
物体如何移动;
-
机械臂如何运动;
-
接触可能在哪里发生;
-
任务完成后的未来状态;
-
整段时间上的变化趋势。
作者把这些具有时间维度的中间特征称为:
因此,论文的核心假设是:
一个训练良好的视频生成模型,其内部表示可能比静态视觉编码器更适合机器人动作学习。
这也是整篇论文真正的新意。(ar5iv)
3. VPP 整体架构
VPP 分成两个阶段。
Stage 1:训练任务可控的视频预测模型
先把 Stable Video Diffusion 微调成机器人操作领域的文本条件视频模型:
这个模型叫做:
Stage 2:用视频模型的 latent 学动作
冻结 TVP,不再更新。
给定当前图像、语言和随机噪声,只运行 TVP 一次前向,提取多个中间层特征:
然后用 Video Former 压缩这些高维时空特征,最后通过一个 DiT Diffusion Policy 输出动作序列:
论文将这个过程称为学习一个 implicit inverse dynamics model:模型不显式计算两个图像间的逆动力学,而是直接从预测未来的 latent 中恢复动作。(ar5iv)
4. Stage 1:Text-guided Video Prediction
4.1 视频扩散基础
对于真实视频 ,前向扩散不断加入高斯噪声:
$$
x_t
\sqrt{\bar{\alpha}_t}x_0
+
\sqrt{1-\bar{\alpha}_t}\epsilon,
\qquad
\epsilon\sim\mathcal N(0,I).
p_\theta(x_{t-1}\mid x_t),
逐步从噪声恢复视频。 这里注意两个“时间”: - 视频中的物理时间:第 $1,\dots,T$ 帧; - diffusion timestep:噪声等级 $t$。 二者不是一回事。 --- ## 4.2 从 SVD 改造 TVP 作者使用约 1.5B 参数的 Stable Video Diffusion 作为初始化,然后做了两个主要改动: 1. 加入 CLIP 文本特征,通过 cross-attention 注入任务指令; 2. 生成长度为 16 帧、分辨率为 $256\times256$ 的视频。 条件包括: - 初始观察 $s_0$; - 语言 embedding $l_{\text{emb}}$; - noisy video latent $x_t$。 模型写作:V_\theta(x_t,l_{\text{emb}},s_0).
TVP 使用的是预测干净视频 $x_0$ 的训练形式: # $$ \mathcal L_D \mathbb E_{x_0\sim D,\epsilon,t} \left[ \left| V_\theta(x_t,l_{\text{emb}},s_0)-x_0 \right|_2^2 \right].也就是说,这里的网络更接近 -prediction,而不是经典 DDPM 中直接预测噪声 。TVP 完成微调后会被冻结,动作学习阶段不会继续修改它。(ar5iv)
4.3 为什么可以混合人类视频与机器人视频?
视频预测目标只要求:
它不要求视频必须带机器人 action 标注。
因此作者可以统一使用三类数据:
-
:人类操作视频;
-
:互联网机器人操作视频;
-
:目标机器人或下游任务视频。
总损失为:
$$
\mathcal L_{\text{video}}
\lambda_H\mathcal L_{D_H}
+
\lambda_R\mathcal L_{D_R}
+
\lambda_C\mathcal L_{D_C}.
x_{t’}\approx\epsilon.
(x_{t’},l_{\text{emb}},s_0)
V_\theta(x_{t’},l_{\text{emb}},s_0).
一次前向产生的图像仍然很模糊,但中间特征已经包含大致的运动趋势: - 机械臂向哪里移动; - 物体大概如何变化; - 目标位置在哪里; - 未来多帧的整体轨迹。 可以把它理解成: > 完整去噪负责把“未来意图”渲染成精确像素;但动作控制可能只需要渲染之前的粗粒度动力学结构。 这有点类似人类做动作时,并不需要在脑中渲染一段高清未来视频,只需要形成粗略的运动计划。 --- # 6. 多层 Feature Aggregation TVP 的第 $m$ 个 upsampling layer 特征写成:L_m
V_\theta(x_{t’},l_{\text{emb}},s_0)_{(m)},
L_m
\in
\mathbb R^{T\times C_m\times W_m\times H_m}.
L’_m=\operatorname{Interpolation}(L_m),
F_p
\operatorname{Concat}
\left(
L’_0,L’_1,\ldots,L’_M
\right).
Q\in\mathbb R^{T\times L\times d},
其中: - $T$:预测时间长度; - $L$:每一帧使用的 query 数; - $d$:token 维度。 对于每个视频时刻 $i$,query 对多个相机视角做 spatial attention: # $$ Q'_i \operatorname{SpatAttn} \left( Q_i, F_{p,i}^{\text{static}}, F_{p,i}^{\text{wrist}} \right).把所有时间步连接起来:
再沿时间维做 temporal attention:
$$
Q”
\operatorname{FFN}
\left(
\operatorname{TempAttn}(Q’)
\right).
\text{空间/多视角聚合}
\rightarrow
\text{时间聚合}
\rightarrow
\text{固定长度 action condition tokens}.
动作模型使用 DiT block,并通过 cross-attention 读取:
-
文本 embedding ;
-
Video Former token 。
损失为:
\mathcal L_{\text{diff}}(\psi,A) ## \mathbb E_{a_0,\epsilon,k} \[ \| D_\psi(a_k,l_{\text{emb}},Q'') a_0 \|_2^2 \].同样,它预测的是干净动作 ,而非噪声。
这里的 action head 本质上学习:
由于 已经描述了“未来大概应该如何演化”,action head 只需要学习:
哪些动作能够实现 TVP latent 中表达的未来。
因此作者称它为 implicit inverse dynamics。
9. VPP 与 UniPi、GR-1、SuSIE 的本质区别
| 方法 | 如何利用未来 | 控制时使用什么 |
|---|---|---|
| SuSIE | 生成一个未来目标图像 | 当前图像 + goal image |
| UniPi | 生成完整未来视频 | 对相邻生成帧做 inverse dynamics |
| GR-1 | 自回归联合预测图像与动作 | 每次预测一帧和一个动作 |
| VPP | 提取视频扩散模型内部的未来 latent | 一次 TVP 前向 + latent action policy |
VPP 的主要优势是:
相较于 UniPi,它跳过了“latent pixels inverse dynamics”这条链路:
而 VPP 直接:
相较于 GR-1,VPP 的视频模型来自大规模视频 foundation model,并且一次获得整段时间轴的表示,而不是自回归地逐帧预测。(ar5iv)
10. 实验结果怎么看?
10.1 CALVIN ABCD
训练环境是 A、B、C,测试环境是未见过的 D;每次要求连续完成 5 个语言任务。
ICML 终稿结果:
而最强的 3D baseline RoboUniview 是:
相对提升为:
更重要的是,随着任务链增长,VPP 的优势越来越明显:
-
完成第一个任务:;
-
连续完成三个任务:;
-
连续完成五个任务:。
只使用 10% CALVIN 动作标注数据时,VPP 仍达到 3.25,说明视频预训练明显降低了动作标注需求。官方终稿将 CALVIN 相对提升报告为 18.6%。(Proceedings of Machine Learning Research)
10.2 MetaWorld
一个语言条件 policy 同时完成 50 个任务:
这里论文所说的提升是 10.8 个百分点:
并不是相对提升 10.8%。
VPP 在 middle 和 hard tasks 上优势尤其明显,支持了作者的观点:动态预测表示在需要精细时序控制的任务上更有价值。
11. 最关键的消融实验
11.1 是视频预测目标有效,还是换了一个更大的编码器?
替换视觉 encoder、保持其余结构基本一致:
| Encoder | 预训练目标 | CALVIN Avg. Len |
|---|---|---|
| VDM | 视频生成 | 4.33 |
| Stable-VAE | 图像重建 | 2.58 |
| VC-1 | MAE 重建 | 1.23 |
| Voltron | MAE + 语言生成 | 1.54 |
作者用它说明:
“预测未来”学到的 representation,比单纯“重建当前图像”更适合动作学习。
不过这项实验仍不能完全排除模型规模、数据量和架构差异,后面会具体讨论。早期 arXiv 版本同样观察到 VDM 表示明显优于 Stable-VAE、VC-1 和 Voltron。(ar5iv)
11.2 视频预训练到底贡献了多少?
终稿消融大致如下:
| 设置 | Avg. Len |
|---|---|
| 完整 VPP | 4.33 |
| 去掉互联网 manipulation data | 3.97 |
| 去掉 CALVIN video training | 3.31 |
| 去掉互联网数据和 SVD 预训练 | 1.63 |
这说明贡献大小大致是:
互联网操作数据有效,但真正决定性的部分似乎是:
-
视频 foundation model 初始化;
-
用目标域视频让预测模型适应机器人场景。
早期版本也报告,去掉互联网数据后从约 4.29 降到 3.97,而进一步去掉 SVD 初始化后降到 1.63。(ar5iv)
11.3 Video Former 是否只是增加参数?
终稿中:
-
完整 VPP:4.33,约 140 ms;
-
去掉 Video Former:3.86,约 450 ms。
去掉 Video Former 后不仅准确率下降,延迟反而增加。
原因是,没有 query-based compression 时,大量 TVP latent 需要直接进入 diffusion policy,导致 action denoising 的每一步都处理高维视觉特征。
Video Former 相当于先做一次昂贵但固定的压缩:
后续十次 action denoising 都只读取少量 tokens。
12. 为什么一次模糊预测仍然有用?
论文将一次前向的 latent 解码成图像进行可视化。结果的纹理、颜色和物体细节并不准确,但粗略运动通常正确:
-
机械臂朝正确物体移动;
-
物体向任务目标方向变化;
-
未来帧形成合理的时序趋势。
因此,对机器人动作而言,表示可能只需要保留:
而不需要:
这也是 latent world model 经常优于 pixel-space planning 的一个直觉:控制需要 task-relevant dynamics,而不是所有像素细节。(ar5iv)
13. 真实机器人结果
作者在两个平台上实验:
-
Franka Panda:30+ 任务;
-
XArm + 12-DoF XHand:100+ 任务,并包含勺子、锤子、电钻、移液器等工具使用任务。
终稿平均成功率中,VPP 在 Panda seen/unseen 上达到约 0.85/0.73;在灵巧手 seen/unseen/tool-use 上达到约 0.75/0.60/0.68,明显高于 Diffusion Policy、SuSIE 和 GR-1。论文共进行了 200+ 次 Panda rollout 和 500+ 次灵巧手 rollout。(ar5iv)
这里最值得注意的不是 seen task,而是 unseen object、unseen background 和工具使用上的提升。这说明 predictive representation 提供的可能不只是场景记忆,还包括一定程度的通用运动先验。
14. 这篇论文真正强在哪里?
14.1 把视频模型从“生成器”重新解释为“编码器”
最有价值的思想不是“用视频帮助机器人”,此前 UniPi、SuSIE、GR-1 已经做过。
真正的新意是:
这将视频生成模型从昂贵的 planner,变成了一个相对高频的 predictive encoder。
14.2 实现了无动作视频和有动作机器人数据的解耦
Stage 1 可以用海量无 action 视频学习:
Stage 2 再用少量机器人 action 学习:
因此:
就有机会形成较强策略。
这个思想后来也成为不少 video-to-action、world-action-model 工作的重要路线。
14.3 避免了显式像素规划的脆弱性
如果生成视频中的杯子边缘有误、纹理发生变化,pixel inverse dynamics 可能受到很大影响。
VPP 在生成像素前就截取 latent:
可以过滤掉大量无关的图像生成误差。
15. 论文的局限
15.1 它并不是严格意义上的 action-conditioned world model
标准 world model 通常学习:
但 VPP 的 TVP 学习的是:
它没有把候选动作 输入视频模型。
因此它无法回答:
“分别执行动作 A、B、C,会产生怎样的未来?”
它只能回答:
“根据当前观察和任务指令,一个合理的未来大概是什么?”
所以更准确地说,VPP 是:
而不是可以进行 action search 的完整世界模型。
15.2 预测未来未必是机器人真实会到达的未来
TVP 可能预测一个成功完成任务的未来,但当前 action policy 未必真的能实现它。
VPP 没有显式约束:
视频模型和动作模型是分阶段训练的,二者之间没有显式 cycle consistency、dynamics consistency 或 online correction loss。
其成功主要依赖 action model 在示范数据中学会:
15.3 “预测性”优势的因果证据还不够干净
VDM 与 VC-1、Voltron、Stable-VAE 的差异不仅是目标函数,也包括:
-
模型规模;
-
网络架构;
-
预训练数据量;
-
时序输入形式;
-
表示维度。
所以表格能证明:
使用这个视频模型的表示效果更好。
但不能完全证明:
提升全部由“预测未来”这一属性造成。
更严格的实验应该使用同规模、同数据、同架构模型,只替换:
15.4 没有显式建模未来不确定性
对于“把杯子放到桌上”,可能存在很多合理轨迹。
视频 diffusion model 本身具有多模态能力,但 VPP 只采样一个噪声 latent,并将单次前向表示交给 action policy,没有显式:
-
采样多个可能未来;
-
对未来进行评分;
-
估计不确定性;
-
在预测冲突时回退或重规划。
因此它的“想象”更多是一种隐式条件特征,而不是显式 planning。
16. 与你最近看的 WAM、latent causal memory 的关系
VPP 与 World Action Model 的区别非常关键:
VPP 的 latent 有时间轴:
因此非常适合做你之前提出的 causal attribution:
-
消融某个未来时间片 ;
-
消融某个相机视角;
-
消融某个 upsampling layer;
-
找出哪些空间 token 最影响动作;
-
比较动作改变前后 latent future;
-
对 latent 中的关键帧做可逆解码;
-
判断模型究竟关注抓取、接触还是目标状态。
但 VPP 自身没有把这些 latent 当作长期 memory。每次观察都会重新计算 ,它属于:
而不是跨时间保存和更新的 latent memory。
17. 最后形成一个论文级理解
VPP 的核心不是“视频预测得非常准,所以机器人做得好”。
更准确的理解是:
整条逻辑链是:
从研究定位看,它处在以下几条路线的交叉点:
下一步最值得做的是逐行拆解第 4 节的张量形状,并结合官方代码定位 SVD feature extraction → Video Former → DiT action head 的具体实现。
**Spatial-Temporal Attention(时空注意力)**就是同时建模:
-
同一时刻,空间上不同位置/视角之间的关系;
-
不同时间步之间的运动与变化关系。
在 VPP 里,它被拆成两步:先做 SpatAttn,再做 TempAttn。
Spatial Temporal Attention
1. Spatial Attention:看“这一帧里哪里重要”
假设视频特征为:
其中:
-
:视频帧数;
-
:每帧的空间 token 数;
-
:特征维度。
固定某个时间步 :
Spatial Attention 在这一帧内部计算不同空间位置之间的关系:
例如,在“机械臂抓杯子”的任务中,它会关联:
-
机械爪的位置;
-
杯子的位置;
-
桌面目标区域;
-
机械爪与杯子之间的空间关系。
它回答的问题类似:
在当前这一个未来时间点,图像中的哪些区域对动作最重要?
2. Temporal Attention:看“这些区域如何随时间变化”
Spatial Attention 完成后,模型已经得到了每一帧的紧凑表示:
Temporal Attention 再沿时间维计算注意力:
它建模的关系包括:
-
机械臂从哪里移动到哪里;
-
什么时候接近物体;
-
什么时候发生接触;
-
物体何时被抬起;
-
任务状态如何逐步变化。
它回答的问题类似:
这些未来帧之间构成了什么运动轨迹和事件顺序?
3. VPP 中的 SpatAttn 具体是什么?
VPP 有两个相机视角:
-
static camera:固定第三视角;
-
wrist camera:机械臂腕部相机。
对未来第 个时间步,视频模型提供:
Video Former 初始化一组可学习 query:
然后做:
$$
Q’_i
\operatorname{SpatAttn}
\left(
Q_i,
F_{p,i}^{\text{static}},
F_{p,i}^{\text{wrist}}
\right).
K_i=V_i=
\left[
F_{p,i}^{\text{static}};
F_{p,i}^{\text{wrist}}
\right].
因此这里的 SpatAttn 更准确地说是:
而不只是普通的图像 self-attention。
它完成两个功能:
-
聚合一帧内不同空间位置;
-
融合 static camera 与 wrist camera 两个视角。
4. 为什么需要 learnable query?
原始视频特征非常大。假设:
那么一个视角就有:
个视觉 token;两个视角更多。
Video Former 用少量 query,例如每个时间步 个:
把大量空间 token 压缩为少量任务相关 token:
这和 Q-Former、Perceiver Resampler 的思想很像:
不保留所有视觉信息,而是让可学习 query 主动提取对动作预测最有用的信息。
例如某个 query 可能逐渐专门关注机械爪,另一个关注目标物体,另一个关注目标位置。不过这种对应通常是隐式形成的,并没有显式监督。
5. 为什么先 Spatial,再 Temporal?
直接对所有时空 token 一起做 attention,需要处理:
个 token,其注意力复杂度近似:
拆开以后:
-
空间 attention:每帧独立处理;
-
时间 attention:在压缩后的 query 上处理。
复杂度大致变为:
其中 。
因此这样做有两个优势:
-
计算更便宜;
-
结构上更符合视频信息:先理解每帧,再理解帧间运动。
6. 一个直观例子
任务是:
把红色方块放进抽屉。
视频预测 latent 中有 4 个未来时刻:
Spatial Attention
对每个时刻分别抽取:
-
:机械爪、红方块、抽屉;
-
:机械爪靠近方块;
-
:方块被抓起;
-
:方块接近抽屉。
形成:
Temporal Attention
再把它们串联起来,识别出:
最终动作模型便能根据这个时序结构预测动作序列。
7. Spatial Attention 和 Temporal Attention 的区别
| Attention | Token 之间比较什么 | 主要学习什么 |
|---|---|---|
| Spatial Attention | 同一帧的不同位置、不同视角 | 物体位置、空间关系、接触区域 |
| Temporal Attention | 不同帧或未来时间步 | 运动轨迹、变化过程、事件顺序 |
| Spatial-Temporal Attention | 同时或分阶段处理空间与时间 | 完整的动态场景表示 |
在 VPP 中可以总结为:
最终: