当AI要造一个游戏世界时,谁该负责"记住"发生过的事?-今日视点

时间:2026-09-21 22:29:25       来源:科技行者

你有没有玩过这样的游戏:你在某个村庄杀了一个NPC,转头去别的地方逛了一圈,回来发现那个NPC还站在原地,好像什么都没发生过。

这种"世界失忆症"其实揭示了一个很深的技术问题。现在最火的AI世界模型,靠的是让神经网络直接从视频里学习"世界是怎么运转的"。这套思路做出来的效果确实惊艳,画面精美,动作流畅,但它有一个致命的软肋:它只看到了结果,没看到原因。

这就是Westlake AGI Lab和南洋理工大学的研究者们在一篇新论文里想解决的问题。他们给这套系统起了个名字,叫**Code World Model**,代码世界模型。这篇论文的核心主张挺大胆:与其让AI死记硬背视频画面来猜测世界规则,为什么不直接让AI写代码来管理这个世界,再让视频模型专心负责"画出来"就好?


(相关资料图)

视频模型的记忆困境:它看到了结果,却没看到原因

先说说现在的视频世界模型是怎么工作的。

简单来说,这类模型的训练方式是喂给它海量的游戏录像或者真实视频,让它学习"在某个画面之后,接下来大概会发生什么"。这套方法在过去几年进步飞快,画面质量越来越逼真,对动作和摄像机运镜的响应也越来越灵敏。

问题出在哪儿?

问题出在**游戏画面本身只是执行结果,不是执行逻辑**。

每一帧游戏画面,背后都是游戏代码算出来的结果。谁站在哪、谁的血量是多少、两个角色之间的距离触发了什么判定,这些逻辑运算发生在代码里,画面渲染完之后,这些逻辑轨迹就被扔掉了,只留下你看到的那一帧图像。视频模型学习的,只是这个"结果的表面"。它得反过来猜测,这个表面背后到底藏着什么规则。

这就好比你想学开车,但你的老师从来不让你碰方向盘和油门,只让你反复看别人开车的视频。你确实能大致猜出来"绿灯的时候车会走,红灯的时候车会停",但你猜不出转向灯要提前打多远,猜不出刹车距离和车速的精确关系。你能模仿表面动作,却学不到背后的驾驶规则,因为那些规则从来没有被直接展示给你,你只看到了规则运行之后留下的痕迹。

论文里举了一个更戏剧性的例子。假设玩家在游戏里刺杀了一座城市的统治者,然后离开了。这件事理论上应该持续影响这座城市:继承权的争夺、当地治安的变化、各个势力之间关系的重新洗牌,以及无数NPC的行为和目标都要跟着调整。这些后果可能在玩家离开视野之后还在持续发酵,等玩家很久之后再回到这座城市,系统需要知道这段时间到底发生了什么、为什么发生、哪些后果还在起作用。

单纯靠视频模型学这套东西,难度有多大?

论文指出了三个具体的坎。第一,很多重要的状态变化发生在画面之外,根本没有留下视觉记录。第二,现在的视频模型训练时能"看"的时间窗口通常不到一分钟,而很多因果链条要在游戏世界的天甚至年这个时间尺度上才能展开。第三,训练数据本身就是执行固定代码的产物,模型只能从这些产物里反推规则,这个反推过程效率很低,而且天花板也不高。

拆开两种脑子:语言模型管决策,代码管执行

研究者们的解法是把"运转世界"这件事拆成两种完全不同的活。

一种是稀疏但复杂的推理活。什么时候该干这个活?比如解读一个新发生的事件,把它和已有的世界知识、人物关系、社会结构联系起来,判断哪些实体和机制会受影响,然后规划长期后果。这种活儿不常发生,但每次发生都需要相当高的智力水平。

另一种是密集但重复的执行活。维护位置坐标、数值属性、日程安排、冷却时间、碰撞检测,把高层决策翻译成具体的状态更新。这种活儿发生频率极高,但每次动作本身并不需要多复杂的判断。

论文的关键论点是这两种活儿必须由不同的东西来干。

**语言模型天生适合干第一种活,因为它从海量文本和代码里学到的是抽象概念、复杂关系和长程推理的能力,这正是理解"刺杀事件会怎样影响一整座城市"所需要的。**

但如果让语言模型去干第二种活会怎样?每次角色移动一步、每次判定攻击是否命中,都调用一次语言模型来计算,这在算力上是灾难性的浪费,而且响应速度也跟不上实时交互的需求。

这里就得请代码出场了。

代码块*:可以被计算机直接执行的程序指令,特点是运行速度快、结果确定、可以反复调用。

代码天生适合干高频重复的确定性运算。攻击是否命中,取决于当前的距离和攻击范围,这是一个可以用几行代码精确算出来的判断,不需要每次都劳烦语言模型思考。而且如果规则不稳定,玩家根本没法对自己的行动形成合理预期,这个世界就会显得很随机很荒诞。

那语言模型和代码具体怎么分工?论文给出的答案是引入一个"编程智能体"。

编程智能体*:具备自主编写、修改、维护代码能力的AI系统,可以像程序员一样理解需求并写出可执行的程序。

想象一下,城主被刺杀之后,编程智能体判断这座城市该进入紧急状态。它可能会调整各派系的目标,激活已有的行为规则,或者干脆新写一段代码来处理巡逻、继承、消息传播这些新机制。编程智能体只需要决定每个角色的高层行为,并在目标改变、出现异常、或者机制需要修订时介入。剩下的时间,代码会按照已有规则持续更新位置、朝向、以及各种运行时状态。这个更新频率跟编程智能体的思考频率、跟视频模型的生成帧率,完全是解耦的。

这套组织方式,如果拿一个真实的公司来做类比会更好理解。一个大公司的CEO不会去审批每一张报销单,那种琐碎决策交给财务系统按预设规则自动跑就行了。CEO要做的是制定战略、处理突发的重大事件、决定什么时候要修改公司的运营规则。如果CEO事事亲力亲为,公司运转速度会慢到令人绝望,而如果完全没有CEO只靠自动化系统跑,公司又没法应对新出现的、规则手册里没写过的情况。编程智能体扮演的正是这个"偶尔介入、大部分时间放权"的角色,而代码则是那套按规则自动运行、但又能被随时改写的财务系统。

这样一来,一个持续运转的"智能体-代码循环"就形成了。一次互动或世界事件先改变当前局面,编程智能体读取维护中的世界状态,决定是调用已有代码还是局部修改这个世界的程序,代码执行可复用的机制并推进大量状态变量,执行结果和世界反馈再回传给编程智能体作为下一步决策的依据。大部分重复性更新根本不需要额外调用模型,世界状态可以按事件驱动、或者以高于视觉生成的频率持续推进。

从世界状态到画面:为什么不直接用文字描述,也不直接建3D模型

分工问题解决了,接下来是另一个难题:编程智能体管理的这些抽象状态,怎么变成玩家眼前看到的那一幕画面?

论文里认真考虑过两条看起来很直观的路,但都被否掉了。

第一条路是把世界状态整理成结构化文字描述,直接喂给视频模型。这条路听起来很优雅,因为现在很多交互式视频模型已经能接受语言指令了。编程智能体可以给每个角色写外貌、身份、目标的语义描述,随着世界运转,代码持续更新位置、朝向、关系、行为、战斗状态,系统自动把这些描述按身份、时间、事件组织起来喂给视频模型。

但研究者们在真实实验里发现,即便配上专门的摄像机控制通道,纯文字条件依然无法对摄像机轨迹和实体运动提供精确控制。这不是说语言原则上表达不了精确状态,理论上你把描述写得足够长,确实可以精确到每一帧每一个像素。但这样的描述会极度浪费文字,而且现在的视频模型也很难可靠地遵循这么复杂的指令。

第二条路是让编程智能体直接搭建一个完整的3D世界,用这个3D世界的渐染结果去驱动画面。这条路空间控制力是强了,但代价是构建生产级的几何模型、贴图材质、动画系统、渐染管线,成本极其高昂,而且会过早地锁死最终画面的风格。一个开放世界如果不断冒出新角色、新物体、新行为,支撑它们需要的不只是新的执行逻辑,还需要对应的视觉资产、动作、物理响应,这套开发流程很难跟上一个真正开放演化的世界。

两条路都不理想,于是研究者们提出了第三条路,也是这篇论文里最有意思的设计:proxy(代理)。

代理*:一种粗略的、可编程构建的世界状态表示,用简单几何图形(比如人形骨架、线框车辆)编码摄像机运动、实体位置、朝向和空间关系,再被编译成一段"代理视频"去引导视频模型生成最终画面。

代理的思路很巧妙,它不追求把整个世界表达完整,只保留当前这一帧画面必须遵守的空间结构和交互状态。它不去操心材质、光影这些细节,那些交给视频模型自己发挥就好。构建代理和渐染代理视频,也不需要一整套3D资产生产和高质量渐染管线,编程智能体只需要调用一组简单的可复用图元,用寥寥几行代码就能表达一个实体的位置、缩放、姿态、布局和摄像机参数。

这里最值得琢磨的一点,是论文管这个叫"条件带宽"的权衡。

如果代理携带的信息太丰富,比如精确到角色每个关节的运动轨迹,那编程智能体在推理时也必须能可靠地生成这么细粒度的控制信号,而目前的编程智能体还很难稳定做到这一点。反过来如果代理信息太稀疏,又可能没法给出足够的空间时序约束。研究者们把这个设计成一个"最小充分状态"的问题,只提供当前画面必须遵守的最低限度信息,把最终外观和精细动态完全交给视频模型自己的学习先验去实现。

这个权衡如果换成生活场景来说,很像给厨师下订单时该写多详细。你如果只说"做一道菜",厨师完全不知道你想要什么,出来的菜可能牛头不对马嘴。但你如果精确到"番茄切成0.5厘米见方的小块,翻炒37秒后加盐0.8克",厨师反而没法发挥,而且你作为下单人也很难保证每次都能提供这么精确的指令。真正靠谱的做法是告诉厨师"这道菜要有番茄和鸡蛋,酸甜口,成菜偏软嫩",把关键约束说清楚,剩下的火候和摆盘留给厨师的专业判断。代理设计的分寸感,正是这种"说清楚约束、留足发挥空间"的平衡。

论文还提了一个很实际的细节:代理视频的分辨率只用目标视频的四分之一,这意味着它给整个系统增加的视觉token数量只有目标视频的十六分之一,额外的推理负担几乎可以忽略。

怎么让视频模型学会看懂代理:两套数据构建方案

有了代理这个设计,接下来还得解决一个工程问题:怎么训练视频模型让它真正理解并遵循代理给出的约束?

这需要成对的、时空对齐的代理数据和真实画面数据。研究者们给出了两套数据来源。

第一套是游戏数据。游戏这个来源特别合适,因为目标视频和对应的运行时状态可以从同一次游戏执行过程里同步获取。在录制游戏画面的同时,系统从运行时提取构建代理所需的状态:摄像机参数、实体位置和朝向、大致尺寸、场景布局、以及交互相关的状态。注意这里明确排除了骨骼姿态、精细3D模型这些编程智能体在推理时难以复现的表示,只保留编程智能体能够轻松重建的信息。这个细节其实很重要,它保证了训练数据和推理时实际能生成的代理是同一种类型的东西,不会出现"训练时用的是高精度数据,推理时智能体根本造不出这么精细的东西"这种脱节。

对于结构复杂或者不常见的物体,如果简单图元没法保留足够的辨识度,代理干脆退化成一个边界框,只标出位置和大致范围,身份和外观细节交给伴随的文字描述去补充。这个降级方案挺聪明,它承认了并非所有东西都值得精确建模,把有限的精力用在真正需要空间约束的地方。

第二套数据来源是真实世界视频,这一套更有想象力。研究者们在KITTI-360这个自动驾驶数据集上做了一个概念验证。他们利用标定好的摄像机位置、积累的语义三维重建结果、以及物体标注信息,在离线阶段编译出对应的代理条件,注意这些三维信息本身并不会喂给视频模型,只是用来在幕后把代理准备好。行人被表示成简单的胶囊状骨架,车辆是线框,植被是低多边形近似,大型建筑用粗略的三维外框表示,所有这些投影和渐染都通过一个共享深度缓冲区完成,保证摄像机运动、空间对齐和遮挡关系在各个条件之间保持一致。

这一步的意义在哪里?意义在于它绕开了一个原本很棘手的标注难题。如果你的控制方案依赖动作标签或摄像机轨迹标注,那真实世界视频里的动作定义起来会非常模糊,连续的摄像机运动也很难精确标注。而代理这套方案里,动作和运镜的视觉效果已经直接体现在代理视频本身里了,不需要单独定义标签。这意味着未来可以更低成本地把真实世界的视频数据也纳入训练,让生成的视觉环境更贴近真实世界的分布,这对训练需要在真实场景里操作的具身智能体尤其重要。

实测效果:五小时的游戏录像能学到多少

理论说了这么多,实际效果怎样?

研究团队选用了MiniMax-H3这个视频模型的官方Ref2VA骨干网络进行微调。训练数据来自157段GTA V游戏录像,总共大约5.6小时的源视频,从中采样出9420个五秒钟的训练片段。目标视频是1344×768分辨率、24帧每秒的124帧视频,对应的代理条件则是336×192分辨率的124帧序列,融合了固定对数深度图和分类语义ID图。

值得留意的是,这次微调用的是LoRA方法,在全部50个transformer块里加了秩为128的低秩适配层,训练参数量大约5.96亿。

LoRA*:一种参数高效微调技术,全称低秩适应,只训练模型里一小部分新增的低秩矩阵,而不动原模型的绝大部分参数,大幅降低训练成本。

整个训练在8张H800显卡上跑了三个epoch,也就是3534个优化步。这个训练规模,说实话,跟动辄成千上万卡的大模型训练比起来相当小家子气。但结果却出乎意料地扎实。

论文里的定性结果显示,即便只用这么少的配对训练数据做LoRA适配,视频模型也能很好地跟随代理指定的实体位置和运动、场景布局、以及摄像机轨迹。更让人意外的是模型的泛化能力,虽然训练数据全部来自GTA V这一款游戏,但生成的画面能覆盖差异极大的角色、环境、动作和运镜风格,论文里展示的几个案例分别是水彩风格的水手服角色跳舞、007特工在霓虹夜市泅水搏斗、水墨风格的天空生物、赛璐璐风格的春日草原、以及僧侣朝圣者场景,风格跨度相当大,但代理指定的空间结构都被相对忠实地保留了下来。

论文里还提到一个在推理阶段解决的实际问题:怎么生成超过124帧的长视频。他们采用了滑窗方式,每个窗口124帧,相邻窗口之间重叠34帧,也就是每个新窗口向前推进90帧。第一个窗口用GPT Image 2根据首帧代理和文字描述生成一张外观锚点图像来初始化,后续每个窗口都复用这张锚点图像,同时用前一窗口末尾34帧作为过渡上下文。这个设计的用意是,重叠的真实画面帧维持局部时间连续性,反复复用同一张锚点图则帮助保持角色身份和外观在跨窗口之间不走样。

这套流程实际跑起来是什么感觉?编程智能体这边,研究者用GPT-5.6 Sol作为编程智能体,给它提供现成的游戏引擎代码(基本的玩家控制、碰撞处理、运行时更新循环)和训练时用过的同一套代理图元。论文坦率承认,完全从零构建AAA级的场景和复杂交互逻辑,对现在的编程智能体来说依然困难。但编程智能体能相当熟练地拿现成的AAA游戏场景和玩法逻辑当模板,组合、扩展、改写出目标世界。这个世界是可执行、玩家可操控的,只不过视觉相关状态用的是粗糙的代理几何体而不是精细美术资产。

这个流程如果类比成生活场景,有点像一个建筑师团队。真正的天才设计师(编程智能体)不需要亲手浇筑每一块混凝土,他只需要画出准确的结构图纸(代理),标明每根梁柱该在什么位置、承重多少。剩下把图纸变成真实建筑外观的活,交给专业的装修施工队(视频模型),施工队根据图纸的结构约束,把材质、色彩、光影这些视觉细节填满。如果没有图纸,施工队自由发挥,盖出来的楼可能好看但结构混乱,楼梯可能连不上楼层。如果建筑师亲自去砌每一块砖,效率又会低到不可接受。代理系统扮演的正是那份"结构准确、细节留白"的图纸角色。

写在后面

读这篇论文最触动我的一点,是它对"世界模型该学什么"这个问题给出了一个挺谦逊的回答。

不是让一个模型什么都学,而是承认语言模型和视频模型分别擅长不同的事,然后老老实实地把活分给对的角色去干。这跟这两年大模型领域一股"一个模型解决一切"的风潮反而是逆着走的。

论文里有个细节我印象很深:作者明确说,即便未来语言模型和视频模型被统一进一个多模态网络里,代码维护的外部世界状态依然得被编码后喂给生成过程,参数共享能简化组件间的通信,但没法消除"状态怎么变成条件"这个根本问题。这句话说得挺实在,等于提前给那些期待"大一统模型自动解决一切"的读者打了个预防针。

论文的局限性部分也写得很诚实,直接说现有的编程智能体还没法从零可靠地实现复杂游戏机制,这个原型没有展示出自主构建完整开放世界游戏的能力。这种坦率反而让整篇论文更可信。

一个悬而未决的问题是:如果这套代理方案真的推广开,编程智能体自己会不会有一天决定"这里不需要代理,纯文字就够了"?论文里提到这是设计空间里留白的部分,代理带宽应该是能被自主调节的。这件事一旦实现,可能意味着AI真正开始学会判断自己该用多精细的语言去表达一个约束,这本身就挺值得玩味。

Q&A

Q1:Code World Model是什么?

A:Code World Model是一种新的世界模型框架,核心思路是让编程智能体通过写代码来管理和维护世界的状态演化,再用视频模型把这些抽象状态渐染成高质量的画面。它把"世界怎么运转"和"世界看起来什么样"这两件事拆开处理。

Q2:proxy(代理)在Code World Model里起什么作用?

A:代理是一种粗略的、可编程构建的视觉条件,用简单几何图形编码摄像机运动、实体位置、朝向和空间关系,编译成代理视频后喂给视频模型,让视频模型在生成画面时能精确遵循这些空间时序约束,同时把外观细节和精细动态留给视频模型自己发挥。

Q3:Code World Model的效果是靠多少数据训练出来的?

A:研究团队只用了大约5.6小时的GTA V游戏录像,通过LoRA低秩微调的方式适配MiniMax-H3视频模型,就让模型学会了跟随代理条件生成画面,并且在完全不同的视觉风格和场景上表现出较强的泛化能力。

标签: 调用 编程 智能体 新模型 游戏世界

消息推送