打开网易新闻 查看精彩图片

2024年,如果你让一个视频生成AI去模拟一局多人游戏,会发生什么?

答案可能会让你意外:画面会崩。不是偶尔崩,是必然崩。你会看到同一条蛇在两个玩家的屏幕上长得不一样长,同一块食物在这个人的视角里存在,在那个人的视角里消失了。这不是哪个模型训练得不够好的问题,而是一个从设计源头就埋下的结构性矛盾。

这篇来自Alaya Lab、北京大学和东京科学大学联合团队的论文,把这个问题挖到了根上,并且给出了一个听起来简单、做起来颠覆性的解法。他们把这个方案叫做MASS,全称是"带权威共享状态的多人世界模型"。

问题出在哪:一个人的记忆,被复制了一千遍

先说说现在的视频世界模型是怎么工作的。GameNGen、Oasis、DIAMOND、Genie这些知名项目,本质上都是在做同一件事:把上一帧画面(或者画面的压缩表示)当作"记忆",结合玩家的操作,预测下一帧画面。这套逻辑在单人游戏里跑得挺顺,因为一个画面就是一个世界,谁在看,谁就拥有全部信息。

问题来了。多人游戏里,一千个玩家同时在线,但每个人的摄像机只能看到世界的一个角落。如果继续沿用"画面即记忆"的老思路,会出现三个连锁问题。

第一,同样的世界内容,要在一千份视频记忆里被重复编码一千次,这是纯粹的浪费。第二,当两个玩家的视角有重叠区域时(比如两条蛇同时靠近同一块食物),两份独立生成的画面记忆完全有可能对这块区域给出不同答案,一个说食物还在,一个说食物已经被吃了。第三,也是最要命的一点:模拟世界所需要的计算量,会随着观看人数线性增长,因为每多一个观众,就要多跑一份完整的视频生成流程。

这就好比你请了一千个证人分别描述同一场车祸,每个人只看到自己那个角度,却要求每个人都单独把整个事故现场的来龙去脉画一遍。结果自然是,不同证人笔下的车祸细节对不上号,而且画一千份手绘图比只记录一份客观的事故数据要费力得多。如果不做任何改变,继续按人头生成视频,那么用户越多,系统越慢,画面越容易互相矛盾,这条路径注定走不远。

已有的一些多人世界模型项目试图缓解这个问题,比如Gamma-World用了稀疏的跨玩家注意力机制来降低计算成本,MultiWorld引入了全局视觉表征来协调多个视角,MultiGen维护了独立于上下文窗口的外部记忆。但论文作者指出,这些方案有一个共同的软肋:它们的共享表征要么是视觉化的(本质上还是某种画面或者画面的隐向量),要么是稠密的、缺乏结构的,要么完全依赖外部维护,没有一个方案把"世界的真实状态"变成一个可以被直接检验、直接同步、类型明确的对象。

灵感来自哪:网络游戏的服务器早就解决了这个问题

有意思的是,这个问题在真正的网络游戏行业里,二十多年前就被解决了。

任何一个玩过《魔兽世界》或者《英雄联盟》的人可能都没意识到,这类游戏背后有一套经典架构:一台服务器维护着唯一的、权威的游戏状态(谁在哪里、血量多少、技能冷却情况),这个状态不属于任何一个玩家的屏幕,它只属于游戏本身。每个客户端拿到这份状态的"快照",各自渲染出自己的画面。服务器只需要推进这一份世界状态,不管有多少玩家在看,这个推进的成本都是固定的,渲染才是分摊给每个客户端自己去做的事。

这套逻辑翻译过来就是:世界的演化和视角的呈现,压根就应该是两件独立的事,不该被捆在一起。

MASS做的事情,就是把这套久经考验的网络游戏架构,搬进了神经网络驱动的世界模型里。

MASS的核心设计:先写"世界日志",再画"游戏截图"

MASS把整个系统拆成了两个学习出来的引擎:逻辑引擎(Logic Engine)负责推进世界状态,渲染引擎(Rendering Engine)负责把状态变成画面。

**世界状态不再是一张画面或者一份隐向量,而是一份带有明确字段的"结构化记录"。**

这里要停下来解释一个关键概念。

> 类型化状态(typed state):指的是把游戏世界拆解成一条条带有明确字段的记录,比如每条蛇有身体坐标、朝向、生死状态,每块食物有它所在的位置,这些字段的名字和取值范围由一份叫作"游戏图纸"(schema)的声明文件规定死。

这份图纸不需要程序员为每个游戏手写规则,它只是定义"这个游戏世界里存在哪些种类的实体,每种实体有哪些属性,这些属性能取什么值"。以论文中的贪吃蛇游戏为例,图纸里声明了三类记录:一个全局的时钟计数,1024条蛇各自的身体段、朝向和生死,以及4096个食物格子。每一步,世界总共要维护5121条这样的记录。

那么,这份记录是怎么"活起来"、一步步演化的呢?靠的是逻辑引擎,一个基于Transformer的神经网络。

> Transformer:一种通过自注意力机制处理序列数据的神经网络架构,是当前大语言模型和很多生成模型的骨干结构。这里被用来吃进当前世界状态和所有玩家的操作,吐出下一步的世界状态。

逻辑引擎每一步只运行一次,不管这一刻有多少玩家在盯着屏幕看。它把每条记录变成一小段token序列,结合这条记录周围的空间上下文(比如一条蛇周围8乘8格子里有没有食物、有没有别的蛇头),以及这条记录对应玩家发出的操作指令,预测出下一步这条记录该长什么样。

这里有个很聪明的设计:所有记录的自注意力计算都被限制在各自的序列内部,记录和记录之间不互相计算注意力,它们之间的互动信息全靠"局部空间窗口"这个中间媒介来传递。这样一来,哪怕世界里同时存在1024个实体,计算量也不会因为实体互相关注而爆炸式增长,因为压根不需要每条记录都去看其他所有记录。

**这就好比一千个人同时填一千张独立的调查问卷,而不是所有人挤在同一张会议桌上互相打断发言。**

如果反过来,让所有实体的信息在一次巨大的注意力计算里互相纠缠,计算成本会随着实体数量的平方增长,一千个实体的规模基本没法承受。而现在这种做法,让每条记录的计算独立、可并行,规模上去了系统也不会崩。

状态推进完之后,渲染引擎才登场。

> 渲染引擎:一个基于卷积网络(残差U-Net结构)的图像生成模型,它读取某个摄像机对应的"投影"(也就是这个摄像机能看到哪些格子、格子里是谁、这个摄像机属于哪个玩家),输出对应的RGB画面。

关键的一点是,不管有多少个摄像机请求画面,它们读取的都是同一份预测出来的世界状态。这意味着,渲染阶段可以按需扩展:你可以随时加相机、挪相机、升级画质,完全不用碰底层的世界演化逻辑。

论文里给出了一组实测数字。固定住第140步的世界状态之后,让请求画面的摄像机数量从1个增加到1024个,渲染耗时从平均189.6毫秒涨到842.4毫秒,其中神经网络部分的耗时从4.4毫秒涨到379.7毫秒。这个增长是渲染那一侧承担的,世界演化那一侧的计算量完全不受影响。

状态如何被验证:不用画一张图就能打分

MASS架构还带来一个意外的好处:因为世界状态是结构化的,你可以在渲染出画面之前,直接检查这份状态对不对。

论文设计了一套叫SRSC(State-Referenced Semantic Correctness,状态参照语义正确性)的评测协议,请一个视觉语言模型(Qwen3.5-27B)来比对两张图里的实体种类、数量、位置、状态是否一致,给出0到100的分数。更巧妙的是,他们把这套评测拆成了四条轴线:只比较逻辑引擎的输出(教师渲染器画真实状态vs画预测状态)、只比较渲染引擎在真实状态上的表现、只比较渲染引擎在预测状态上的表现,以及端到端的全流程比较。

这套拆解揭示了一件很重要的事:渲染引擎本身几乎不随时间累积语义误差。在贪吃蛇游戏里,把渲染引擎架在真实状态上跑,即便跑到第1200步,分数依然在63.8到75.0之间波动,没有明显的单调下滑。真正随着时间推移变差的,是逻辑引擎预测的状态本身,它的分数从第1步的100分一路掉到第600步的1.2分。

这个发现的意义在于,当你的世界模型跑出问题的画面时,你能准确地指出问题出在"世界演化算错了"还是"画面没画对",而不是像传统视频世界模型那样,所有问题都埋在一团模糊的视觉隐向量里,根本没法拆开来看。

硬碰硬的对比:贪吃蛇擂台上的五个选手

论文设计了一个"配对的多人贪吃蛇基准测试",让五种方法在完全相同的初始状态、相同的玩家操作序列、相同的摄像机路径下跑128步,看谁能更准确地还原这个世界。

参赛选手包括:MultiWorld(一个公开发布的多人世界模型,联合生成多个协调视角),B-PV(给每个客户端视角配一个独立的视频预测器),B-SL(所有视角共用一个视觉隐向量),B-UN(保留MASS其余流程,但把类型化状态换成稠密的联合状态网格),以及MASS本身。

结果如下表所示。

| 指标 | MASS | MultiWorld | B-PV | B-SL | B-UN |

| LPIPS(感知误差,越低越好) | **0.098** | 0.277 | 0.397 | 0.396 | 0.123 |

| 状态解析准确率(越高越好) | **0.764** | 0.067 | 0.128 | 0.083 | 0.000 |

| 实体计数准确率 | **0.234** | 0.006 | 0.141 | 0.109 | 0.051 |

| 位置准确率 | **0.355** | 0.250 | 0.286 | 0.180 | 0.002 |

| 事件F1 | **0.552** | 0.065 | 0.542 | 0.528 | 0.007 |

| 跨视角不一致(越低越好) | **0.000** | 0.984 | 1.000 | 1.000 | 0.051 |

| 结构无效率(越低越好) | 0.177 | 0.981 | 0.052 | 0.052 | 1.000 |

这组数字里最扎眼的是两个地方。

一个是状态解析准确率,MASS拿到0.764分,是排名第二的B-PV(0.128分)的将近六倍。这意味着,你从渲染出的画面里反推游戏世界的真实内容,MASS的还原度是其他方法的几倍。另一个是跨视角不一致率,MASS是0.000,而其他四种方法几乎全部在0.98到1.0之间,也就是说几乎每一次两个视角有重叠的时候,它们看到的世界都对不上。这不是因为MASS的渲染网络特别厉害,而是因为它的两个视角本来就是从同一份状态里读出来的,压根没有"对不上"的空间。

值得单独说一下B-UN这个对照组。它的LPIPS分数是0.123,仅次于MASS,看起来画面质量还不错,但它的状态解析准确率是0.000,彻底归零。这组反差恰恰印证了论文一开始提出的担忧:画面看起来像,不代表世界记对了。

**这就好比两份考试答卷字迹都很工整,但一份写的全是正确答案,另一份写的字虽然好看,内容却全错了。**

如果只看卷面整洁度打分,你根本发现不了这个差距。B-UN之所以会这样,是因为它用一张稠密的网格去承载整个世界的记忆,而网格里同一个格子在不同时刻要代表不同的实体,U-Net网络没有一个显式的机制去追踪"这个格子上一秒是谁,这一秒又是谁",身份信息就这样在推进过程中悄悄弄丢了。

跨游戏的通用性:同一套骨架,八种玩法

MASS的架构并不是只为贪吃蛇量身定做的。论文在八款游戏上验证了同一套逻辑引擎加渲染引擎架构,包括推箱子、吃豆人、坦克大战、月球着陆、青蛙过河、光速战车(Tron)和炸弹人。每个游戏各自训练自己的编码器、词表和模型权重,但核心的Transformer架构和整体流程完全不变,新游戏接入只需要写一份图纸文件。

在256乘256分辨率下测试重建质量,PSNR(峰值信噪比,数值越大代表画面越接近真实)的范围从光速战车的23.72分贝到青蛙过河的40.24分贝,八款游戏里有五款超过32分贝。专门针对实体像素区域测算的Object PSNR,多数游戏都保持在27.5分贝以上。

这组结果说明,类型化状态这套接口,能撑得住不同的视觉风格,不需要为每个新游戏重新设计模型骨架。

断网了怎么办:客户端的临时代理逻辑

网络游戏还有一个绕不开的现实问题:网络会卡顿,服务器的最新状态不一定能准时送到每个客户端手里。传统方案里,客户端通常会做"预测",先按自己的猜测往前走几步,等服务器的真实数据到了再纠正回来。

MASS把这套思路也搬了过来。当服务器更新延迟时,客户端用同一个逻辑引擎,从它手头最新收到的那份权威状态出发,自己往前推演。这里有一个细节值得注意:客户端只知道自己这个玩家发出的操作,不知道其他一千个玩家在做什么,所以它只能假设别人都"什么都没做",用空操作去填补未知信息,并且假设没有新的食物生成。

论文测了这套机制在断连1步、2步、4步、8步之后的表现,见下表。

| 指标 | k=1 | k=2 | k=4 | k=8 |

| 视野内一致性(已知全部玩家操作) | 1.000 | 1.000 | 1.000 | 1.000 |

| 视野内一致性(只知道本地操作) | 0.815 | 0.652 | 0.604 | 0.429 |

| 本地玩家位移误差(格子数) | 0.00 | 0.00 | 0.00 | 0.00 |

有两个数字特别值得琢磨。

一个是,如果客户端能拿到所有玩家的真实操作数据(这是理想情况,用来验证逻辑引擎本身的推演能力),那么哪怕断连8步,视野内一致性依然是满分1.000,说明学习出来的状态转移本身没有累积误差。另一个是更贴近实际部署的场景:客户端只知道自己的操作,视野内一致性从0.815一路掉到0.429,但注意,本地玩家自己的位移误差始终是0.00。

这意味着什么?意味着断网期间,你自己的角色在屏幕上的动作永远是准的,不会突然瞬移或者卡壳,只是周围其他玩家和物品的状态会因为信息缺失而逐渐和服务器实际情况产生偏差,一旦服务器新数据到达,系统立刻用真实版本覆盖掉这份临时猜测,重新对齐。

**这就好比你在电梯里手机信号断了几秒,你自己走路的脚步不会乱,但你看不到电梯外面走廊上发生了什么,等信号恢复,画面才会一次性刷新成真实情况。**

如果没有这套本地预测机制,断网期间玩家操作会直接卡死不响应,体验会非常糟糕;但如果完全依赖本地猜测又不做任何纠正,那么长时间断网后世界会彻底走样。MASS选择的折中方案,是保证"自己"这部分绝对准,"周围世界"允许有限度的漂移,等待权威数据来纠偏。

规模测试:一千个人,一万步,不崩

论文还专门测试了系统在极限规模下的稳定性。用相同的逻辑引擎架构,MASS推演了一个1024个玩家实体的世界,连续跑了10000步。在4096步的压力测试里,2人、4人、8人规模的世界都保持了完整的角色阵容、全部64个食物格位,零结构性错误,没有出现"模型崩溃"(也就是反复生成同一个无意义状态的现象)。

论文还观察到一个有意思的细节:在2万次训练更新的检查点下,系统在4096步内访问了277到306个不重复的状态,随后进入一个循环往复的"吸引子"状态;而把训练量提高到10万次更新后,同样的测试里出现了1850个不重复状态,说明更充分的训练能显著延长世界演化的多样性,不会那么快陷入重复循环。

写在后面

读完这篇论文,最触动我的其实不是那些漂亮的数字对比,而是一个更朴素的判断:很多所谓的"多人AI难题",本质上是把单人场景的解法硬套过来,却没有意识到多人场景需要一个全新的信息架构。视频生成模型能把单帧画面做得越来越逼真,但"逼真"和"一致"是两件不同的事,前者考验的是审美,后者考验的是逻辑。

有一个细节我反复琢磨:论文里提到,B-UN那个用稠密网格代替类型化状态的对照组,画面质量(LPIPS 0.123)几乎追平了MASS(0.098),但状态还原能力却是彻底的0.000。这组反差挺提醒人的,评价一个AI系统靠不靠谱,光看它"看起来像不像"是不够的,你得有办法验证它记住的东西对不对,而这恰恰是大多数生成式AI系统目前最缺的一环,它们大多是黑箱,你没法在生成结果之前先检查一下它脑子里的"世界模型"靠不靠谱。

MASS给出的答案是,把这个黑箱的一部分拆开,变成可以直接读、直接查、直接打分的结构化记录。这个思路会不会也适用于其他生成式AI系统,比如让语言模型在写故事之前,先维护一份角色关系和情节走向的"类型化状态",再据此生成文字?这个问题,或许值得继续追下去。

Q&A

Q1:MASS是什么?

A:MASS是Alaya Lab、北京大学和东京科学大学团队提出的多人游戏世界模型,核心思路是借鉴网络游戏"服务器权威状态"的架构,用一个学习出来的逻辑引擎推进全局的类型化状态,再用渲染引擎按需为每个玩家生成对应画面,从而解决多视角一致性差、计算成本随观看人数暴涨的问题。

Q2:MASS和之前的多人世界模型(比如MultiWorld)相比有什么不同?

A:之前的方案大多依赖视觉化的共享表征,比如联合生成的画面或者共用的隐向量,没有一个明确类型化、可直接检验的状态对象。MASS用带字段的结构化记录代替画面记忆,在配对的贪吃蛇测试中状态解析准确率达到0.764,是最强视频类基线的近六倍,跨视角不一致率降到0.000。

Q3:MASS能支持多大规模的多人场景?

A:论文中的实验展示了1024个玩家实体同时在线、连续推演10000步的稳定表现,期间保持角色阵容完整、结构零错误。渲染成本会随请求的摄像机数量增加而上升,但世界状态推进本身的计算量与观看人数无关,每一步只需要运行一次。