Matrix-Game 4.0:单卡 480p 实时可玩,画质没人量过

速览

前三代都在往模型里塞记忆,4.0 决定把世界状态搬出去

Matrix-Game 4.0 做的事可以压缩成一句话:把「世界状态」从视频模型里搬出去,交给外面的游戏引擎和代码来维护,视频模型退化成只负责画面的渲染器。论文给出的系统级结果是单张消费级 RTX 5090 上 480p、60 FPS 的可玩画面,以及 112 ms 的按键到显示延迟 Matrix-Game 4.0. 它不是一次视频生成提速,而是换掉了承担世界状态的那个部件。

要理解为什么非换不可,先看可玩世界比可控视频多要什么。论文把它写成三条约束:持久世界状态、可执行游戏规则、低延迟交互。可控视频只要在给定条件下把画面生成得像就够了,玩家不需要知道上一秒打掉的敌人还在不在原地。可玩世界必须知道那个敌人已经死了、血瓶被捡走了、任务是完成还是失败,而且这些状态要在镜头之外继续按规则演化。三条约束互相拉扯:状态越持久,模型要背的东西越多;规则越复杂,从像素里推断越不可靠;延迟越低,能用于推理的算力越少。

纯靠视频模型维持世界状态,会撞上论文列出的四条失败模式。没有持续的外部纠正,状态只能隐式地藏在像素和模型上下文里,镜头外的区域没有显式记录。误差会累积,自回归生成里的小偏差不断复合,即便引入外部的三维工具,相机位姿估计的误差也会一路累积到场景崩塌。历史帧会以未压缩的形式不断堆积,记忆开销随 rollout 长度持续增长。玩法机制也停在导航和基础环境响应上,没有可执行规则,也没有玩家能主动追求的明确目标。

这条路线有一个极端样本。GameNGen 把整个游戏引擎替换成一个条件扩散模型,逐帧预测下一个画面,它的限制直接写在上下文长度上:模型只能看到自己最近 64 帧的预测,略多于 3 秒,更早的规则状态要靠学到的启发式去猜 GameNGen. 闭源一侧更晚的节点是 Genie 3,官方称其世界一致性可维持数分钟、视觉记忆可回溯约一分钟,但至今未开源,也没有给出毫秒级延迟和显存占用 Genie 3.

Matrix-Game 系列自己在这条线上走了三代。1.0 用离线双向扩散,只能生成定长片段,单次 65 帧推理要 80 GB 以上显存;2.0 换成因果自回归加少步蒸馏,做到单张 H100 上 25 FPS 的流式生成,但论文自陈缺少显式历史记忆机制;3.0 补上相机感知的记忆检索、几何编码和误差再注入,用多卡异步部署做到 720p 约 40 FPS,世界状态依然压在模型内部 MG1.0 MG2.0 MG3.0.

图注:Matrix-Game 3.0 的记忆增强基座。记忆帧、历史帧与带噪当前帧三组条件进入同一个 Diffusion Transformer,左侧 Error Buffer 通过 Error Collection 与 Error Injection 两条连线参与训练。这是「世界状态留在模型内」要背的机制清单里最核心的一项。MG3.0

如果存在一份模型之外的权威状态副本,模型是不是就不必再自己记住世界。4.0 给的就是这个答案。

职责被切成三份:代码定规则、引擎管状态、视频模型只出画面

4.0 的架构一句话能说完:多模态编码智能体加游戏引擎组成 harness,把视频模型包在中间。论文用一句加粗的话收束整个设计,代码定义规则,引擎维护状态,视频模型生成画面。三个模块被分别称作世界的裁判、世界的编剧兼翻译、世界的画师 Matrix-Game 4.0. 这里的关键不是「多加了一个引擎」,而是引擎和智能体把视频模型夹在中间,模型只参与最后一环。

运行时的闭环有五个步骤。玩家输入先到引擎,引擎更新世界状态,然后把结构化的渲染结果和控制信号交给视频模型,模型实时渲染出画面,画面再作为视觉反馈回到玩家。真正被搬出去的东西,是那些原本要靠模型「记住」的量:血量、库存、重力、碰撞、任务进度全部由代码显式维护并强制执行,不从生成的图像里反推。物体离开视锥之后,它的状态仍然由引擎按规则继续推进。这一点是「状态有外部载体」和「状态在模型上下文里」最直观的差别,也是 4.0 与前三代真正分岔的地方。

讲解:状态留在模型里还是搬出去

图注:Matrix-Game 4.0 的 roadmap 图。多模态编码智能体与游戏引擎组成 harness,把视频生成模型包在中间;图中 1 到 5 的编号回路对应玩家输入、引擎维护状态与规则、引擎输出结构化渲染、模型实时渲染、画面回到玩家。底部一行写着 Code → rules · Engine → state · Video model → visuals。Matrix-Game 4.0

用分类的话说,这套系统的取舍落在一个明确的位置上。有综述把交互式世界模型拆成四个维度,玩家动作控制、游戏状态动态、状态与观测的持久性、实时交互生成,并指出仍然困难的那部分能力都绕不开游戏状态,而多数模型把状态保持为隐式 From Pixels to States. 4.0 站在状态显式外置的那一端。

同一时间点上,把「世界怎么演化」和「世界长什么样」拆开并不是孤例。Code World Model 也主张用代码承载可执行状态,把状态编译成代理条件再交给视频模型,但作者明确写了没有实现自回归实时生成,对比也不计推理延迟 Code World Model. 这是同期独立的设计直觉,不是 4.0 的前身。

代理给结构、字幕给语义:条件由引擎与智能体直接算好,不从画面里猜

4.0 的可控性来自把结构条件和语义条件显式算好再喂给渲染器。引擎渲染出的低多边形代理负责「东西在哪、怎么动」,规则化模板生成的动态字幕负责「画面里有哪些物体、各自什么状态」。两条通道互不重叠,模型不需要从像素里反推任何一项。

低多边形代理最容易被误读成三维重建或者降采样,它不是。训练数据在 UE5 里对同一段片段采两次,相机轨迹和时间戳严格同步,一次是低模结构渲染,一次是高保真 RGB 帧,因此两张图逐像素对齐。代理保留了场景的空间拓扑、刚体姿态和运动轨迹,被去掉的是材质反射、高频纹理和复杂光照。论文给出的外观规格很好记:天空是黑的,地面是灰色棋盘格,建筑和墙变成平色盒体和棱柱,树是一个圆柱加一个球,人物是方块拼的,每个基本体都只描黑边,没有纹理、反射和阴影。

这里可以用一个对得上的类比来认清代理的性质:它更像同一套建筑坐标导出的施工图,而不是把已建成的楼拍模糊。图纸和照片能逐点对齐,是因为两者用的是同一份几何和同一个机位;代理和成品帧能逐像素对齐,也是因为两者用的是同一台相机、同一个帧号。区别也正是 4.0 想要的:图纸固定了每个物件的位置和运动,而它长什么样,留给渲染器去填。

图注:左栏 (a) 是 UE5 在同相机同帧号下采两次的结果,左边是保留布局与运动的低模结构渲染,右边是高保真 RGB,副标写明 aligned scene layout and dynamic objects。右栏 (b) 是字幕的生成流程:81 帧片段与其 CSV 记录先查可见物体 ID 对应的描述,再组合空间与时间线索,最后填入模板得到 clip prompt。Matrix-Game 4.0

字幕这条通道的关键在于它根本不经过视觉语言模型。场景里每个物体有一个 ID 绑定语义描述,系统从引擎读取当前可见物体及其实时状态,按模板拼出与当前帧匹配的描述,视角变化、进入新区域或触发事件时描述被重排。文本的键值缓存只在字幕真正变化时才重算。这样既省掉了在线推理的成本,也避免了「让模型自己描述自己正在画什么」这种会污染条件的做法。

智能体在这里双向工作。向下它写世界,把玩家的自然语言请求变成游戏代码与场景配置,比如「让怪物从各个方向涌来」需要同时定义出生点、移动方式、攻击行为和胜负条件。向上它译世界,把引擎报告的状态与事件变成文字,比如开枪是否命中、有没有触发爆炸由引擎判定,智能体只负责描述结果。不过代理该长什么样仍是个开放问题:有独立评测把同一份世界记录、同一台相机渲染成粗三维、语义代理和彩色包围盒三种代理表示,并发现固定生成器时布局几乎不变,歧义落在「哪段外观描述属于哪个实体」上,输出还可能过度贴近低模几何、甚至把包围盒轮廓残留在画面里 PROWBench.

渲染器已是翻译器:把低模条件沿通道拼进去,一到两步因果去噪出四帧

到一到两步去噪还能稳定出画面,靠的不是把步数砍掉,而是先把训练方式改成与推理一致,再做分布匹配。这一步的原理值得先讲,因为 4.0 的渲染器只是这套原理的一次具体取舍。

问题叫暴露偏差。自回归视频模型训练时喂的是真值历史帧,推理时喂的却是自己刚生成的帧,两者的分布从一开始就不一样,误差会随着生成推进不断累积。就像一直对着原文背课文的人,上台却必须接着自己上一句继续背,一旦第一句错了,后面越背越偏。Self Forcing 给出的解法是让训练阶段也做自回归 rollout,用模型自己的输出当上下文,同时启用 KV cache,并把监督换成在整段视频上计算的分布匹配损失 Self Forcing. CausVid 走的是另一条分支,用双向教师把因果学生蒸馏出来,把采样步数从 50 压到 4 CausVid.

图注:Teacher Forcing、Diffusion Forcing 与 Self Forcing 三种训练注意力配置并排对照。前两者用自定义注意力掩码并行训练整段视频,Self Forcing 则用 KV caching 逐帧镜像自回归推理过程,不依赖特殊掩码。图中 3 帧、每帧 2 个 token 只是示意规模。Self Forcing

4.0 的渲染器从 Wan2.2 的 5B Fun Control 权重出发,改造成视频到视频的模型。噪声 latent 与代理经编码后的 latent 沿通道拼接成 148 个通道,其中噪声占 48、代理控制占 48、另外 52 个通道填零,在 480×864 下每个 latent 帧被切成 405 个 token,送进 30 个因果 DiT 块。缓存分三段:3 个空间记忆帧、reference 帧、最近 20 个 chunk,整窗合起来是 21 个 latent 帧,一个 chunk 等于 1 个 latent 帧,解码后是 4 个视频帧。

有一个容易滑过去的细节值得单说。每个 chunk 生成完之后,模型会以时间步为零、不带控制输入再跑一遍,把这一次得到的键值写进缓存。不这样做,后续 chunk 在注意力里看到的会是一段被条件扰动过的不干净历史,误差会以另一种方式累积。

图注:渲染器结构。噪声 latent 与代理 latent 拼成 148 通道后经 3D 卷积嵌入,480×864 下每个 latent 帧是 405 个 token,主干是 30 个因果 DiT 块,自注意力作用在包含空间记忆帧、reference 帧与最近 20 个 chunk 的 KV cache 上,另有对动态字幕文本键值的交叉注意力。右下角标着 RE-RUN AT t=0 WITHOUT CONTROL,即 chunk 生成完后重跑一次写入干净历史。Matrix-Game 4.0

训练侧走的是三阶段蒸馏,先做 teacher-forced 的自回归扩散,再做因果一致性蒸馏,最后做非对称分布匹配。那个「重跑一次写入干净历史」的设计,和训练阶段模拟推理是同一件事的两侧:一个在训练时让模型习惯自己的输出,一个在推理时保证缓存里存的不是被污染的历史。

延迟压到 112 ms 之后,还没解决的是画质与长时程

112 ms 和 83 FPS 只在写明的口径下成立,而可玩性的画质至今没有被定量丈量过。这两个数字经常被放在一起引用,但它们根本不是同一件事:60 FPS 和 112 ms 是系统级声称,83.4 FPS 与 18.2 GiB 是模型推理单项的测量结果。

论文给的推理优化链条是可以逐行读的,每一行在上一行基础上再叠一项。

链条读下来有两点值得注意。整体是 19 倍更快、延迟降到原来的十分之一,但延迟的大幅下降集中发生在融合 Triton kernel 那一步,前面几步合起来只把延迟从 1110 ms 压到 367 ms。也就是说,真正决定手感的是算子层与缓存层,去噪步数从 4 步降到 1 步只贡献了一部分。

数字的口径必须跟着数字一起读:

数字它成立的前提
480p、60 FPS、112 ms单张 RTX 5090,480×864,游戏以 60 FPS 运行,延迟定义为按键到第一帧反映出该按键
83.4 FPS、约 18.2 GiB 峰值模型推理单项,一步去噪,chunk 为 1 个 latent 帧,KV 窗口 21 个 latent 帧
57.7 FPS同一硬件与分辨率,两步去噪,峰值显存同为约 18.2 GiB
RTX 5080 约 67 FPS / 12.8 GiB固定 prompt、排除视频 I/O 的稳态,SageAttention 后端
论文评测实际使用的配置每个 chunk 两步去噪,三个游戏,留出集自回归 961 帧,24 FPS 下 40 秒

官方一侧还给这些数字加了几道免责。仓库 README 里的 --fps 40 只是采集节奏,不是吞吐或延迟保证;官方明确区分了模型处理吞吐、服务端在线流水线吞吐、浏览器呈现 FPS 和按键到光子延迟四种量,模型卡也写明不保证帧率与消费级显存占用 Matrix-Game 官方仓库. 换句话说,演示机上手感如何,论文没有把它做成可核验的指标。

更值得记住的是没被量过的那部分。论文只覆盖三个游戏,最长评测时程是 40 秒,而且没有报告任何画面质量的定量指标,既没有 FVD 或 CLIP 这类自动指标,也没有人工评测表。它证明的是延迟确实买到了,不是画面质量也一并解决了。

那这类系统该怎么被检验,其实有独立答案。有一类评测用含视野外实体状态和时间戳事件的可回放世界记录,把生成视频和程序规定的交互逐项对账,结论并不乐观:30 秒全程的包围盒 IoU 只有 0.175 到 0.280,实体离场后返回时的 IoU 只有 0.053 到 0.131 PROWBench. 需要说明的是,这个基准没有评测 Matrix-Game 4.0,它的分数不是 4.0 的成绩,它给出的是「程序执行正确并不等于渲染忠实」这一检验视角。

至于闭源一侧的对照,也要小心读法。官方对照表里 Genie 3 的交互延迟一列只写了 Real time,那不是毫秒数,也不是第三方评测,而是厂商自制的一张分档表 Genie 3.

回到开头那三条约束。持久状态和可执行规则现在由模型之外的引擎保证,低延迟也在写明的口径下买了回来。真正没解决的是另外几件事:规则该在什么时机生效,后果该在什么时候显现,生成画面在长时间尺度上还能不能忠实地重现实体。论文的 Table 3 声称自己是同期系统里端到端延迟最低、也是唯一跑在单张消费级显卡上的一个,这是论文自报,不是独立结论。复现门槛也得说清楚,训练代码与训练数据没有发布,一次训练要 64 张 GPU,而且每个游戏单独训一个模型,官方只覆盖三个场景。

所以这篇论文的价值在于换掉了承担状态的那个部件,让可玩性在单张消费级显卡上成立;它的边界在于,这个「可玩」的画面质量与长时程表现,至今还没有一把量尺。

想深入可以读原文:Matrix-Game 4.0: Harnessing Video Models for Real-Time Playable Game Worlds — arXiv:2610.27999

参考文献

Matrix-Game 4.0:单卡 480p 实时可玩,画质没人量过