ProWAM:用渐进视觉子目标给世界动作模型装上"看得见的进度条"

  • 关联论文:2610.02508
  • 作者:flyP
  • 更新:2026-10-06

一句话结论

让世界动作模型(World Action Model, WAM)同时预测动作和按序排列的稀疏视觉子目标,用子目标做"进度锚点"引导动作生成;用一次视频 backbone 前向 + 轻量动作去噪做 replanning,把长程任务的规划效率提上去。

解决什么真问题

WAM 是机器人控制的一种新兴范式:从初始观测 + 自然语言指令,联合预测未来视觉动态和动作。比单纯的视觉预测(world model)多一个动作头,比单纯的动作预测(policy)多一个世界动态头。

WAM 有两类痛点:

  1. 长程预测效率低:要让 WAM 看 60 秒后的画面,必须把 60 秒的密集视频 rollout 全部生成出来,推理时算力爆炸。
  2. 单帧预测丢失目标进度感:有些近期工作退而求其次,只预测"最终目标帧"——但这忽略了"如何一步步推进到目标",对长程任务远远不够。

ProWAM(Progressive WAM)的核心思路:

  • 不预测密集的未来视频,而是预测稀疏、按序的视觉子目标;
  • 用子目标作为"进度锚点"显式引导动作生成;
  • 子目标预测可以靠大规模无动作视频(action-free videos)预训练,把视觉规划负担从 action policy 卸载到 video backbone。

核心方法

三个关键设计

(1) 联合预测动作 + 稀疏视觉子目标序列

给定初始观测 $o_0$ 与指令 $c$,ProWAM 同时输出:

  • 动作序列 $\mathbf{a} = {a_1, a_2, \ldots, a_T}$(机器人控制指令)
  • 稀疏视觉子目标序列 $\mathbf{g} = {g_1, g_2, \ldots, g_M}$,其中 $M \ll T$,每个 $g_i$ 是按时间索引排序的关键帧

直觉上,子目标序列相当于"任务的视觉进度条"——做菜任务的子目标可能是"洗菜 → 切菜 → 炒菜 → 装盘"对应的关键画面;机器人只需知道"现在该往哪个视觉状态推进",动作生成就有了锚点。

(2) 子目标从大规模无动作视频中学习(视觉规划与动作策略解耦)

子目标的预测本质上是视觉规划问题,不需要动作标注。ProWAM 把 video backbone 用大量无动作视频(如互联网视频、人类操作视频)做预训练,让它学会"合理的视觉进度序列长什么样"。这有两个好处:

  • 数据效率:无动作视频远比带动作标注的机器人演示数据便宜,互联网级别;
  • 计算分摊:视觉规划的负担由 video backbone 承担,action policy 可以做得很轻。

(3) 单次 video backbone 前向 + 轻量动作 denoising

推理时 ProWAM 只跑一次 video backbone,把所有子目标的特征缓存下来;动作生成时只需对动作做 denoising,不再重新生成整段视频:

forward video_backbone(o_0, c) once:
  → cache sparse_subgoal_features = [f(g_1), f(g_2), ..., f(g_M)]

for each replanning step:
  action_denoise(a_t | o_t, c, cached_subgoal_features)
  → output a_t

replanning 时只需重新跑轻量的动作 denoising,video backbone 不重跑——这是相对传统 WAM"每步重新生成视频"的算力节省。

模型架构伪代码

class ProWAM(nn.Module):
    def __init__(self):
        self.video_backbone = VideoBackbone()      # 大模型,预训练于无动作视频
        self.subgoal_head   = SubgoalHead()        # 输出稀疏关键帧
        self.action_policy  = ActionDenoiser()     # 轻量去噪

    def forward(self, o_0, c):
        # 单次 video backbone 前向
        z = self.video_backbone.encode(o_0, c)
        subgoals = self.subgoal_head(z)            # [g_1, ..., g_M]

        # 轻量动作生成(结合子目标特征)
        a_seq = self.action_policy.denoise(
            cond=[o_0, c, subgoals_features],
            steps=K
        )
        return a_seq, subgoals

与传统 WAM 的对比

维度 传统 WAM ProWAM
视觉预测 密集视频 rollout 稀疏子目标序列
长程推理成本 O(T) 视频生成 O(1) 视频生成 + O(T) 动作去噪
视觉规划 vs 动作策略 耦合 解耦
子目标作为锚点 无 显式
视觉规划数据 需要带动作标注 可用无动作视频

关键实验与数据

abstract 给出的硬数字非常具体,可信度较高(具体到 benchmark 名称和百分点):

仿真基准

  • LIBERO-Plus:85.8% 成功率,新 SOTA;
  • Randomized RoboTwin:75.7% 成功率,新 SOTA;
  • 最强 baseline 的相对增益:最高 +35.9%;
  • RoboCasa365:48.1% 成功率;
  • RoboCasa365 Composite-Unseen(最具挑战的切分):18.2%,整体排名第 4。

真实世界零样本实验

  • 成功率 70.0%(最强 baseline 55.0%);
  • 相对增益 +27.3%(绝对 +15.0 个百分点);
  • 场景是 "novel scenes"(未见过的场景),属零样本迁移。

数据可信度评估

  • abstract 给了具体 benchmark 名 + 成功率百分点 + 相对增益;
  • 数字之间可自洽(相对增益与绝对差一致);
  • 真实世界实验有明确"零样本" + "novel scenes"限定词,可信度加分;
  • abstract 未给出:子目标数量 M、动作序列长度 T、训练数据规模、video backbone 的具体大小、动作 policy 的参数量、推理时延对比。

⚠️ 诚实标注:仿真与真实世界数字来自 abstract,可信度较高。但子目标数 M、训练数据规模、推理时延、video backbone 架构等细节未从 PDF 正文核对。"原文未明确"处已在文中标出。

亮点与局限

亮点

  1. 机制创新 + 数据效率双收:用"稀疏子目标 + 视频规划解耦"同时解决效率问题和数据稀缺问题。
  2. 算力分摊清晰:video backbone 一次前向 + 轻量动作去噪,replanning 时不重跑大模型,对实时控制友好。
  3. 零样本真实世界泛化:70.0% vs 55.0% 是显著的工程指标,说明学到的视觉进度表征具备跨场景迁移能力。
  4. 可视化可解释性:子目标是显式的视觉锚点,可被人检查、可被调试——比纯 latent action policy 更可审计。
  5. 可在已有 WAM 框架上改造:替换密集视频预测为子目标预测,理论上是模块化改动。

局限

  1. 子目标粒度的选择:M 取多大最优?太少则进度信息不足、太多则回到密集预测成本;abstract 未给消融。
  2. 子目标排序的正确性:按序排列的子目标如果顺序错了(比如"装盘"排在"切菜"前),整个进度锚定就崩了——排序错误如何检测与修复 abstract 未提。
  3. replanning 的频率:动作 denoising 每步都跑还是间隔跑?子目标多久重新生成一次?abstract 未细说。
  4. video backbone 的训练成本:用大规模无动作视频预训练很重,单卡团队可能复现不了——这是工程落地的隐性门槛。
  5. 零样本 70% 的场景限制:是结构相似的场景(厨房类到厨房类)还是完全不同场景(厨房到工厂)?abstract 说 "novel scenes" 但未严格定义。
  6. 与其他 WAM/RDT/Octo 等近期工作的对比:abstract 未列 baseline 名单,+35.9% 是相对"最强 baseline"但未点名是哪个。

对工程落地的启发

工程实现层面要踩的坑

  1. 子目标数量 M 的选择:需要按任务粒度调参,过细浪费、过粗丢失进度信息。现象:长程任务成功率抖动大;影响:要么算力浪费、要么进度锚定失效;修复:在任务上做 M 的消融曲线 + 监控"子目标间时序一致性"指标。
  2. 动作 policy 的轻量化极限:太轻可能装不下"如何往子目标推进"的策略知识;太重又抹平了算力优势。现象:在复合任务(Composite-Unseen 18.2% vs 简单任务 85.8%)上掉点严重;影响:泛化能力受限;修复:根据任务复杂度分层选择 policy 容量。
  3. video backbone 预训练的数据筛选:互联网上无动作视频质量参差,预训练数据清洗 pipeline 直接影响子目标质量。现象:噪声数据会让子目标变得无意义(视觉漂移、目标错位);影响:进度锚定失效;修复:做数据源分层 + 视觉质量过滤 + 子目标预训练下游任务验证。
  4. replanning 频率与子目标重生成:动作错了但子目标已过时,replanning 是否重新生成子目标?现象:长程任务中段偏离目标后无法自我纠偏;影响:任务成功率下降;修复:监控"当前状态 vs 当前子目标"的偏差,超阈值触发子目标重生成。
  5. video backbone 缓存的内存压力:所有子目标特征一次性缓存,对内存有压力;现象:长任务推理时 OOM;影响:落地受限;修复:分层缓存(近帧全特征、远帧压缩特征)+ 流式回收。

⚠️ 诚实标注:以上 5 个工程坑中,第 1、2、5 条基于 abstract 描述的机制推断;第 3、4 条为通用机器人学习经验,非原文给出的具体结论。

可迁移的设计模式

  • 稀疏锚点 > 密集预测:当任务是"达成某个状态"而非"完美复现过程"时,稀疏子目标比密集视频 rollout 性价比高得多。
  • 视觉规划 vs 动作策略解耦:把"看到什么算合理进度"和"怎么走到那一步"分到两个模型/两套数据上训,是数据效率和可解释性的双赢。
  • 单次大模型前向 + 多次轻量规划:对实时控制类任务,这是算力分摊的标准范式(类似 Model Predictive Control 的"预测 horizon 重叠 + 控制 horizon 短"思路)。

与同方向工作的关系

  • vs. 传统 World Action Models(WAM、GR-1、GAIA-1 等):ProWAM 用稀疏子目标替代密集视频 rollout,是 WAM 范式的"算力分摊 + 数据解耦"细化。
  • vs. 单帧目标预测类 WAM:单帧目标(最终态)忽略了"如何推进到目标";ProWAM 的子目标是按序的进度序列,保留了过程信息。
  • vs. 层级 RL / Options Framework:RL 里的 options(子策略)思想与 ProWAM 的子目标(视觉锚点)同构——只是 RL 用 latent skill、ProWAM 用显式视觉帧。可解释性更强。
  • vs. RDT / Octo / π₀ 等大规模机器人基础模型:这些工作重点是大规模动作数据训练通用 policy;ProWAM 重点是"视觉规划 + 动作策略解耦",两者可叠加——用 ProWAM 做高层规划,用 RDT 类模型做底层控制。
  • vs. Video Prediction 类世界模型(如 DreamerV3、GAIA-1):Video Prediction 目标是生成视频本身;ProWAM 把视频预测当作"规划工具"而非"主输出"。

适合谁读

  • 做机器人控制 / 操作策略的研究员与工程师;
  • 对 World Models / 世界模型感兴趣的多模态研究者;
  • 在生产里需要"零样本跨场景机器人部署"的团队(如家政机器人、仓储机器人);
  • 想把"稀疏锚点 + 视觉规划解耦"模式迁移到其他长程决策任务(自动驾驶规划、游戏 AI、长流程 agent)的人;
  • 关注 LIBERO / RoboTwin / RoboCasa 基准选型与评测的人。

⚠️ 诚实标注(汇总):本解读基于 arxiv abstract(v1,提交日 2026-10-01 GMT,第一作者 Fei Zhang)。仿真 + 真实世界的成功率数字均来自 abstract(可信度较高,具体到 benchmark 名 + 百分点)。但未独立从 PDF 正文核对的细节包括:子目标数量 M、动作序列长度 T、训练数据规模、video backbone 架构、推理时延、replanning 频率、与 RDT/Octo 等近期工作的具体对比数字。项目页 https://sii-ferenas.github.io/ProWAM-page 已在 abstract 中 mention,未做 Web Archive 备援。"原文未明确"处已在文中逐条标出。