一句话定位

WorldMem(NTU S-Lab / 北大 / 上海 AI Lab,NeurIPS 2025)给交互式视频世界模型加装一个显式外部记忆库——把历史帧连同其位姿、时间戳打包成”记忆单元”,用一套基于视场重叠(FOV overlap)+ 时间差的检索算法挑出相关记忆,再通过跨注意力把它们当”干净帧”注入 Diffusion Forcing 的去噪流程,从而让模型在离开视野很久之后回头时,场景(乃至期间发生的事件,如种下的作物持续生长)依然保持一致,在 Minecraft 与 RealEstate10K 上均显著超过不带记忆的 Diffusion Forcing / DFoT 基线。

背景与定位

视频扩散驱动的交互式世界模型(如 OasisThe MatrixGenie 2)已经能以第一人称视角根据动作生成高保真 rollout,但都受限于有限的时间上下文窗口:一旦视角移开再移回,环境内容已经”面目全非”——因为视频扩散模型的因果注意力只能看到窗口内的少数几帧,窗口外的内容被彻底遗忘。已有的两条”保持一致性”路线各有局限:显式 3D 重建(如 Navigation World Models 一类工作)能可靠维持一致性,但重建之后场景难以再交互修改;隐式条件路线(StreamingT2V 靠全局/局部视觉上下文续写、SlowFast-VGen 靠渐进式训练 LoRA 记忆)依赖抽象特征,难以精确复原具体场景,且容易过拟合到预定义地图。

WorldMem 的定位是第三条路线:不重建 3D、也不依赖抽象隐式记忆,而是直接存储并检索原始历史帧 + 状态,用跨注意力显式地把”过去”接回”现在”。其基座沿用 Oasis 的 Conditional DiT 架构,训练范式沿用 Diffusion Forcing (DF) 的逐帧噪声水平自回归方案;在 RealEstate10K 上则以 History-Guided Video Diffusion (DFoT) 为基座验证记忆模块的可迁移性。论文的核心论点是:只要把历史帧的选择、编码、注入设计好,“记忆”完全可以不必是训练时预设的场景,而是可以在推理时动态调用的通用机制。

模型架构

范式:Conditional DiT(继承 Oasis 架构)+ Diffusion Forcing 自回归生成 + 显式记忆跨注意力模块。

1)基础世界模拟器(Sec. 3.2)

  • 沿用 Oasis 的 DiT 视频生成骨干:多个 DiT block,含空间模块 + 时间模块(时间模块用因果注意力,每帧只能看前面的帧)。
  • 动作条件:Minecraft 实验中动作空间共 25 维(移动:左/右/前/后;视角控制:抬头/低头;事件触发:放置物品、切换道具);动作先经 MLP 投影到 embedding 空间,再与去噪时间步 embedding 相加,通过 AdaLN 注入时间模块(论文简化图示未画出,但同样方式也注入空间模块)。
  • 训练范式:采用 Diffusion Forcing 的逐帧噪声水平方案(式 2),使模型既能做全序列生成也能做自回归 rollout,突破固定上下文窗口的长度限制——但窗口外内容仍会被遗忘,这正是 WorldMem 要解决的问题。

2)记忆条件机制(Sec. 3.3,核心创新)

  • 记忆库由一系列记忆单元 M = {I, p, t} 组成:I 为历史帧,p 为位姿(x, y, z, pitch, yaw ∈ ℝ⁵),t 为时间戳。
  • 用跨注意力做记忆检索:当前去噪帧 X∈ℝ^(l₁×d) 作为 Query,记忆帧 M∈ℝ^(l₂×d) 作为 Key/Value;先分别叠加状态 embedding E_X、E_M(X̃=X+E_X,M̃=M+E_M),再算 CrossAttn(Q=p_q(X̃), K=p_k(M̃), V=p_v(M))。
  • 把记忆帧当”干净帧”塞进 DF 的去噪流程:训练时,时间上下文窗口内的帧按 DF 惯例随机采样噪声水平,而记忆帧固定为最低噪声水平 k_min;推理时同理,只有正在生成的帧用最高噪声 k_max,其余(含记忆帧)都设为 k_min。这样不需要额外的条件模块,记忆信息直接沿扩散去噪路径传递,避免了额外投影层带来的信息损失。
  • 注意力掩码隔离:记忆帧只允许通过专门的记忆块(跨注意力)影响生成,被显式掩码排除在时间块(因果自注意力)之外,即 A_mask(i,j)=1 当 i≤L_M 且 j=i(记忆帧只与自己交互),或 i>L_M 且 j≤i(普通因果规则)。

3)记忆检索算法(Sec. 3.4,Algorithm 1)

  • 贪心匹配:先用蒙特卡洛采样计算当前状态与库中每个历史状态的视场重叠比(FOV overlap, o),再算时间戳差 d=|t_i − t_c|;置信度 α = o·w_o − d·w_t(论文取 w_o=1,w_t=0.2·t_c)。
  • 每步选置信度最高的状态加入检索结果 S,然后用相似度阈值 tr=0.9 过滤掉与已选状态过于相似(冗余)的候选,重复 L 次直到选满记忆条件长度 L。

4)状态 embedding 设计(Sec. 3.5)

  • 位姿:采用稠密的 Plücker embedding(而非稀疏/绝对位姿),把 p∈ℝ⁵ 映射为 P∈ℝ^(h×w×6)(式 8-13:像素方向向量 d 与相机中心 o 的叉积 + 方向向量本身,共 6 维),再经 MLP G_p 映射到 embedding 空间。
  • 时间戳:简单 MLP(G_t)映射。
  • 关键设计——相对而非绝对 embedding:在记忆注意力块中,Query 侧的位姿 embedding 恒置零,Key 侧用相对位姿(相对当前帧)计算,为此把跨注意力拆成”逐帧独立查询”的形式(Fig. 2d)。消融显示相对 embedding 相比绝对 embedding 显著减少误差随时间累积(见”评测”节 Table 3、Fig. 8:绝对 embedding 在 100 帧后开始明显退化,相对 embedding 300 帧后仍保持稳定)。

噪声调度超参:k_min=15,k_max=1000。

参数量:论文未直接披露 WorldMem 整体参数量(沿用 Open-Oasis 的预训练 DiT + VAE 权重,记忆跨注意力块为新增部分,具体新增参数量未披露)。

数据

Minecraft(主实验)

  • MineDojo 构建训练/评测数据,覆盖多种地形(平原 plains、热带草原 savanna、雪原 ice plains、沙漠 desert)与动作模态(移动、视角控制、事件触发)。
  • 训练集规模:约 20K 条长视频,每条 1500 帧(≈3000 万帧量级)。
  • 评测集:Minecraft benchmark 的窗口内/窗口外两组实验共用 300 条测试视频,用 4,800 帧计算 rFID;RealEstate10K 侧另取 100 个样本做 360° 一致性测试。
  • 位姿来源:训练/主评测中位姿由游戏模拟器直接输出作为 ground truth;论文额外训练了一个轻量级”位姿预测器”(输入前一帧图像 + 前一位姿 + 即将执行的动作,预测下一位姿),使得纯靠动作交互(无 GT 位姿)也可运行——Table 8 显示预测位姿相比 GT 位姿指标略降(PSNR 25.32→23.13,LPIPS 0.1429→0.1786,rFID 15.37→20.36),但仍可接受。

RealEstate10K(真实场景验证)

  • 使用 RealEstate10K 数据集(附相机位姿标注),训练集约 65K 条短视频片段;设计包含”回访历史场景”的轨迹专门评测长期一致性。

训练时的记忆采样策略消融(Table 6):论文比较了”小范围采样”(记忆条件限制在 Minecraft 世界内 2m 以内)、“大范围采样”(扩展到 8m)、“渐进式采样”(训练前期用小范围样本、逐步过渡到大范围)三种策略,渐进式采样效果最好(PSNR 25.32 / LPIPS 0.1429 / rFID 15.37),显著优于单纯小范围(19.23/0.3786/46.55)或单纯大范围(21.11/0.3855/42.96)。

动作标注:Minecraft 动作由游戏模拟器直接给出(离散/连续混合的 25 维向量),非人工标注;数据无需额外的动作检测/伪标签流程。

Sim vs Real:Minecraft 部分是纯仿真数据;RealEstate10K 部分是真实场景视频(真实相机轨迹),两部分独立训练验证,未做联合 co-training。

训练方法

目标函数:标准视频扩散去噪目标,按 Diffusion Forcing 的逐帧噪声水平版本(式 2)。

Minecraft 实验配置(论文附录 6.2)

  • 基座:Oasis 预训练权重(VAE + DiT)。
  • 优化器:Adam,固定学习率 2×10⁻⁵
  • 分辨率:训练在 640×320,先经 VAE 编码到 32×18 潜空间,再 patchify 到 16×9
  • 上下文/记忆窗口:8 帧时间上下文窗口 + 8 帧记忆窗口。
  • 训练步数与硬件(论文原文):约 200K 步8 张 GPU,每卡 batch size 2
  • 与公开代码仓库的差异:GitHub README 描述的训练配方是”在 4 张 H100 上训练约 500K 步收敛”,并采用三阶段课程学习(stage 1 小范围+禁竖直转向 → stage 2 大范围+禁竖直转向 → stage 3 大范围+含竖直转向)。这与论文正文披露的”8 GPU / 200K 步”不完全一致,可能是公开训练脚本相对论文实验做了调整;两个数字均来自一手资料,此处并列标注,未强行合并。
  • 采样策略课程:渐进式采样(小范围→大范围,见”数据”节),配合上述三阶段训练课程。

RealEstate10K 实验配置

  • 基座:DFoT
  • 冻结除记忆模块外的所有组件,只微调新增的记忆模块
  • 上下文/记忆窗口:2 帧时间上下文窗口 + 1 帧记忆窗口。
  • 训练步数与硬件:约 50K 步4 张 GPU,每卡 batch size 8
  • 分辨率:训练在 256×256,patchify 到 128×128

记忆检索超参(Algorithm 1):相似度阈值 tr=0.9,权重 w_o=1,w_t=0.2·t_c;噪声水平 k_min=15,k_max=1000。

位姿预测模块(用于无 GT 位姿的交互式推理):轻量网络,输入前一帧图像 + 前一位姿 + 即将执行的动作,输出预测的下一位姿(Fig. 11),使系统可以仅凭动作序列运行,无需依赖游戏引擎持续给出 GT 位姿。

Infra(训练 / 推理工程)

  • 训练硬件:Minecraft 主实验 8 张 GPU(型号未在论文正文注明);RealEstate10K 记忆模块微调 4 张 GPU。GitHub 公开训练脚本注明用 4×NVIDIA H100,约 500K 步收敛(见上文”训练方法”节的差异说明)。GPU-hours、并行策略(数据/张量并行)未披露
  • 精度(fp16/bf16/fp32):论文与代码仓库均未明确说明混合精度设置,未披露。
  • 推理速度:论文未报告生成时的 FPS / 控制频率(control-Hz)/ 延迟数字;仅在 GitHub README 中提到”在 1 张 A100 上跑 1 个评测 case(即一次 rollout + 指标计算)约需 6 分钟”——这是评测流水线耗时,并非纯推理帧率,未披露真正的推理 FPS。
  • 边缘部署:未涉及,论文/仓库均无边缘硬件适配报告。
  • 记忆开销的自述局限:记忆库随生成帧数线性增长(memory usage 线性增加),对极长序列会带来存储与检索成本上升,论文明确将此列为局限之一(未提出解决方案,留待未来工作)。

评测 benchmark

Table 1(Minecraft,within context window,所有方法上下文窗口=16,本方法另加 8 帧记忆窗口,300 条测试视频,4,800 帧计算 rFID)

方法PSNR↑LPIPS↓rFID↓
Full Sequence(同噪声水平全序列 DiT)20.350.069113.87
Diffusion Forcing26.560.009413.88
WorldMem(本文)27.010.007213.73

Table 1(Minecraft,beyond context window,上下文窗口=8,记忆窗口=8,初始化 600 帧记忆库,生成 100 帧后与随后 100 帧 GT 比较;Full Sequence 无法 rollout 这么长故排除)

方法PSNR↑LPIPS↓rFID↓
Diffusion Forcing18.040.437651.28
WorldMem(本文)25.320.142915.37

Table 2(RealEstate10K,360° 一致性测试,100 个样本,对比首帧与旋转一圈后末帧)

方法PSNR↑LPIPS↓rFID↓
DFoT8.3960.6676156.74
WorldMem(本文)20.190.177367.14

消融实验(均在 Minecraft beyond-context-window 设置下)

  • Table 3(embedding 设计):稀疏+绝对 20.67/0.2887/39.23 → 稠密+绝对 23.63/0.1830/29.34 → 稠密+相对(本文全量)25.32/0.1429/15.37;稠密 Plücker 位姿显著优于稀疏位姿,相对编码进一步提升(尤其 LPIPS/rFID)。
  • Table 4(时间戳条件):无时间戳 23.17/0.1989/23.89 → 有时间戳 25.12/0.1613/16.53,验证时间戳对建模事件演变(如种植生长)的必要性。
  • Table 5(记忆检索策略):随机采样 18.32/0.3224/47.35 → +置信度过滤 23.12/0.1863/24.33 → +相似度过滤(本文全量)25.32/0.1429/15.37;随机检索会导致质量急剧退化。
  • Table 6(训练采样范围课程):小范围 19.23/0.3786/46.55、大范围 21.11/0.3855/42.96、渐进式(本文全量)25.32/0.1429/15.37。
  • Table 7(记忆上下文长度):长度 1→22.18/0.1899/20.47,4→24.68/0.1568/16.54,8→25.32/0.1429/15.37(最优),16→23.14/0.1687/18.33——记忆帧过多反而引入噪声、降低检索精度。
  • Table 8(GT 位姿 vs 预测位姿):GT 25.32/0.1429/15.37 vs 预测 23.13/0.1786/20.36,预测位姿有一定性能损失但可接受。
  • 公开评测脚本(GitHub README)给出的复现结果:PSNR 24.01 / LPIPS 0.1667 / FID 15.13(5000 帧计算 FID),与论文 Table 1 beyond-context 数值(25.32/0.1429/15.37)量级一致但不完全相同,可能因随机种子、代码后续小修订所致。

创新点与影响

  • 首次把”显式历史帧 + 状态”作为可检索记忆单元,直接注入 Diffusion Forcing 去噪流程:不依赖 3D 重建(灵活性受限)也不依赖隐式特征记忆(难以精确复原具体场景),而是用跨注意力 + “记忆帧当干净帧”的巧妙设计,在不引入额外条件模块的前提下解决了窗口外内容被遗忘的问题。
  • 基于 FOV 重叠 + 时间差的检索算法,把”应该记住哪些历史帧”变成一个可计算的置信度排序问题,而不是简单的滑动窗口或随机采样,消融证明这对最终一致性至关重要(Table 5:随机检索 rFID 47.35 vs 完整策略 15.37)。
  • 相对 Plücker 位姿 embedding 被证明显著优于绝对/稀疏编码,为后续记忆式世界模型的状态表示设计提供了具体可复现的配方(Table 3)。
  • 首次证明世界模型可以同时”记住空间”(长期不动的场景细节)与”记住时间”(事件的演变,如作物生长),时间戳条件的加入让模型区分”同一地点、不同时刻”的记忆单元,这是纯空间记忆机制(如仅靠位姿)无法做到的。
  • 作者自述局限:① 仅靠视场重叠可能无法覆盖所有必要信息(如视线被遮挡的场景);② 当前环境交互的多样性与真实感有限,计划扩展到更真实、更丰富的真实世界交互;③ 记忆库随生成长度线性增长,对极长序列存在扩展性隐忧,论文未给出解决方案。

原始链接

一手源存档(sources/)