震撼!AI实时生成游戏,每秒20帧,谷歌扩散模型最新突破一夜爆火,附论文介绍和GitHub代码。
“比Sora还震撼”,AI可以实时生成游戏了!
谷歌DeepMind打造出了首个完全AI驱动的实时游戏引擎——GameNGen。
在单个谷歌TPU上,它以每秒20帧模拟起了经典射击类游戏DOOM(毁灭战士)。
所有游戏画面都是根据玩家操作,与复杂环境进行交互,实时生成。
也就是说你走进一道门之前,门后的内容还不存在。
质量不输事先存储的那种,能“以假乱真”,人类评估者都难以察觉。
各种操作都能丝滑转换:
GameNGen的背后是大家熟悉的扩散模型。
从论文题目就重新定义了游戏引擎:扩散模型是实时游戏引擎。
网友们看到这项研究一时间炸开了锅,推特、Reddit上相关帖子热度持续不减,谁发谁火。
不少人表示它提供了一条全新的技术路径:
我觉得人们还没有意识到这有多疯狂。我是一名开发人员,专门负责将生成式AI集成到游戏引擎中,所以我很清楚我在说什么。
这是构建虚拟事物的基础。未来它或许能够普及到它能够获取数据的任何视频游戏,随后,可能还能为尚未存在的游戏生成数据,创造新游戏。
作者Shlomi Fruchter也开麦了:
这对我来说是一个个人里程碑,也是从手工编写在GPU上运行的显式渲染代码到训练同样在GPU上运行的神经网络的完整回环,感觉圆满了。
那么,GameNGen究竟是如何做到的?
用扩散模型造AI DOOMers
GameNGen训练过程分为两个主要阶段。
首先,训练一个强化学习Agent来玩游戏,并记录过程中所有动作、技能和观察数据。这些记录成为第二阶段的训练数据集。
为生成尽可能贴近人类游戏行为的训练数据,研究人员设计了一个简单的、特定于环境的奖励函数,根据一系列特定的游戏情况来分配分数,条件包括:
玩家被击中、敌人被消灭、捡起物品或武器、生命值变化、弹药变化……
在第二阶段,基于预训练的Stable Diffusion v1.4来预测下一帧,模型以过去的帧序列和动作作为条件输入,并进行了一些关键修改。
具体来说,首先移除了所有文本条件,替换为动作序列。每个动作被编码为一个单一的token,通过交叉注意力机制与模型交互。
历史观察(即之前的帧)被编码到潜在空间,并与当前噪声化的潜在表示在通道维度上拼接。
为了解决自回归生成中的误差累积,即自回归漂移问题,GameNGen引入了噪声增强技术。
在训练时,模型对输入的上下文帧添加不同程度的高斯噪声,并将噪声级别作为额外输入提供给模型。这使得模型能够学习纠正之前采样中的错误,对维持长时间序列的图像质量至关重要。
此外,为了提高图像质量,特别是在细节和HUD(平视显示器)方面,研究者对Stable Diffusion的预训练自编码器的解码器部分进行了微调。这个过程使用MSE损失,针对目标帧像素进行优化。
在推理阶段,GameNGen使用DDIM采样方法,并采用了无分类器引导技术,但仅用于过去观察的条件。研究者发现,对过去动作条件使用引导并不能提高质量。
值得注意的是,模型仅使用4步DDIM采样就能产生高质量的结果,这大大提高了生成速度。
GameNGen在TPU-v5硬件上运行,单个去噪器步骤和自编码器评估各需要10毫秒。
通过使用4步采样和单次自编码器评估,系统能够达到每秒20帧的生成速度,足以实现实时交互式游戏体验。
人类难以分辨真实和AI生成
实验中,在短时轨迹上,人类评估者几乎无法区分模拟画面与实际游戏画面。
研究人员使用了两种主要的图像质量评估方法:基于感知的图像相似度度量方法LPIPS和衡量图像质量的常用指标PSNR。
在teacher-forcing设置中,模型单帧预测质量PSNR为29.43,LPIPS为0.249。PSNR的值与20-30质量设置下的有损JPEG压缩相似。
换句话说,GameNGen在模拟图像时能够在一定程度上保持较高的视觉质量,尽管可能存在一些压缩带来的细节损失。
视频质量方面,对于长度为16 帧(0.8 秒)和32帧(1.6 秒)的模拟,FVD分别为114.02、186.23。
在人类评估方面,研究人员为10 名人类评估者提供了130个随机短片段(1.6秒和3.2 秒的长度),并将模拟与真实游戏并排展示。
在1.6秒和3.2秒的片段中,人类仅有58%、60%的概率能正确区分真实游戏和模拟。
基于Diffusion的最新突破
除了被效果惊艳到,不少研究者还表示这项研究没有那么简单,它是一种基于扩散模型的最新突破。
动作条件化的世界模型已更进一步!神经网络模拟在扩展实际交互数据方面具有巨大潜力,特别是在物理模拟器表现不佳的领域。
不过,在一片好评声中,也有网友指出,论文很好,但称其为“游戏引擎”不太妥当:
希望他们能说“渲染引擎”而不是“游戏引擎”。
游戏引擎是一个让一群人创造东西的工具,它将继续存在,特别是与任何集成的超级AI共存。显然,今天的游戏引擎已经过时,但我们已经在构建下一代引擎了。
对于一些人评论这些模型将取代传统游戏引擎,也有网友持不同的观点。
一位a16z的游戏和3D技术领域投资人、前Unity员工给出了他的看法:
讽刺的是,训练这些模型需要从传统游戏引擎输入控制器动作和输出帧作为训练数据。
虽然我认为这些由扩散模型实时生成的帧最终会改变我们体验游戏的方式,但我仍然认为专业开发者需要一个3D场景图来进行触感控制和创造性表达。
开发者可能会使用更传统的3D创作引擎创建游戏的“灰盒”版本,然后一个图像到图像的模型实时提升分辨率(类似于英伟达的DLSS技术)。
未来,消费者将能体验从文本直接创造游戏或虚拟世界的全新方式。但在我看来,专业工作流程中仍然会有3D场景图的一席之地。
你怎么看GameNGen这项研究?它会给未来游戏行业带来何种改变?
项目主页:https://gamengen.github.io/
论文链接:https://arxiv.org/pdf/2408.14837
以下是30个使用AI生成游戏内容的开源项目,包括其功能简介和访问链接:
-
AI Dungeon
- 功能:基于GPT-3的文本冒险游戏生成器。
- 链接:AI Dungeon
-
Project Malmo
- 功能:微软开发的Minecraft游戏环境,用于AI研究和实验。
- 链接:Project Malmo
-
OpenAI Gym
- 功能:提供用于强化学习的游戏环境。
- 链接:OpenAI Gym
-
Unity ML-Agents Toolkit
- 功能:Unity的机器学习代理工具包,用于训练智能体。
- 链接:Unity ML-Agents
-
DeepMind Lab
- 功能:3D游戏环境,用于AI研究和训练。
- 链接:DeepMind Lab
-
VizDoom
- 功能:基于Doom的AI研究环境。
- 链接:VizDoom
-
RoboSumo
- 功能:用于强化学习的仿真环境,代理在虚拟环境中进行机器人对战。
- 链接:RoboSumo
-
PettingZoo
- 功能:多智能体强化学习环境库。
- 链接:PettingZoo
-
BattleSim
- 功能:用于训练AI的战斗模拟环境。
- 链接:BattleSim
-
Gym Retro
- 功能:复古游戏的强化学习环境。
- 链接:Gym Retro
-
GridWorld
- 功能:简单的网格世界环境,用于强化学习研究。
- 链接:GridWorld
-
OpenSpiel
- 功能:开源的游戏理论工具包,包括多种游戏环境。
- 链接:OpenSpiel
-
StarCraft II Learning Environment (SC2LE)
- 功能:用于训练AI的StarCraft II环境。
- 链接:SC2LE
-
Gym-DonkeyCar
- 功能:用于自动驾驶训练的环境。
- 链接:Gym-DonkeyCar
-
RoboSchool
- 功能:多种机器人仿真环境,用于强化学习。
- 链接:RoboSchool
-
Sonic-Pi
- 功能:用于生成音乐的编程环境。
- 链接:Sonic-Pi
-
Alpaca
- 功能:用于AI对话系统的训练环境。
- 链接:Alpaca
-
Dota 2 Bot
- 功能:Dota 2的AI对战平台。
- 链接:Dota 2 Bot
-
OpenAI Five
- 功能:OpenAI Five是Dota 2的AI系统。
- 链接:OpenAI Five
-
Mario AI
- 功能:在Mario游戏中训练AI的环境。
- 链接:Mario AI
-
PyBullet
- 功能:物理仿真环境,广泛用于机器人和强化学习。
- 链接:PyBullet
-
Noita
- 功能:一个物理模拟的像素风格游戏,适合AI训练。
- 链接:Noita
-
Nero
- 功能:AI驱动的深度学习环境。
- 链接:Nero
-
OpenAI Baselines
- 功能:用于训练强化学习模型的基准算法实现。
- 链接:OpenAI Baselines
-
Gomoku AI
- 功能:用于五子棋的AI训练平台。
- 链接:Gomoku AI
-
GTA V AI
- 功能:基于GTA V的AI训练环境。
- 链接:GTA V AI
-
Roguelike AI
- 功能:用于roguelike游戏的AI训练。
- 链接:Roguelike AI
-
AI War II
- 功能:策略游戏AI,挑战玩家的智能。
- 链接:AI War II
-
Alice
- 功能:基于Alice的AI训练和游戏环境。
- 链接:Alice
-
Braid
- 功能:平台类游戏的AI模拟环境。
- 链接:Braid
这些项目涵盖了多种AI生成和训练环境,适用于不同类型的游戏和实验。
一些知名的游戏开发项目:
-
OpenAI Gym: 提供了一系列用于开发和比较强化学习算法的工具和环境。https://github.com/openai/gym
-
Godot AI Plugin: 为Godot游戏引擎提供的AI插件,支持行为树、状态机等。https://github.com/arlez80/godot-steeringai
-
ML-Agents: Unity的机器学习插件,用于创建和训练游戏中的智能体。https://github.com/Unity-Technologies/ml-agents
-
Neural MMO: 一个大规模的多人在线游戏,用于开发和测试多智能体强化学习算法。https://github.com/NeuralMMO/neuralmmo
-
Gameplay AI: 一个基于行为树的AI框架,用于游戏开发。https://github.com/gameplayai/gameplayai
-
AI Game Engine: 一个简单的游戏引擎,专注于AI和机器学习。https://github.com/ai-game-engine/ai-game-engine
-
Procedural Landscaping: 一个用于生成程序化景观的库。https://github.com/Procedural-Landscaping-Initiative/ProceduralLandscaping
-
TextWorld: 一个用于开发和测试基于文本的游戏和强化学习模型的平台。https://github.com/microsoft/TextWorld
-
Gym-MiniGrid: 一个用于开发和测试网格世界强化学习算法的库。https://github.com/maximecb/gym-minigrid
-
DeepRacer: 亚马逊提供的自动驾驶赛车模拟器,用于训练和测试强化学习模型。https://github.com/aws-samples/aws-deepracer-rl-course
-
Game AI Research: 一个专注于游戏AI研究的资源库。https://github.com/StableHolloway/game_ai_research
-
AI Dungeon: 一个基于AI的交互式故事游戏。https://github.com/AI-Dungeon/AI-Dungeon
-
OpenAI Five: 一个由OpenAI开发的Dota 2 AI,用于研究和竞赛。https://github.com/openai/openai-five
-
MAgent: 一个用于开发和测试多智能体强化学习算法的平台。https://github.com/geek-ai/MAgent
-
Procedural Content Generation: 一个用于生成程序化内容的库。https://github.com/Procedural-Content-Generation
-
Game AI with Python and Pygame: 一个使用Python和Pygame开发游戏AI的教程。https://github.com/ai-game-dev/gameai
-
Unity-ML-Agents: 一个Unity机器学习框架,用于训练游戏中的AI。https://github.com/Unity-Technologies/ml-agents
-
Gym-Solving: 一个用于解决OpenAI Gym环境的强化学习算法集合。https://github.com/Farama-Foundation/Gym-Solving
-
Neural Network Game: 一个使用神经网络的简单游戏。https://github.com/CodingTrain/ Neural-Network-Game
-
AI Game Engine 2: 一个使用AI的2D游戏引擎。https://github.com/ai-game-engine/aige2
-
Procedural Generation Toolkit: 一个用于Unity的程序化内容生成工具包。https://github.com/ProceduralGenerationToolkit/PGT
-
AI Game Development: 一个关于AI游戏开发的教程和资源集合。https://github.com/triplepointfive/ai-game-development
-
Deep Q-Network (DQN): 一个使用深度Q网络的强化学习算法实现。https://github.com/yenchenlin/DeepLearningFlappyBird
-
Gym-Bomberman: 一个用于开发和测试炸弹人游戏强化学习算法的环境。https://github.com/Khrul/Gym-Bomberman
-
AI Game Framework: 一个用于开发AI游戏的框架。https://github.com/ai-game-framework/ai-game-framework
-
Unity-AI-Projects: 一系列Unity AI项目和教程。https://github.com/Unity-Technologies/Unity-AI-Projects
-
AI Game Engine 3: 一个使用AI的3D游戏引擎。https://github.com/ai-game-engine/aige3
-
Procedural World Generation: 一个用于生成程序化世界的库。https://github.com/ProceduralWorlds/ProceduralWorlds
-
AI Game Development with Unity: 一个关于使用Unity进行AI游戏开发的教程。https://github.com/PacktPublishing/AI-Game-Development-with-Unity
-
Unity-ML-Agents-Tutorials: Unity ML-Agents的教程和示例。https://github.com/Unity-Technologies/ml-agents-Tutorials
许多开源项目都提供了详细的文档和教程,以帮助开发者了解如何使用它们进行游戏开发。以下是一些推荐的资源:
-
Unity ML-Agents Toolkit: Unity的官方文档提供了全面的教程和指南,用于使用ML-Agents进行机器学习和游戏开发。
- 访问链接:Unity ML-Agents Toolkit Documentation
-
OpenAI Gym: OpenAI Gym的官方文档提供了如何创建和使用环境的指南。
- 访问链接:OpenAI Gym Documentation
-
Godot AI Plugin: 该项目通常在其GitHub页面上提供文档和教程。
- 访问链接:Godot AI Plugin GitHub
-
AI Dungeon: 该项目的GitHub页面上有关于如何使用和扩展AI Dungeon的文档。
- 访问链接:AI Dungeon GitHub
-
ML-Agents Toolkit by Unity Technologies: Unity Technologies提供了一系列的教程视频和文档。
- 访问链接:ML-Agents Toolkit Tutorials
-
Procedural Content Generation: 这个GitHub组织提供了各种库的文档和教程。
- 访问链接:Procedural Content Generation GitHub
-
Game AI with Python and Pygame: 这个项目通常在其GitHub页面上提供教程和文档。
- 访问链接:Game AI with Python and Pygame GitHub
-
Gym-Solving: 该项目的GitHub页面上提供了如何使用库的文档。
- 访问链接:Gym-Solving GitHub
-
Neural Network Game: Coding Train的YouTube频道提供了视频教程,展示如何使用神经网络开发游戏。
- 访问链接:Coding Train YouTube
-
Deep Q-Network (DQN): 许多教程和文档可以在GitHub上找到,特别是关于如何实现和训练DQN。
- 访问链接:Deep Q-Network GitHub
-
Unity-ML-Agents-Tutorials: 该项目的GitHub页面上有一系列的教程和示例。
- 访问链接:Unity-ML-Agents-Tutorials GitHub
-
Packt Publishing Books: Packt Publishing出版了许多关于使用Unity和其他工具进行游戏开发的书籍,这些书籍通常可以在其官网或Amazon上找到。
- 访问链接:Packt Publishing
这些资源可以帮助你开始使用这些开源项目进行游戏开发。许多项目在GitHub上有活跃的社区,你可以在那里提问和寻找帮助。此外,YouTube、Bilibili和其他视频平台也有许多教育视频,可以帮助你学习游戏开发。
提高游戏AI的智能水平是一个涉及多个领域的复杂任务,包括机器学习、行为心理学、计算机图形学等。参考资料有:
-
Unity ML-Agents Toolkit: Unity的机器学习工具包,提供了使用深度强化学习训练游戏AI的教程和文档。
- 访问链接:Unity ML-Agents Toolkit
-
Reinforcement Learning: An Introduction: 这本书由Richard S. Sutton和Andrew G. Barto撰写,是强化学习领域的经典教材。
- 访问链接:Reinforcement Learning: An Introduction
-
DeepMind’s Research Publications: DeepMind定期发布关于AI和游戏智能的研究论文,这些论文通常包含最新的研究成果和技术。
- 访问链接:DeepMind Research
-
Gym-MiniGrid: 一个基于OpenAI Gym的网格世界环境,用于开发和测试强化学习算法。
- 访问链接:Gym-MiniGrid GitHub
-
Artificial Intelligence for Games (3rd Edition): 这本书由Ian Millington撰写,涵盖了游戏AI的基础知识和高级技术。
- 访问链接:Artificial Intelligence for Games
-
Berkeley AI Research (BAIR): 加州大学伯克利分校的AI研究小组,提供了许多关于AI研究的资源和教程。
- 访问链接:BAIR
-
MIT Deep Learning: 麻省理工学院的深度学习课程,涵盖了深度学习的基础和高级主题。
- 访问链接:MIT Deep Learning
-
Google AI Blog: Google AI博客经常发布关于AI研究和应用的文章,包括游戏AI。
- 访问链接:Google AI Blog
-
Machine Learning for Games by David Silver: David Silver是AlphaGo的主要开发者之一,他在YouTube上有一个关于机器学习在游戏中的应用的讲座系列。
- 访问链接:Machine Learning for Games
-
AI Game Development with Unity by Packt Publishing: 这本书提供了使用Unity进行AI游戏开发的教程和案例研究。
- 访问链接:AI Game Development with Unity
-
Game AI Pro: 一个在线资源,提供专业的游戏AI开发文章和教程。
- 访问链接:Game AI Pro
-
AI for Game Developers: 一个专注于游戏AI开发的博客,提供教程、工具和资源。
- 访问链接:AI for Game Developers
-
Coursera and edX Courses: 这些在线课程平台提供了许多关于机器学习和AI的课程,其中一些专注于游戏开发。
- 访问链接:Coursera 和 edX
-
GitHub and GitLab: 许多游戏AI项目和教程都可以在GitHub和GitLab上找到。
- 访问链接:GitHub 和 GitLab
-
AI Game Engine: 一个开源的游戏引擎,专注于AI和机器学习。
- 访问链接:AI Game Engine GitHub
这些资源可以帮助了解如何提高游戏AI的智能水平,从基础的寻路算法到复杂的强化学习模型。不断学习和实践是提高游戏AI智能水平的关键。
深度强化学习(Deep Reinforcement Learning, DRL)是机器学习的一个分支,它结合了深度学习与强化学习,非常适合于游戏AI的开发。以下是一些推荐的入门教程和资源,可以帮助你了解深度强化学习在游戏AI中的具体应用:
-
Deep Reinforcement Learning Course by University of Alberta: 这个课程由深度强化学习领域的先驱Rich Sutton和Szepesvári教授提供,适合初学者。
- 访问链接:Deep Reinforcement Learning Course
-
CS 294: Deep Reinforcement Learning by UC Berkeley: 伯克利大学的这个课程提供了深度强化学习的基础知识和一些高级主题。
- 访问链接:CS 294: Deep Reinforcement Learning
-
DeepMind’s Deep Reinforcement Learning Papers: DeepMind发表了多篇关于深度强化学习在游戏AI中应用的研究论文,如AlphaGo。
- 访问链接:DeepMind Publications
-
OpenAI Spinning Up: OpenAI提供的这个教程是关于深度强化学习的实践指南,适合初学者。
- 访问链接:OpenAI Spinning Up
-
Reinforcement Learning: Design and Implementation by Yann LeCun: 这是Facebook AI Research负责人Yann LeCun的一系列讲座,涵盖了强化学习的基础和应用。
- 访问链接:Reinforcement Learning: Design and Implementation
-
Deep Reinforcement Learning for Game AI by Unity: Unity提供了一个关于如何使用深度强化学习开发游戏AI的教程。
- 访问链接:Deep Reinforcement Learning for Game AI
-
ML-Agents Toolkit by Unity: Unity的ML-Agents Toolkit是一个用于创建和训练智能体的工具包,支持深度强化学习。
- 访问链接:ML-Agents Toolkit
-
Gym-MiniGrid: 这是一个基于OpenAI Gym的环境,用于开发和测试网格世界的深度强化学习算法。
- 访问链接:Gym-MiniGrid GitHub
-
Deep Q-Network (DQN) Tutorials: DQN是深度强化学习中的一个经典算法,有许多教程和资源可以帮助你入门。
- 访问链接:Deep Q-Network Tutorials
-
Deep Reinforcement Learning Book by Luca Bertinetto: 这本书提供了深度强化学习的基础知识和一些实际应用案例。
- 访问链接:Deep Reinforcement Learning Book
-
Coursera and edX Courses: 这些在线课程平台提供了许多关于深度学习和强化学习的课程,其中一些专注于游戏AI。
- 访问链接:Coursera 和 edX
-
ArXiv Papers on Deep Reinforcement Learning: ArXiv是一个预印本服务器,你可以在这里找到最新的深度强化学习研究论文。
- 访问链接:ArXiv
参考链接:
[1]https://www.reddit.com/r/singularity/comments/1f3055r/google_deepmind_we_present_gamengen_the_first/
[2]https://x.com/_akhaliq/status/1828631472632172911
[3]https://x.com/imxiaohu/status/1828732438056755383