谷歌发布新AI GameNGen:AI也能实时生成游戏画面!

2024-08-30 06:20

本文主要是介绍谷歌发布新AI GameNGen:AI也能实时生成游戏画面!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

image.png

有关 GameNGen 的帖子

又有一则消息直接让全网为之狂欢!Google 推出了一个实时AI生成的游戏引擎 GameNGen。目前 GameNGen 生成3D游戏的祖宗《BOOM》的视频已经火遍 X 平台,在视频中,游戏画面每一个画面都是由AI实时生成,可以说是进入到了AI的一个新时代。

实时生成的游戏

image.png

AI实时生成画面

GameNGen 是第一个完全由神经模型提供支持的游戏引擎,它能够在长轨迹上以高质量与复杂环境进行实时交互。GameNGen 可以在单个 TPU 上以每秒超过 20 帧的速度交互式模拟经典游戏《DOOM》。下一帧预测的 PSNR 为 29.4,与有损 JPEG 压缩相当。人类评分者在区分游戏短片和模拟剪辑方面仅比随机机会略好。

GameNGen 的训练分为两个阶段:

1 :RL 代理学习玩游戏并记录训练会话。

2 :训练扩散模型以生成下一帧,以过去帧和动作的顺序为条件。条件增强可以在长轨迹上稳定地生成自回归。

GameNGen架构组成

image.png

架构展示

而从官网给出的架构来看也只有三个步骤:

1:通过 Agent Play 收集数据:第一阶段,他们会训练一个自动 RL 代理来玩游戏,保留其训练的动作和观察片段,这些动作和观察成为我们生成模型的训练数据。

2:训练生成扩散模型:他们重新利用了一个小型扩散模型 Stable Diffusion v1.4,并根据一系列先前的操作和观察(帧)对其进行条件处理。为了减轻推理过程中的自回归漂移,在训练期间通过向编码帧添加高斯噪声来破坏上下文帧。这允许网络更正前几帧中采样的信息,他们也发现这对于长时间保持视觉稳定性至关重要。

3:Latent Decoder Fine-Tuning:Stable Diffusion v1.4 的预训练自动编码器将 8x8 像素的补丁压缩为 4 个潜在通道,在预测游戏帧时会产生有意义的伪影,这会影响小细节,尤其是底部条形 HUD。为了在提高图像质量的同时利用预训练的知识,只使用针对目标帧像素计算的 MSE 损失来训练潜在自动编码器的解码器。

外网的讨论

image.png

GameNGen 实时画面展示

这一则消息出来后外网也是直接炸开了锅,因为在这之前AI是没办法做到实时生成游戏画面的,这需要AI根据玩家的操作、当时画面的情况等等去进行反应和生成,也就是说如果你不忘前走,那你永远不知道后面的画面是什么。因为它根本就没有生成!

image.png

外网对 GameNGen 的评价

Embodied AI (GEAR Lab)的负责人也发文说:“黑客们很喜欢在各种离谱的地方运行 DOOM,比如恒温器、“智能”烤面包机,甚至 ATM。但是现在,他们完全在扩散模型中运行《DOOM》。画面的每个像素都是AI生成的”。

在不久前我还说“Sora 是一个数据驱动的物理引擎”。但现在看来也不完全是,因为 Sora 无法互动。你只可以设置初始条件 (文本或初始帧),并且只能被动地观看模拟。GameNGen 则不一样,它是一个合适的神经世界模型。它采用过去的帧和用户的操作作为输入,并输出下一帧。而且质量是迄今为止我在 DOOM 上见过的最好的。

 有关厚德云

厚德云致力于为用户提供稳定、可靠、易用、省钱的 GPU 算力解决方案。海量 GPU 算力资源租用,就在厚德云。

这篇关于谷歌发布新AI GameNGen:AI也能实时生成游戏画面!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1120030

相关文章

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

C/C++随机数生成的五种方法

《C/C++随机数生成的五种方法》C++作为一种古老的编程语言,其随机数生成的方法已经经历了多次的变革,早期的C++版本使用的是rand()函数和RAND_MAX常量,这种方法虽然简单,但并不总是提供... 目录C/C++ 随机数生成方法1. 使用 rand() 和 srand()2. 使用 <random

Flask 验证码自动生成的实现示例

《Flask验证码自动生成的实现示例》本文主要介绍了Flask验证码自动生成的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 目录生成图片以及结果处理验证码蓝图html页面展示想必验证码大家都有所了解,但是可以自己定义图片验证码

Nginx实现前端灰度发布

《Nginx实现前端灰度发布》灰度发布是一种重要的策略,它允许我们在不影响所有用户的情况下,逐步推出新功能或更新,通过灰度发布,我们可以测试新版本的稳定性和性能,下面就来介绍一下前端灰度发布的使用,感... 目录前言一、基于权重的流量分配二、基于 Cookie 的分流三、基于请求头的分流四、基于请求参数的分

Python如何在Word中生成多种不同类型的图表

《Python如何在Word中生成多种不同类型的图表》Word文档中插入图表不仅能直观呈现数据,还能提升文档的可读性和专业性,本文将介绍如何使用Python在Word文档中创建和自定义各种图表,需要的... 目录在Word中创建柱形图在Word中创建条形图在Word中创建折线图在Word中创建饼图在Word