你操纵一个由 AI 即时生成的虚拟世界,走出房间,绕上很久,再推门回来。理想情况下,桌椅还应摆在原处。但模型若把早先场景忘掉,房间就可能悄悄变样;若把所有历史都记住,内存又会越吃越多。
Bingnan Liu 和 Ruini Xue 提出的 WorldPager,想解决的正是这道选择题。它不要求模型少记,而是把历史记忆分层放进 GPU 显存、主机内存和 NVMe SSD,并趁模型计算当前画面时,提前搬运下一步可能用到的内容。论文报告称,在一张 RTX 4090、32 GiB 主存和一块 NVMe SSD 上,特定的 Matrix-Game 2.0 工作负载连续生成了 37.5 分钟视频,主存占用不再随时间增长,也没有出现作者所定义的存储等待。
这里要先划清范围:以下效果均来自论文作者自己的实验,尚无第三方复现。它证明的是一套特定模型、检索方式与硬件配置,不是“任意世界模型都能塞进 4090”。
世界越长,记忆账单越大
交互式世界模型会根据键盘和鼠标操作,一小段一小段地生成视频。为了让故地重游时的场景保持一致,模型会保存历史片段的 KV Cache——也就是注意力机制回看过去时使用的一批中间结果,类似一份不用重新计算的场景笔记。
问题是,这份笔记会线性膨胀。Matrix-Game 2.0 每个视频块包含 0.75 秒、12 帧画面,其 bf16 格式的 KV 占 486.6 MB。放在 24 GB GPU 显存中,到第 21 个块、约 16 秒时就会耗尽空间;搬到 32 GiB 主存,也只能撑到第 60 个块、约 45 秒。即使压缩成 int4——用 4 位整数保存数据——也会在第 226 个块、约 2.8 分钟时耗尽主存。
直接删掉旧记忆会破坏场景一致性。保存画面、等需要时重新计算 KV 也不便宜:作者在 RTX 4090 上测得,重算一个被检索块需要 585.5 毫秒,而模型一次去噪步骤为 190.4 毫秒。WorldPager 因此选择保存压缩后的 KV。其 int4 KV 每块为 129.4 MB,约是 bf16 的 26.6%;读回后的反量化中位耗时为 10.9 毫秒。
SSD 为什么没有拖住生成
分层存储并不新鲜:显存最快但最小,主存较大,SSD 最大也更慢,像把常用物品分别放在桌面、柜子和仓库。真正的问题是,从“仓库”临时取东西,往往会让计算停下来等。
WorldPager 换了一个观察角度。作者认为,这项任务受限于容量,而非带宽。模型生成一个块大约需要 1.2 秒,这段计算时间足以掩盖数据搬运。论文测得,从 NVMe 读取三个 bf16 块共 1.46 GB,再送入 GPU,需要 276 毫秒;若一边计算当前块,一边搬下一块,传输可以藏进计算窗口。
更关键的是,系统能提前猜到要取哪段记忆。模型按相机位姿检索历史场景,而相机位姿来自用户控制。WorldPager 在生成当前块时,用恒定速度外推下一块的位姿,据此执行预取——在真正用到数据前,先把它搬到更快的层级。
预测当然可能落空。WorldPager 此时不会停下来等 SSD,而是暂时沿用上一块已经准备好的检索集合。代价是记忆可能晚一个块生效,收益则是存储缺页不会直接卡住生成。新产生但放不进主存的 KV,也由后台线程写回 SSD,避免同步写入占据关键路径。
在强制所有检索数据都来自 NVMe 的实验中,WorldPager 的每块耗时为 1255.8 毫秒,作者定义的 stall 为零;按需读取方案的中位等待为 60.2 毫秒,每块总耗时多 4.3%。降低模拟带宽后,预取在 0.25 GB/s 时仍保持零等待,到 0.1 GB/s 才开始失效。这是软件限速实验,不等于真实慢速硬盘测试;而且低于临界带宽时,预取积压会使个别块的尾部延迟反而更高。
存得下,还要让模型认得久远的过去
容量之外还有第二堵墙:位置范围。模型需要知道片段在时间或空间中的相对位置,但 Matrix-Game 2.0 原始旋转位置表只覆盖 1024 个潜在帧,生成到第 341 个块、约 4.3 分钟后便会失败。换句话说,即使 SSD 无限大,模型也未必认得太久以前的记忆。
WorldPager 用无需训练的位置处理跨过这道限制。它扩展位置表;在原生范围内,输出与原模型逐位相同。超过第 341 块后,系统重新旋转被检索 KV 中的 key,把久远记忆重新安排到当前画面附近的位置。这个做法借用了已有的长序列处理思路,论文并未把概念本身作为创新;其特定之处,是处理从 NVMe 取回、按位姿检索的世界模型记忆。
这一步每块增加约 27 毫秒。更重要的是,它改变了模型理解时间位置的方式,其长期泛化能力仍需单独验证。
37.5 分钟说明了什么
完整实验运行了 3000 个视频块,生成 37.5 分钟视频,实际耗时 63.2 分钟,平均约 9.5 FPS,低于论文设置的 16 FPS 播放速率。因此,WorldPager 解决的是长时容量和存储等待,不是实时生成。
运行期间,主存峰值为 30.7 GiB,没有继续增长;系统向 NVMe 写入了 334 GiB。作者把超过 0.5 毫秒的 KV 等待定义为一次 stall,最长测得 0.12 毫秒,因此报告“zero stalls”。这不代表系统所有环节都没有延迟,只表示没有视频块因检索 KV 等待超过该阈值。
在往返路径实验中,模型会重访相隔最多 1981 个块的场景。论文称,相关 KV 能从 NVMe 预取回来,没有一次等待超过 0.5 毫秒。密封测试集上,int4 存储没有造成可测量的质量损失;但在跨越较长间隔的重访中,图像质量下降约 1 个 MUSIQ point。MUSIQ 是一种图像质量评分,这一结果说明压缩并非在所有条件下都毫无代价。
WorldPager 最值得关注的地方,不是简单地“给模型接一块 SSD”,而是利用世界模型的两项特性重新安排数据:每次生成留下了较长的搬运窗口,相机控制又让下一步访问哪些记忆可以提前估计。于是,速度较慢但容量更大的 SSD 不必站在计算的必经之路上,而可以在后台充当长期记忆库。
局限与未知
- 所有结果都来自同一篇论文。作者所称“首个把交互式世界模型 KV 放入 NVMe 并实现零等待预取”的结论带有“据我们所知”的限定,尚缺独立验证。
- 37.5 分钟不是无限时长。超过模型原生 4.3 分钟位置范围,要依赖无需训练的位置重排;更长运行中的稳定性和画面质量仍不明确。
- 质量证据范围有限。密封测试集只有四个新场景、两条轨迹和若干随机种子;长间隔重访已经观察到约 1 个 MUSIQ point 的下降。