DOOM запустили на нейросетях

Модель GameNGen симулирует игровой процесс в реальном времени с качеством, почти неотличимым от оригинала

Исследователи из Google Research, Google DeepMind и Тель-Авивского университета представили GameNGen — первый игровой движок, полностью управляемый нейросетью, который обеспечивает взаимодействие игрока с виртуальной средой в реальном времени с высоким качеством генерируемой графики. GameNGen может симулировать классическую игру DOOM со скоростью более 20 кадров в секунду, используя для этого вычислительные мощности одного TPU. Качество изображения сопоставимо с алгоритмом сжатия JPEG, а людям на первый взгляд очень сложно отличить реальную игру от симуляции. GameNGen обучается в два этапа: сначала агент с помощью обучения с подкреплением учится играть в игру, а затем диффузионная модель обучается генерировать следующий кадр на основе последовательности предыдущих кадров и действий игрока. Статья с описанием движка опубликована на странице проекта в GitHub.

В последние годы генеративные нейросетевые модели достигли значительного прогресса в создании изображений и видеороликов на основе различных входных данных. Следующим этапом могли бы стать видеоигры, так как задача генерации игрового мира может показаться похожей на быструю генерацию видео — и там, и там происходит создание последовательности изображений (кадров), которые выглядят как движущееся изображение на экране. Однако на практике создание интерактивного виртуального мира — это больше, чем простая генерация последовательности кадров.

Интерактивность требует постоянного учета действий игрока (нажатие на кнопки, движение мышью и так далее), которые могут происходить в любой момент и должны напрямую влиять на результат работы генеративной модели. И это только одна из возможных проблем. Несмотря на эти сложности, некоторые исследователи уже пытались симулировать видеоигры с помощью нейронных сетей. Однако, большинство из существующих на сегодняшний день проектов ограничено сложностью симулируемых игр, имеют низкую скорость симуляции, плохую устойчивость в течение длительных периодов времени и низкое качество генерируемого изображения.

Возможно, эту ситуацию изменит работа группы инженеров из Google Research, Google DeepMind и Тель-Авивского университета. Они создали нейросетевой игровой движок GameNGen, который в реальном времени симулирует классический шутер DOOM. В основе движка лежит диффузионная нейросеть, которая обучена предсказывать каждый следующий кадр игры, используя последовательность ранее сгенерированных предыдущих кадров и поток команд игрока на входе.

Чтобы получить набор данных для последующей тренировки, инженеры сперва научили нейросетевого агента играть в DOOM. Для этого использовался метод обучения с подкреплением, а в качестве игрового окружения выступила популярная платформа для исследования искусственного интеллекта ViZDoom. Обучение происходило с помощью алгоритма проксимальной оптимизации политики (Proximal Policy Optimization). На этом этапе цель была не в максимизации количества игровых очков, а в генерации достаточного количества обучающих данных, которые бы напоминали игру человека и содержали бы разнообразные игровые ситуации. В процессе обучения агент получал награды за успешные действия (например, за уничтожение врагов или нахождение секретов), и штрафы за ошибки (получение урона или смерть персонажа). В результате размер собранного обучающего набора данных состоял из более чем 900 миллионов кадров, а также из записи действий агента.

На втором этапе эти данные были использованы для дообучения диффузионной модели на базе Stable Diffusion v1.4. Основная задача модели — генерировать следующий кадр, используя для этого несколько предыдущих кадров, а также действия игрока. На этом этапе возникает известная проблема — использование предыдущих изображений для генерации новых приводит к быстрому накоплению ошибки и падению качества создаваемых кадров. Чтобы исправить это и улучшить стабильность работы модели, разработчики добавили к данным на этапе обучения дополнительный шум. Помимо этого, также были дообучены отдельные компоненты модели, такие как декодер латентных представлений, что позволило улучшить качество изображения и устранить артефакты, особенно в интерфейсе игры.

В итоге модель оказалась способна генерировать полноценный игровой процесс в реальном времени с качеством, сопоставимым с графикой оригинальной игры. GameNGen работает со скоростью более 20 кадров в секунду на одном TPU-процессоре. Модель реагирует на действия игрока в реальном времени, симулируя игровой процесс: изменяются цифры счетчиков игрового интерфейса — количества здоровья, патронов, брони в зависимости от действий игрока и получаемого урона от монстров или игрового окружения. Игровой мир реагирует на действия игрока — открываются и закрываются двери, появляются монстры, которые атакуют игрока и тому подобное.

По метрике PSNR (Peak Signal-to-Noise Ratio), которая используется для оценки качества изображения, модель достигает 29,43 децибела, что примерно соответствует качеству изображения с JPEG-сжатием. Несколько человек, участвовавших в оценке качества симуляции, с трудом отличали реальные фрагменты игры от сгенерированных моделью. Для этого им предлагалось просмотреть пару коротких (длительностью 1,6 и 3,2 секунды) видеоклипов и определить, какой из них сгенерирован моделью. Видео с реальной игрой смогли определить только 58 и 60 процентов участников соответственно.

Из проблем на данном этапе можно отметить ограничение «памяти» модели. GameNGen может учитывать только ограниченное количество предыдущих кадров и действий (чуть больше 3 секунд игрового времени). Это означает, что модель может «забывать» некоторую информацию, которая была доступна ранее, включая, например, структуру игрового уровня, что можно увидеть на представленных записях игрового процесса.

Нейросети можно использовать для модификации изображения уже существующих видеоигр. Например, некоторое время назад разработчики из Intel создали нейросетевую модель, превращающую кадры из компьютерной игры GTA V в фотореалистичные.

Нашли опечатку? Выделите фрагмент и нажмите Ctrl+Enter.
«Как устроен ChatGPT? Полное погружение в принципы работы и спектр возможностей самой известной нейросети в мире»

Как нейросети обучаются на примерах

Мнение редакции может не совпадать с мнением автора