谷歌推世界首个 AI 游戏引擎 GameNGen:0 代码生成《毁灭战士》,有望颠覆 2000 亿美元产业
- 新智元
2024-08-29 13:02
世界上第一个完全由神经模型驱动的游戏引擎,刚刚诞生了!
「黑神话:悟空」的热度正旺,AI 又在游戏中创造了全新的里程碑。史上首次,AI 能在没有游戏引擎的情况下,为玩家生成实时游戏了。
从此,我们开始进入一个炸裂的新时代:游戏不仅能被 AI 玩,还能由 AI 来创造和驱动。
谷歌的 GameNGen,可以在单个 TPU 上,让 AI 以每秒 20 帧的速度,生成实时可玩的游戏。每一帧,都是由扩散模型预测的。
几年后,AI 实时生成 3A 游戏大作的愿望还会远吗?
从此,开发者不必再手动编程游戏逻辑,开发时间和成本都会显著降低。价值 2000 亿美元的全球游戏产业,可能会被彻底颠覆!
谷歌研究者表示,GameNGen 是第一个完全由神经模型驱动的游戏引擎,能够在复杂环境中,实现高质量的长轨迹实时交互。
论文地址:https://arxiv.org/abs/2408.14837
不仅速度是实时的,它的优秀画质,也是让开发者颤抖的地步。
模拟「毁灭战士」时,它下一帧预测的峰值信噪比(PSNR)达到了 29.4,已经可以和有损 JPEG 压缩相媲美。
在神经网络上实时运行时,视觉质量已经达到了与原始游戏相当。
模拟片段和游戏片段如此相似,让不少人类被试都分不清,眼前的究竟是游戏还是模拟?
网友感慨:这不是游戏,这是人生模拟器。
小岛秀夫的另一个预言,成真了。
3A 电视剧是不是也来了?想象下,按照自己的喜好生成一版《权游》。
想象下,1000 年后或一百万年后,这项技术是什么样?我们是模拟的概率,已经无限接近于 1 了。
从此,游戏开发不再需要游戏引擎?
AI 首次完全模拟具有高质量图形和复杂交互的复杂视频游戏,就做到了这个地步,实在是太令人惊叹了。
作为最受欢迎、最具传奇色彩的第一人称射击游戏,自 1993 年发布以来,「毁灭战士」一直是个技术标杆。
它被移植到一系列超乎想象的平台上,包括微波炉、数码相机、洗衣机、保时捷等等。
而这次,GameNGen 把这些早期改编一举超越了。
从前,传统的游戏引擎依赖的是精心编码的软件,来管理游戏状态和渲染视觉效果。而 GameNGen,只用 AI 驱动的生成扩散模型,就能自动模拟整个游戏环境了。
「毁灭战士」一直以复杂的 3D 环境和快节奏的动作闻名,现在,所有这些都不需要游戏引擎的常用组件了!
AI 引擎的意义,不仅仅是减少游戏的开发时间和成本。这种技术,可以使游戏创作彻底民主化,无论是小型工作室,还是个人创作者,都能创造出从前难以想象的复杂互动体验。
此外,AI 游戏引擎,还给全新的游戏类型打开了大门。无论是环境、叙事,还是游戏机制,都可以根据玩家的行为动态来发展。
从此,游戏格局可能会被整个重塑,行业会从热门游戏为中心的模式,转向更多样化的生态系统。
顺便一提,「DOOM」的大小只有 12MB。
大佬们「疯了」
AI 初创 HyperWrite 的 CEO Matt Schumer 表示,这简直太疯狂了!用户玩游戏时,一个模型正在实时生成游戏。
如果将大多数 AI 模型的进展 / 轨迹映射到这上面,那么在几年内,我们将会得到 3A 级生成游戏。
英伟达高级科学家 Jim Fan 感慨道,被黑客们在各种地方疯狂运行的 DOOM,竟然在纯粹的扩散模型中实现了,每个像素都是生成的。
连 Sora 跟它比起来,都黯然失色。我们只能设定初始条件(一个文本或初始帧),然后只能被动观看模拟过程。
因为 Sora 无法进行交互,因此还不算是一个「数据驱动的物理引擎」。
而 GameNGen 是一个真正的神经世界模型。它将过去的帧(状态)和用户的一个动作(键盘 / 鼠标)作为输入,并输出下一帧。这种质量,是他见过的最令人印象深刻的 DOOM。
随后,他深度探讨了一些 GameNGen 中存在的限制。
比如在单个游戏上过拟合到了极致;无法想象新的场景,无法合成新的游戏或交互机制;数据集的瓶颈,导致了方法无法推广;无法实现用提示词创造可玩世界,或用世界模型训练更好的具身 AI,等等。
一个真正有用的神经世界模型,应该是什么样子?
马斯克的回答是:「特斯拉可以用真实世界的视频做类似的事情」。
的确,数据是难点。
Autopilot 团队可能拥有数万亿的数据对(摄像头视频,方向盘动作)。有了如此丰富的真实世界数据,完全有可能训练一个涵盖各种极端情况的通用驾驶模拟器,并使用它来部署和验证新的完全自动驾驶(FSD)版本,而不需要实体车辆。
最后 Jim Fan 总结道:不管怎么说,GameNGen 仍是一个非常出色的概念验证 —— 至少我们现在知道,9 亿帧是将高分辨率 DOOM 压缩到神经网络中的上限。
网友们感慨:扩散网络学习物理引擎和游戏规则的方式,太疯狂了。
核心作者:个人里程碑
谷歌 DeepMind 核心贡献者,项目负责人 Shlomi Fruchter,在社交媒体上,介绍了自己开发 GameNGen 的过程。
他表示,「GameNGen 是自己开发路上的里程碑」。
从最初手写 GPU 渲染代码(显式),到现在训练能在 GPU 上运行的神经网络(隐式),甚至包含了游戏逻辑,让我有一种实现了完整「闭环」的感觉。
Fruchter 进行的第一个大型编码项目之一是 3D 引擎(如下图所示)。早在 2002 年,GPU 仍只能用于渲染图形。
还记得,第一款图形处理器 GeForce 256 是在 1999 年发行。渲染 3D 图形恰好需要大量的矩阵运算,这恰恰是 GPU 所擅长的。
然后谷歌研究人员编写高级着色器语言代码,计算自定义渲染逻辑并构建新的视觉效果,同时还能保持高帧率。
GameNGen 的诞生,是源于一个好奇心:
「我们能否在当前的处理器上,运行一个隐式神经网络,来进行实时互动游戏」。
对于 Fruchter 以及团队成员来说,最终答案是一个令人兴奋的发现。
AI 大牛 Karpathy 曾说过,100% 纯软件 2.0 计算机,只有一个神经网络,完全没有传统软件。
设备输入(音频、视频、触摸等)直接到神经网络中,其输出直接作为音频 / 视频在扬声器 / 屏幕上显示,就是这样。
有网友便问道,那就是它不能运行 DOOM 了?
对此,Karpathy 表示,如果能够很好提出请求,它可能可以非常接近地模拟 DOOM。
而现在,Fruchter 更加肯定,它可以运行 DOOM 了。
另一位谷歌作者 Dani Valevski 也转发了此帖,对此愿景表示极度认可。
GameNGen 或许标志着游戏引擎全新范式的开启,想象一下,和自动生成的图像或视频一样,游戏也是自动生成的。
虽然关键问题依旧存在,比如如何训练、如何最大程度利用人类输入,以及怎样利用神经游戏引擎创建全新的游戏。但作者表示,这种全新范式的可能性让人兴奋。
而且,GameNGen 的名字也暗藏彩蛋,可以读出来试一试 —— 和 Game Engine 有相似的发音。
Agent 采集轨迹,SD 预测生成
在手动制作计算机游戏的时代,工作流程包括(1)收集用户输入(2)更新游戏状态,以及(3)将更新后的状态渲染为屏幕像素,计算量取决于帧率。
尽管极客工程师们手中的 Doom 可以在 ipod、相机,甚至微波炉、跑步机等各种硬件上运行,但其原理依旧是原样模拟模拟手动编写的游戏软件。
看起来截然不同的游戏引擎,也遵循着相同的底层逻辑 —— 工程师们手动编程,指定游戏状态的更新规则和渲染逻辑。
如果和扩散模型的实时视频生成放在一起,乍一看好像没什么区别。然而,正如 Jim Fan 指出的交互式世界模拟不仅仅是非常快速的视频生成。
其一,生成过程需要以用户的输入动作流为条件,这打破了现有扩散模型架构的一些假设。
其二,模型需要自回归生成帧,这往往会导致采样发散、模型不稳定等问题。
Agent 数据收集
由于无法直接对游戏数据进行大规模采样,因此首先教会一个 agent 玩游戏,在各种场景中生成类似于人类且足够多样化的训练数据。
agent 模型使用深度强化学习方法进行 PPO 训练,以简单的 CNN 作为特征网络,共生成 900M 帧的𝒯_agent 数据集,包括 agent 的动作以及对环境的观察,用于后续的训练、推理和微调。
训练生成模型
GameNGen 使用的 Stable Diffusion 1.4 是文生图扩散模型,其中最重要的架构修改就是,让以文本为条件的模型适应数据集中的动作数据 a_{<n} 和对先前帧的观察结果 o_{<n}。
具体来说,首先训练一个嵌入模块 A_emb,将 agent 的每个动作(例如特定的按键)转换为单个 token,并将交叉注意力中的文本替换为编码后的动作序列。
为了能接受 o_{<n} 作为条件,同样使用自动编码器 ϕ 将其编码到潜在空间中(即 x_t),同时在潜在的通道维度上与噪声隐变量 ε_α 拼接在一起。
实验中也尝试过用交叉注意力处理 o_{<n} 输入,但并没有明显改进。
相比原来的 Stable Diffusion,GameNGen 对优化方法也做了改进,使用 velocity parameterization 方法最小化扩散损失。
噪声增强减轻自回归漂移
从原 Stable Diffusion 的教师强制训练转换为游戏引擎中的自回归采样,会不可避免地导致错误累积和样本质量快速下降。
为了避免这个问题,训练生成模型时会在编码过的上下文帧中添加不同数量的高斯噪声,同时将噪声水平作为模型的输入,从而让降噪网络可以纠正先前帧中采样的信息。
这些操作对于随着时间推移时保证帧质量至关重要。在推理过程中,也可以控制添加的噪声水平以最大限度地提高生成质量。
推理
模型在推理时使用 DDIM 采样方法。之所以能达到 20FPS 的实时生成效率,与 GameNGen 推理期极高的采样效率直接相关。
通常,生成扩散模型(例如 Stable Diffusion)无法只用单个去噪步骤产生高质量结果,而是需要数十个采样步骤。
但令人惊讶的是,GameNGen 只需 4 个 DDIM 采样步骤就能稳健地模拟 DOOM,而且相比使用 20 个或更多采样步骤时,质量并没有明显下降。
作者推测,这可能源于多个因素的共同作用,包括可采样的图像空间受限,以及通过先前帧信息施加了较强的条件限制。
仅使用 4 个降噪步骤让 U-Net 的推理成本降低至 40ms,加上自动编码器,总推理成本为 50ms,相当于每秒生成 20 帧图像。
实验还发现,模型蒸馏后进行单步采样能够进一步提高帧率,达到 50FPS,但会以牺牲模拟质量为代价,因此最后还是选用了 20FPS 的采样方案。
AI 游戏生成太逼真,60% 片段玩家没认出
模拟质量
总的来说,就图像质量而言,GameNGen 在长时间轨迹上预测,达到了与原始游戏相当的模拟质量。
对于短时间轨迹,人评估者在模拟片段和真实游戏画面中,进行区分时,比随机猜测略强一些。
这意味着什么?
AI 生成的游戏画面,太过逼真沉浸,让人类玩家有时根本无法辨别。
图像质量
这里,评估中采用了 LPIPS 和 PSNR 作为评估指标。这是在强制教学设置下进行测量,即基于真实过去观察预测单个帧。
对 5 个不同关卡中,随机抽取的 2048 个轨迹进行评估时,GameNGen 达到了 29.43 的 PSNR 和 0.249 的 LPIPS。
下图 5 展示了,模型预测和相应的真实样本示例。
视频质量
针对视频质量,研究人员使用了自回归设置,即模型基于自己的过去预测来生成后续帧。
不过,预测和真实轨迹在几步后会发生偏离,主要是由于帧间移动速度的微小差异累积。
如下图 6 所示,随着时间推移,每帧的 PSNR 值下降,LPIPS 值上升。
预测轨迹在内容和图像质量方面,仍与实际游戏相似,但逐帧指标在捕捉这一点上,能力有限。
因此,研究团队测量了在 512 个随机保留轨迹上,计算的 FVD(用于测量预测和真实轨迹分布之间的距离)。
这里,分别对 16 帧(0.8 秒)和 32 帧(1.6 秒)两种模拟长度,进行了测试。
最终,得到的 FVD 分别是 114.02,以及 186.23。
人工评估
为了得到更真实的评估,研究者向 10 名人类评分者,提供了 130 个随机短片段(长度为 1.6 秒和 3.2 秒)。
并且,将 GameNGen 模拟的游戏和真实游戏并排对比,如下所示。
评估者的任务,便是识别其中,哪一个是真实游戏。
结果发现,针对 1.6 秒生成游戏的片段,在 58% 情况下,他们认为 GameNGen 生成游戏是真实的。而对于 3.2 秒片段,这一比率更高,达到了 60%。
消融实验
接下来,研究者评估了架构中,不同组件的重要性,从评估数据集中采样轨迹,并计算地面真值与预测帧之间的 LPIPS 和 PSNR 指标。
上下文
通过训练 N∈{1, 2, 4, 8, 16, 32, 64} 模型,测试上下文中过去观察数量 N 的影响。(标准模型使用了 N=64)。
这影响了历史帧和动作的数量。
保持解码器冻结情况下,训练模型 200,000 步,并在 5 个关卡的测试集轨迹上进行评估。
结果如下表 1 所示,如预期一样,研究者观察到 GameNGen 生成质量,随着上下文增加,而提升。
更有趣的是,在 1 帧和 2 帧之间,这一改进非常大,但往后开始很快接近了阈值线,改进质量逐渐放缓。
即便用上了最大上下文(64 帧),GameNGen 模型也仅能访问,略超过 3 秒的历史信息。
另一个发现是,大部分游戏状态可能会持续更长时间。
表 1 结果很好地说明了,未来可能需要改变模型架构,来支持更长的上下文。同时,探索更好的方法,采用过去帧作为条件。
噪声增强
为了消除噪声增强的影响,研究人员还训练了一个没有添加噪声的模型。
通过对比评估,经过噪声增强的标准模型和没有添加噪声的模型(在 200k 训练步骤后),以自回归方式计算预测帧与真实帧之间的 PSNR 和 LPIPS 指标。
如下图 7 所示,呈现了每个自回归步骤的平均指标值,总共达 64 帧。
这些评估是在随机保留的 512 条轨迹上进行的。
结果显示,没有噪声增强时,与真实值的 LPIPS 距离,比起研究标准噪声增强模型增加得更快,而 PSNR 下降,表明模拟与真实值的偏离。
智能体
最后,研究人员将智能体生成的数据训练,与使用随机策略生成的数据训练,进行了比较。
这里,通过训练两个模型,以及解码器,每个模型训练 700k 步。
它们在一个由 5 个关卡组成的 2048 条人类游戏轨迹的数据集上,进行评估。
而且,研究人员比较了在 64 帧真实历史上下文条件下,生成的第一帧,以及经过 3 秒自回归生成后的帧。
总得来说,研究观察到,在随机轨迹上训练模型效果出乎意料地好,但受限于随机策略的探索能力。
而在比较单帧生成时,智能体仅略胜一筹,达到 25.06 PNSR,而随机策略为 24.42。而在比较 3 秒情况下,差异增加到 19.02 Vs 16.84。
在手动操作模型时,他们还观察到,某些区域对两者都非常容易,某些区域对两者都非常困难,而在某些区域智能体表现更好。
因此,作者根据其在游戏中与起始位置的距离,将 456 个示例手动分为三个级别:简单、中等和困难。
如下表 2 所示,结果观察到,在简单和困难集合中,智能体仅略优于随机,而在中等集合中,智能体的优势如预期般更大。
0 代码生成游戏,老黄预言成真
今天,视频游戏,是由人类编程的。GameNGen 的诞生,开启了实时互动视频游戏的全新范式。
在这一范式中,游戏是神经模型的「权重」,而非代码行。如今看来,老黄的预言近在眼前。
每个像素很快都将会是生成的,并非是渲染的。
在今年 GTC 大会的记者会上,Bilawal Sidhu 就老黄的话,提出了一个后续问题:「我们距每个像素都是以实时帧速率生成的世界还有多远」?
老黄表示,我们还需要 5-8 年的时间,并且现已看到了跨越创新 S 曲线的迹象。
它表明,当前存在一种架构和模型权重,可以让神经网络能够在现有 GPU 上,有效交互运行复杂游戏 DOOM。
不过,GameNGen 仍有许多重要的问题存在,这也是谷歌开发者接下来继续攻克的问题。
Shlomi Fruchter 带领团队开辟了游戏制作的另一片天地,并希望这个范式能为前路指明方向。
在这种新范式下,能够直接拉低视频游戏的开发成本,并让更多人得到访问。仅需一句话,或者是一个示例图像,未来任何一个开发者,皆可以对游戏进行开发和编辑。
另外,为现有游戏创建 / 修改行为,可能在短期就能实现了。
比如,我们可以将一组帧,转化为一个全新可玩的关卡,或者仅基于示例图像创建一个新角色,无需编写代码。
新范式的好处,或许还能保持足够优秀的帧率,和极少的内存占用。
正如论文作者所述,他们希望这小小一步的尝试,能够对人们游戏体验,甚至更广泛地对日常交互软件系统的互动,带来有极大价值的改善。
从游戏到自动驾驶汽车,令人兴奋的可能性
更令人兴奋的是,GameNGen 的潜在应用,远远超出了游戏领域!
无论是虚拟现实、自动驾驶汽车还是智能城市行业,都可能因此而变革。因为在这些行业中,实时模拟对于培训、测试和运营管理都至关重要。
比如在自动驾驶汽车中,需要能够模拟无数的驾驶场景,以安全地在复杂的环境中行驶。
而 GameNGen 这类 AI 驱动引擎,恰恰可以通过高保真度和实时处理来执行这项任务。
在 VR 和 AR 领域,AI 引擎可以创建完全沉浸式的交互式世界,还能实时适应用户输入。
这种交互式模拟产生的巨大吸引力,可能会彻底改变教育、医疗保健和远程工作等行业!
当然,GameNGen 也存在一些挑战。虽然它可以以交互速度运行《毁灭战士》,但图形密集程度更高的游戏,可能会需要更大的算力。
另外,它是针对特定游戏量身定制的,因此要开发能运行多个游戏的通用 AI 游戏引擎,挑战仍然艰巨。
但现在,我们俨然已至未来的风口浪尖,从此,我们最喜欢的游戏不是从代码行中诞生,而是从机器的无限创造力中诞生。
从此,人类创造力和机器智能之间的界限会越来越模糊。
通过 GameNGen,谷歌研究人员让我们对未来有了令人兴奋的一瞥 ——
在这个世界中,阻碍我们虚拟体验的唯一限制,就是 AI 的想象力。
参考资料:
https://gamengen.github.io/
https://x.com/shlomifruchter/status/1828697328946929845
https://x.com/DrJimFan/status/1828813716810539417
本文来自微信公众号:微信公众号(ID:null),作者:新智元,原标题《谷歌推世界首个 AI 游戏引擎,2000 亿游戏产业恐颠覆!0 代码生成游戏,老黄预言成真》
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。