MaskWAM — 统一 Mask 提示与预测的世界动作模型

Unifying Mask Prompting and Prediction for World-Action Models · HKUST / Tencent RoboticsX / THU · arXiv 2606.13515 (2026)

速览
动机·两大瓶颈
方法·架构
核心机制
训练·推理
实验
代码印证
评价与启发
自测

一句话

世界动作模型(WAM)靠"预测未来 RGB"来学表征,但 RGB 监督把背景和目标一视同仁、文本指令又说不清"是哪个物体"。 MaskWAM 让模型同时把物体 mask 当输入、当预测目标:预测未来 mask 逼模型只盯任务相关区域(语义正则化),首帧 mask 提示给出精确空间锚点(消除语言歧义)。因为 WAM 本就是视觉驱动的,用 mask 这种视觉信号做条件,比往文本里塞坐标有效得多。

本页可靠性🟢 PDF+代码核对:方法公式、实验数字均逐条核对自 PDF 原文(arXiv:2606.13515v1);架构机制核对自官方仓库 maskwam/models/(wam.py/mask_encoder.py/action_head.py/tokenizer.py) 与 configs/重要:官方仓库当前为"代码即将发布"的骨架(core forward/loss 均为 NotImplementedError),只落地了配置与 API 结构,完整实现尚未开源——见"代码印证"tab。公式/数字一律以 PDF 为准。原文:arXiv · 项目页 · 代码(官方仓库骨架)

速览卡片

内容
标题MaskWAM: Unifying Mask Prompting and Prediction for World-Action Models
单位香港科技大学(HKUST) / 腾讯 Robotics X / 清华大学
核心思想mask 同时作为首帧空间提示(输入)未来预测目标(输出),与 RGB、动作在统一架构中联合建模
基座Wan 2.2 Video VAE + 统一 DiT + MoT 动作专家 + flow matching
两个作用① 预测未来 mask = 语义正则化器(抑制背景噪声) ② 首帧 mask 提示 = 精确空间锚点(消除语言歧义)
关键结果LIBERO 98.4 · RoboTwin 2.0 92.2 · 真机语言清晰 84.3 · 真机语言歧义 84.9(超最强 baseline 33.2)
统一提示Mask Dropout(p=0.5):同一模型既能吃首帧 mask 精确消歧,也能纯靠 RGB+语言
推理加速Partial denoising:联合 RGB-mask 流只去噪一步取任务感知 latent + KV-cache
为什么值得学:它给"世界模型该预测什么"提供了一个新答案——不只是预测"会发生什么(what happens,RGB)",还要预测"什么重要(what matters,mask)"。这把物体中心(object-centric)的思想干净地塞进了 WAM 框架,且证明在视觉驱动模型里用 mask 做空间提示远胜文本坐标。

先厘清梯队:VLA → WAM

VLA(vision-language-action) 直接把"观测+指令"映射到动作;WAM(world-action model) 在中间加一步"预测未来观测"作为代理任务(proxy task),用视频预测来捕捉物理动态和时空结构,让表征更利于下游控制。MaskWAM 属于 WAM 阵营(基线里的 Motus、FastWAM 也是 WAM,π0/π0.5/GR00T-N1 是 VLA)。

VLA:(I0, ℓ) → a1:K   WAM:(I0, ℓ) → Î1:T → a1:K

动机:WAM 的两大空间瓶颈

论文指出,现有 WAM 在"如何编码目标物体及其空间位置"上有两个根本缺陷:

瓶颈说明后果
① 纯视觉预测缺乏显式锚定预测 RGB 帧虽给出隐式空间先验,但重建监督是弱结构化的——它平等对待所有像素,不区分任务相关物体与背景目标与背景杂物纠缠,策略被任务无关区域带偏
② 文本条件的固有描述局限语言提供语义上下文,但缺乏精确空间锚定能力,难以描述复杂空间关系、难以在视觉相似干扰物中指认目标"给我红色瓶子"——但有多个红瓶子时,策略无从判断是哪个
直观例子(图 1):指令"open the drawer and put the pen into it"是清晰的;但"give me the red bottle at ..."在多个相似物体的杂乱场景中是歧义的。文本条件的 VLA/WAM 面对歧义指令时注意力发散(unconstrained attention),不知道该盯哪个物体。

核心洞察:用视觉信号(mask)注入空间引导

作者的关键判断是:既然 WAM 本质上是视觉驱动架构,那么空间引导就应该通过视觉模态注入,而不是塞进文本。 mask 正是这样一种密集、以物体为中心的视觉空间信号。于是他们提出两个协同机制:

  • 通过 mask 预测实现语义监督:在预测 RGB 的同时预测未来 mask,提供高度语义化的监督信号,强制策略优先关注任务相关区域(抑制背景噪声)。
  • 通过视觉提示实现空间锚定:集成首帧目标 mask,建立精确空间锚点,大幅减少指代歧义——哪怕在严重杂乱场景也能给策略可靠引导。
一个有力的实证反转(图 4 / 表 5):在语言歧义 In-Distribution 场景,即使把目标坐标写进文本,语言驱动的 π0-coord(41.7%) 反而超过视觉驱动的 FastWAM-coord(26.3%)。这说明往 WAM 的文本通道塞坐标是低效的——WAM 对文本坐标不敏感;只有把空间信息通过视觉(mask)通道注入,才与它的视觉预测过程对齐。这正是 MaskWAM(92.9%) 大幅领先的原因。

问题设定

给定当前 RGB 观测 I0∈ℝ3×H×W、本体感觉 s0∈ℝD、语言指令 ℓ、以及可选的首帧目标 mask M0∈{0,1}H×W,MaskWAM 联合预测动作块 a1:K、未来 RGB 帧 I1:T 和未来 mask M1:T

pθ( a1:K, I1:T, M1:T | I0, M0, s0, ℓ )  (式1)

其中 K 是动作块大小,D 是动作维度,T 是预测 horizon(实现中 T=8)。模型建立在 Wan 2.2 视频生成模型之上,把 mask 作为任务相关区域的显式空间表示,将传统 RGB-space WAM 扩展为 RGB-mask-action 联合建模。

整体数据流

I0 RGB
[B,3,H,W]
冻结 3D VAE 𝓔
zv
[B,C,L,H',W']
M0 mask
渲染为三通道RGB图
同一冻结 VAE 𝓔
zm
[B,C,L,H',W']
zv
+
zm
→通道拼接→
z=[zv;zm]
[B,2C,L,H',W']
扩展 Patch Embed
(C→2C)
ℓ → 冻结T5
→cross-attn→
DiT 视觉分支
去噪 RGB+mask
↔ joint-attn ↔
MoT 动作专家
去噪动作块
a1:K

s0 + 带噪动作经投影层送入动作专家;语言经 T5 以 cross attention 注入视觉分支。

关键张量维度

张量维度含义
观测 I0[B,3,H,W],H=384,W=320当前 RGB(T-shape 输入)
首帧 mask M0[B,1,H,W]可选目标 mask(二值→渲染成三通道)
RGB / mask 潜变量[B,C,L,H',W']VAE 压缩后
拼接潜变量 z[B,2C,L,H',W']RGB+mask 通道拼接(式2)
动作块 a1:K[B,K,D]预测的 K 步动作
预测 horizonT=8未来帧数
C,L,H',W' 为 3D Causal VAE 压缩后的通道/时间/空间维度,论文未给具体数值。

机制 ①:统一 RGB-Mask 编码 —— 把 mask 渲染成 RGB 图,复用同一个 VAE

最自然的想法是给 mask 单独训一个编码器,但作者发现这会引入表征不匹配。他们的做法:把任务相关 mask 渲染成一张三通道 RGB 兼容图像(固定调色板标目标、另一种颜色标背景),让它与 RGB 帧有相同的时间 horizon 和空间分辨率,然后用同一个冻结的 Wan 2.2 Causal 3D VAE 编码器 𝓔 编码二者:

zv, zm ∈ ℝC×L×H'×W' ⇒ z = [zv; zm] ∈ ℝ2C×L×H'×W' (式2)

沿通道维拼接后送入扩散骨架,使每个 latent 位置同时编码外观(RGB)任务相关空间引导(mask)

为什么这样最好(附录 C 负面结果):作者试过三种替代方案都更差——① 直接下采样二值 mask 到 latent 分辨率(缺语义/结构先验);② 从头训 3D CNN mask 编码器(与 RGB latent 表征不匹配);③ ControlNet 式侧分支注入(mask 沦为辅助信号,未与预测目标绑定,被模型忽略)。结论:mask 必须映射进预训练视觉潜空间,且必须被显式的未来预测目标监督。

机制 ②:Patch Embedding 扩展 —— 零初始化优雅接入

为吃下 2C 通道输入,把预训练视频骨架的输入 patch embedding 从 C 扩到 2C:原始视觉通道继承预训练权重,新增 mask 通道初始化为零。这保证微调开始时模型行为与预训练完全一致,mask 信息在训练中被逐渐吸收,不破坏视觉先验。输出头同样 C→2C,预测 RGB 和 mask 两路 latent 速度场。

机制 ③:首帧 mask 作为策略条件 + Mask Dropout 统一提示

部署时 M0 是一个可选的首帧锚点,可由 SAM-3 从文本短语、点击、边界框或粗糙 mask 生成。它只在 episode 开头提供一次,无需实时跟踪——首帧 mask 与"预测的未来 mask"之间的对应关系,让世界模型自动把目标规格传播到未来 RGB、未来 mask 和动作中。

Mask Dropout:训练时以概率 p=0.5 把 M0 替换为零张量。这让同一个模型既能在语言歧义时吃首帧 mask 做精确消歧,也能在语言清晰时纯靠 RGB+语言运行,无需训两套模型。

关键消融(表 4,Q2):如果给了 mask 提示但不做未来 mask 预测(Ours-no-pred),成功率暴跌到 21.6%;完整模型 84.9%。说明光有视觉提示不够——必须有未来 mask 预测这个目标,模型才会真正"用"这个提示。

机制 ④:联合 Flow Matching + 解耦噪声调度

MoT(Mixture of Transformers) 含两个交互分支:视觉分支联合去噪 RGB+mask,轻量动作专家去噪动作块。训练用统一 flow matching,但解耦两个域的噪声时间步

  • 视觉域:RGB 和 mask 共享时间步 τv,保证外观与结构 mask 时空对齐;
  • 动作域:采样独立时间步 τa,迫使动作专家在各种视觉噪声水平下学习去噪——这为推理时的 partial denoising 奠定理论基础。
𝓛 = 𝓛video + 𝓛mask + 𝓛act (式3)

三项分别是 RGB 视频、mask 表征、动作轨迹的 flow-matching 损失。仓库 config 中三者权重默认各为 1.0。

训练设置(论文 Implementation Details)

  • Video VAE 与 T5 文本编码器全程冻结,只训 DiT 骨架 + MoT 动作专家 + 扩展的 patch embed / 输出头。
  • 输入分辨率 384×320(T-shape),预测 horizon T=8
  • Mask dropout 概率 p=0.5
  • 损失:𝓛video+𝓛mask+𝓛act(联合 flow matching,解耦 τva)。
  • 注意力:block-wise causal attention mask,让 RGB / mask / action token 在统一序列里保持正确因果关系(图 2b)。
仓库 configs/train/libero.yaml 给的是简化骨架的超参(hidden_dim 768、12 层、12 头、action_dim 7、chunk_size 8、pred_horizon 4、batch 64、lr 1e-4、bf16、max_steps 100k、image_size 224)。这套配置与论文最终 Wan 2.2/DiT/384×320/T=8 设计不一致,属占位骨架,以论文数字为准。

数据标注 pipeline(附录 B,图 6)

为拿到训练所需的每帧 mask,作者搭了自动标注流程,且区分两类任务以避免 oracle 泄漏:

  • 语言清晰任务:Qwen3-VL 解析指令识别任务相关物体 → SAM3 分割并跨帧跟踪。
  • 语言歧义任务:文本无法消歧,由人在首帧点一个 point prompt → SAM3 传播成完整 mask 并跟踪。

所有首轮标注人工验证,低质量 episode 用关键帧点提示修正后 SAM3 重传播。效果:91% 的 episode 无需人工修正,标注 50 个 episode 约 3 分钟;语言歧义任务的初始点提示每 episode 仅多花 5-10 秒。

推理:Partial Denoising —— 不生成完整视频

完整视频生成太慢。MaskWAM 的推理只做一步去噪:

I0+可选M0
→VAE
DiT 联合 RGB-mask 流
只去噪 1 步
中间"任务感知"
视觉 latent
MoT 动作专家
joint-attn 读取
a1:K

动作专家联合关注这些部分去噪的 latent、语言、本体感觉来生成动作块,再配合 KV-caching 进一步加速。首帧 mask 只在 episode 开头由 SAM3 生成一次。

思路本质:动作专家需要的不是"清晰的未来图像",而是"部分去噪时就已浮现的、任务感知的视觉状态"。解耦的 τa 让动作分支习惯于在带噪视觉上下文上工作,因此推理时省掉大部分去噪步也不掉点。(与 ImageWAM"只取 KV cache 不解码目标图"是同源的效率哲学。)
论文未量化的短板:尽管强调"省延迟",全文没有报告具体推理延迟(ms)、action 频率(Hz)、参数量、显存需求。考虑到 Wan 2.2 是大型视频生成模型,真实闭环实时性存疑。

评测协议矩阵:作者到底测了什么

评测块Benchmark / 平台任务与数据为什么这样测复现状态
标准仿真LIBEROSpatial/Object/Goal/Long 四套件,每套件 10 tasks;测试 RGB-only、Mask-only、Joint。验证 mask 预测即使在语言清晰任务中也能作为注意力正则化提升 WAM。未本地复现;当前只做论文和仓库骨架核对。
双臂随机化RoboTwin 2.0Hammer、Bell、Card、Burger、Stand、Shoe 六个随机化任务;每任务约 500 episodes。检验 mask 引导能否在双臂、多物体、随机布局中提供空间锚定。未复现。
真机语言清晰Dual-arm Xtrainer4 个语言清晰任务,每任务约 100 demos;报告平均成功率。测试 mask 预测作为辅助目标对普通真实任务是否有效。未复现。
真机语言歧义Dual-arm Xtrainer4 个语言歧义任务;ID、Distractors、Novel Instances、Lighting 四种 setting;每 setting 60 trials/task。这是 MaskWAM 最核心的实验:文本说不清目标时,首帧 mask 是否能消除空间歧义。未复现;依赖 SAM3 标注和真机平台。
关键消融论文 Table 4 / Fig. 8Ours-no-pred、Ours-coord、mask erosion/dilation/shift/dropout。区分“有 mask 输入”“预测未来 mask”“用坐标文本替代 mask”三者贡献,并评估 SAM3 mask 不完美时的鲁棒性。未复现。
复现注意:MaskWAM 的主要收益不在标准 LIBERO 小幅涨点,而在语言歧义/OOD setting。复现时应优先复现 ambiguity + distractor,而不是只跑 LIBERO。

LIBERO(表 1) —— 即使不用 mask 提示也涨点

方法类型SpatialObjectGoalLong平均
π0VLA96.898.895.885.294.1
π0.5VLA98.698.298.092.496.8
MotusWAM96.899.896.697.697.7
FastWAMWAM98.2100.097.095.297.6
Ours (RGB-only)WAM96.899.697.095.897.3
Ours (Mask-only)WAM97.299.897.496.097.6
OursWAM98.8100.098.296.498.4

联合 mask 预测把 RGB-only(97.3) 提到 98.4——部署时不用任何 mask 提示,仅辅助训练目标就带来提升,Spatial +2.0 / Goal +1.2。注意力图显示 RGB-only 常盯背景,mask 监督让模型精确关注任务区域。

RoboTwin 2.0(表 2) —— 双臂多任务随机化

方法HammerBellCardBurgerStandShoe平均
π068728179637472.8
FastWAM83879294809087.7
Ours (RGB-only)82879193799287.3
Ours (Mask-only)85909393819188.8
Ours88939597859592.2

92.2,超 π0 达 19.4、超 FastWAM 达 4.5。Mask-only(88.8) 原生就比 RGB-only(87.3) 强,联合两者最大化到 92.2。

真机(Dual-arm Xtrainer):语言歧义是主战场

语言清晰任务(表 3,4 任务)

MaskWAM 平均 84.3,超 FastWAM(79.0)、π0.5(72.3)。整合未来 mask 预测比自家 RGB-only 一致涨点(Task1 86→91,Task3 76→81)——mask 不损害清晰任务,反而稳定增强。

语言歧义任务(图 4 / 表 5,整体 84.9)

设置π0-maskπ0-coordFastWAM-coordOurs
In-Distribution62.941.726.392.9
Distractors 干扰物52.930.010.890.4
Novel Instances 新物体44.625.413.374.6
Lighting 光照变化46.333.319.281.7

整体 84.9,超最强 baseline π0-mask(51.7) 达 33.2。三个 OOD 轴均保持高性能——干扰物几乎不掉、新物体类别级迁移、光照强不变性。

核心消融(表 4)

设置Future MaskMask PromptCoord Prompt平均成功率
Ours-no-pred21.6
Ours-coord18.2
Ours84.9
  • Q1:RGB-only(97.3) / Mask-only(97.6) / 联合(98.4)——成对预测是必要的表征正则化器。
  • Q2:无未来 mask 预测 → 21.6%。未来 mask 预测是"锚定视觉提示"的关键。
  • Q3:mask 提示(84.9) 远胜坐标文本(18.2)。密集视觉先验 vs 稀疏文本坐标。
Mask 鲁棒性(图 8):固定 checkpoint,只在推理时扰动首帧 mask(腐蚀/膨胀/偏移/区域丢失)。只要 mask 与目标仍有适度 IoU 重叠,性能只轻微退化——说明首帧 mask 主要充当"目标身份 + 空间锚点",容忍中等噪声,实际部署中 SAM3 的小误差不致命。

诚实提示:官方仓库当前是"骨架",核心实现未发布

核对官方仓库(maskwam/)后确认:README 明确写着 "Code is coming soon. We are finalizing training, inference, and evaluation code." TODO 清单里训练/推理/checkpoint/数据工具/评测脚本全部未勾选MaskWAM.forward / compute_loss / predict_action / MaskEncoder.forward / ActionHead.forward / MultiModalTokenizer.forward 等核心方法全部 raise NotImplementedError("... not released yet.")。所以下面能印证的只是意图性的 API 设计与配置,不是可运行的完整实现。

① 配置里能看到的架构意图 🟢 已发布

maskwam/models/wam.pyMaskWAMConfig 把论文的三大要素落成了显式开关:

@dataclass
class MaskWAMConfig:
    rgb_encoder: str = "vit_base_patch16"
    mask_encoder: str = "vit_small_patch16"
    hidden_dim: int = 768
    num_layers: int = 12
    action_dim: int = 7
    action_chunk_size: int = 8
    pred_horizon: int = 4              # 预测的未来 RGB/mask 帧数
    use_mask_prompt: bool = True       # ← 机制③ mask 作为输入提示
    predict_future_mask: bool = True   # ← 机制① mask 作为预测目标
    loss_weights: dict = {"rgb":1.0, "mask":1.0, "action":1.0}  # ← 式3 三项损失

use_mask_promptpredict_future_mask 两个布尔量,正好对应论文"mask 既是输入、又是输出"的双重角色;loss_weights 对应式(3)的 𝓛video+𝓛mask+𝓛act

② 类结构印证"统一编码 + 三个预测目标" 🟢 API 结构

MaskWAM.forward 的签名与 docstring 明确了输入输出契约(实现待发布):

def forward(self, rgb, language, mask_prompt=None) -> dict:
    """
    rgb: (B, T, 3, H, W) 观测帧
    mask_prompt: 可选首帧目标 mask (B, 1, H, W)
    Returns: dict with 'actions', 'future_rgb', 'future_mask'
    """
    raise NotImplementedError("MaskWAM.forward is not released yet.")

返回 actions / future_rgb / future_mask 三路输出,与论文"联合预测动作块、未来 RGB、未来 mask"(式1)一致。MaskEncoder 的 docstring 也点明"同一编码器复用于首帧 mask 提示 与 未来 mask 预测目标"。

③ 骨架与论文最终设计的差异(重要) 🩷 核对提醒

维度仓库骨架论文最终设计
视觉编码分离的 ViT(vit_base / vit_small)共享 Wan 2.2 Causal 3D VAE,mask 渲染成 RGB 后通道拼接
骨架普通 nn.TransformerEncoder统一 DiT + MoT 动作专家
训练目标未实现(generic ActionHead)联合 flow matching + 解耦噪声 τva
分辨率 / horizonimage_size 224 / pred_horizon 4384×320 / T=8
语言tokenized language 张量占位冻结 T5 + cross attention
结论:仓库当前是一个简化占位骨架,用于确立目录/配置/API 形态,尚未反映论文的 Wan 2.2 + DiT + MoT + flow-matching 完整架构。本页所有公式与实验数字均以 PDF 为准;机制解读以 PDF 为主、代码为"意图印证"。 目录导航:models/(wam/rgb_encoder/mask_encoder/action_head/tokenizer) · engine/(trainer/evaluator) · scripts/(train/inference/eval_libero/eval_robotwin) · configs/(train+eval × libero+robotwin) · deploy/real_robot_demo.py

评价与启发

它把什么问题问清楚了

"世界模型该预测什么"是 WAM 路线的隐含假设。主流答案是"预测未来 RGB(what happens)"。MaskWAM 给出补充答案:还要预测"什么重要(what matters)"——用未来 mask 把物体中心的语义监督注入 WAM。同时它用一个漂亮的实证反转说明:在视觉驱动的 WAM 里,空间信息该走视觉通道(mask)而非文本通道(坐标)。

方法论上的三个亮点

  • 零成本的注意力正则化:即使部署不用 mask 提示,仅把未来 mask 预测当辅助目标就能提升 RGB-only 策略 1-5%——这是可直接搬到任意端到端策略的训练技巧。
  • 共享编码器处理异构信号:把 mask 渲染成 RGB 兼容格式后复用预训练 VAE,避开独立编码器的表征不匹配。这思路可迁移到深度图、触觉图等其它模态。
  • 解耦噪声调度:视觉/动作用不同 flow-matching 时间步,让动作分支在带噪视觉上下文学习,从而支持推理时 partial denoising 省算力。

值得追问 / 存疑处

  • 效率完全没量化:反复强调省延迟,却不给 ms/Hz/参数量/显存。基于 Wan 2.2 的方法,真机实时性是关键悬念。
  • 归因不够干净:声称"WAM 里 mask 预测特别有效",却没把同样的 mask 预测目标加到 π0(VLA) 做对照——现有 π0-mask 只是加法融合 mask 输入,未做 mask 预测。无法完全区分收益来自 mask 预测本身还是 WAM 框架。
  • 清晰任务边际收益小:LIBERO 仅比 FastWAM 高 0.8,主要价值集中在歧义/OOD 场景——若你的场景足够简单,mask 标注成本未必划算。
  • 依赖 SAM3 与单一平台:歧义场景需 SAM3 提供首帧 mask(透明/反光物体可能失败);真机只在 Xtrainer 双臂平台验证。
对触觉/接触操作的发散启发:① 触觉 mask 预测——类比未来 mask,预测未来"接触区域 mask"作为辅助目标,逼策略关注接触关键区而非全局力信号;② 触觉作为 WAM 的第三预测通道——把触觉图/力信号像 mask 一样拼进 latent,预测未来触觉增强对接触动态的理解;③ mask 提示用于 insertion 精确定位——用 mask 指定插入孔/槽位置,替代模糊的文本"插到某处"。

与本站其它页联动

配合 ImageWAM 页对比两种 WAM 效率哲学(取 KV cache 不解码图 vs partial denoising 不生成完整视频);配合 DiT4DiT 页看视频动态+动作联合建模的另一条路;配合"世界模型"谱系页理解 WAM 与 VLA 的分野;配合 DP·DiT·Flow Matching 页理解这里的 flow-matching 动作专家。

自测:7 题检验理解