编辑 | 言征、伊风
出品 | 51CTO技术栈(微信号:blog51cto)
你没有听错!
一提到游戏引擎,你肯定会联想到虚幻5(不自主地再提一次《黑神话:悟空》),Unity,Cocos,但你会想到用来生成图像的扩散模型也被认为是一种游戏引擎吗?
图片
昨晚,谷歌DeepMind发布了一款GameNGen的神经模型,给出的生成效果,让人们惊呼:世界模型要来了!
据介绍,GameNGen,是首个完全由神经模型驱动的游戏引擎,它能够在长轨迹中以高质量实现与复杂环境的实时交互。
厉害之处在于,仅仅在单个TPU上,GameNGen就能以每秒超过20帧的速度对经典游戏《毁灭战士》(DOOM)进行交互式模拟。画面沉浸感十足!
下一帧预测实现了29.4的峰值信噪比(PSNR),与有损JPEG压缩相当。在区分游戏短片段与模拟短片段时,人类评分者的表现仅略优于随机猜测。
马斯克听说后,也来迅速围观,果断表示支持:特斯拉也可以利用real world video来做类似的事情。
图片
一个名为“PRIMEX ”账号生成所有帖子都是AI制作的,并由Gork提供支持。紧接着就回复道:
Tesla FSD已经在现实世界的模拟中运行,而且比Doom更准确,帧率更高。
图片
甚至有网友直接帮马斯克的Grok出主意:Grok要是可以模拟暗黑破坏神并创造无限世界时,这就很疯狂了。
图片
一、这款神经模型驱动的游戏引擎谷歌如何做到的?
来看看DeepMind团队是怎样精心设计的。
首先是无法大规模进行人类数据收集的难题,这是他们遇到的第一个挑战。最后他们训练了可以自动打游戏的Agent(RL Agent),让这个Agent去打游戏,并保存其训练过程中的动作和观察结果,这样用来训练模型的数据解决了。
其次,如何保持前后帧之间的视觉稳定性问题?这一点就不得不提他们做了一个精心的挑选,他们没有用最新的Stable Diffusion 版本,而是选择v1.4,并进行了技术处理,使其基于一系列之前的动作和观察结果(帧)进行条件生成。
此外,为了减轻推理过程中的自回归漂移,研究者还发现了一个有效的方法:在训练期间向编码帧添加高斯噪声,从而破坏上下文帧,可以让网络能够纠正之前帧中采样的信息,这对于长时间保持视觉稳定性至关重要。
最后,解决图像伪影问题。他们最后采用了潜在解码器微调的方法。Stable Diffusion v1.4的预训练自编码器将8x8像素块压缩为4个潜在通道,但在预测游戏帧时会产生明显的伪影问题,影响了小细节,特别是底部栏的HUD问题。
为此,研究团队使用与目标帧像素计算得出的均方误差(MSE)损失来训练潜在自编码器的解码器,这样既利用了预训练知识,同时也提高了图像质量。
概括来说,GameNGen训练比较简单,分为两个步骤:(1)一个强化学习(RL)代理学习玩游戏,并记录训练过程;(2)训练一个扩散模型来生成下一帧,该模型基于过去帧序列和动作进行条件生成。条件增强功能可实现长轨迹上的稳定自回归生成。
二、游戏圈内人士看上头了
一位圈内人士看罢Demo后,认为这个技术太厉害了,不管是在帧之间的“因”、“果”、“顺序”方面都大大超出了预期,并盛赞了开放模型的意义,甚至对于云垄断的谷歌而言也不可或缺。
回到GameNGen,并认为有两处值得注意:
- 他们通过玩Doom毁灭战士的Agent获得了无限的训练数据,这一点非常有意义;
- 他们在源帧中添加了高斯噪声并奖励Agent“纠正”连续帧,并说这对于从模型中获得长期稳定的“渲染”至关重要。这一点很有趣——模型需要进行错误修正/引导它以保持稳定。
当然,他也提到了对于大模型作为渲染引擎的难题:
“这个模型是否容易进行微调以实现“照片真实感”/光线追踪重塑——我非常好奇”,毕竟懂得如何微调大模型的人很少,如果视为某种Doom的基础模型,从这个模型中获得“更漂亮”的渲染得有多难。
当然,也有游戏开发人员,这个新模型的演示存在不少问题,比如模型虽然能够记住玩家转身后灰色的墙,这当然很棒,但墙完全改变了位置和方向就有点不合理了。有人反驳:这也会现在盗梦空间题材类的游戏中,因为玩家的任务就是强迫模型生成它,同时又不会在游戏的“梦境”中Over,并表示“我会玩这个游戏玩到零血”。
三、Jim Fan的评价:什么是真正有用的神经模型?数据是关键
图片
“黑客们喜欢在各种稀奇古怪的地方运行《DOOM》已经成为一种传统:恒温器、“智能”烤面包机,甚至自动取款机。现在,他们仅用扩散模型就能运行《DOOM》。每一个像素都是生成的。之前我说过“Sora是一个数据驱动的物理引擎”,其实不完全对,因为Sora无法与之互动。你只能设置初始条件(一个文本或初始帧),然后被动地观看模拟过程。
上图:网友在游戏《我的世界》中运用《DOOM》
GameNGen 是一个真正的神经世界模型。它将过去的帧(状态)和用户的动作(键盘/鼠标)作为输入,并输出下一帧。它在《DOOM》中的表现是我见过的最令人印象深刻的。
然而,这也带来了重大缺陷。让我们深入探讨一下:
1. GameNGen 在单个游戏上极度过拟合,它通过训练 9 亿帧(!!)实现了这一点。这个数字极其庞大,几乎是训练 Stable Diffusion v1 数据集的 40%。在这种情况下,它很可能记住了《DOOM》在各种场景下的渲染方式。毕竟,《DOOM》本身的内容并不多。
2. GameNGen 更像是一个被吹捧的 NeRF,而不是一个视频生成模型。NeRF 利用从不同视角拍摄的场景图像,重建该场景的 3D 表示。NeRF 的基础版本没有泛化能力,也就是说,它无法“想象”出新场景。GameNGen 不像Sora:设计上,它无法合成新游戏或交互机制。
3. 这篇论文的难点不在于扩散模型,而在于数据集。作者首先训练了强化学习(RL)代理在不同技能水平下玩游戏,并收集了 9 亿对(帧,动作)用于训练。大多数在线视频数据集并不包含动作信息,这意味着这种方法无法外推。数据始终是动作驱动的世界模型的瓶颈。
4. 我认为游戏世界模型有两个实际用例:(1)编写提示词来创建可玩的世界,这些世界通常需要游戏工作室多年才能制作完成;(2)使用世界模型来训练更好的具身 AI。两个用例都无法实现。用例(2)不可行,因为用 GameNGen 训练代理并没有比直接使用《DOOM》模拟器更有优势。如果神经世界模型可以模拟传统手工制作图形引擎无法实现的场景,那会更有趣。
什么是真正有用的神经世界模型? @elonmusk 在回复中说过“特斯拉可以用真实世界视频做类似的事情”。这并不令人意外:Autopilot 团队可能拥有数万亿对(摄像头画面,方向盘动作)。再一次,数据是关键!有如此丰富的真实世界数据,完全有可能学习一个涵盖各种边缘案例的通用驾驶模拟器,并用它来部署和验证新的 FSD 构建,而不需要实际的汽车。
GameNGen 仍然是一个非常出色的概念验证。至少我们现在知道,9 亿帧是将高分辨率《DOOM》压缩到神经网络中的上限。”
可以看出,GameNGen 让我们看来了一个新的游戏生成方式,数据不够就让AI智能体帮产生数据,效果不够就挑选合适的方案来提升。“什么是真正有用的神经世界模型”,这一点很有提醒意义。也许很快我们就能看到以扩散模型为游戏引擎的爆款游戏问世了!