Pull to refresh

Языковую модель Mistral-7B научили играть в Doom

Reading time4 min
Views4.1K
Демонстрация игры Mistral-7B в Doom

Вчера, 24 марта, компания Mistral AI проводила хакатон, в одной из категорий которого участникам предлагалось дообучить открытую языковую модель. Первое место в этой категории принесло необычное для текстового ИИ применение: Mistral-7B заставили играть в Doom.

Видеоигра Doom вышла в 1993 году и немедленно получила чрезвычайный успех. Как вспоминает бывший сотрудник Microsoft Гейб Ньюэлл, статистические исследования выявляли, что в начале девяностых эта игра была установлена на большем числе компьютеров, чем Windows.

Однако всего через четыре года, в 1997 году, компания-разработчик игры id Software опубликовала исходный код движка Doom под изначально проприетарной (DOOM license), а позднее открытой (GPL) лицензией. Код сообществу отдали из любви к движению открытого ПО, ради распространения знаний.

Движок Doom полагается на программный рендеринг трёхмерного мира, то есть не требует специализированного аппаратного ускорителя. Для запуска нужно устройство ввода, экран и собственно вычислительное устройство. Движок бесполезен без ассетов, которые под открытой лицензией не публиковали. Впрочем, сама игра монетизируется по модели shareware, и первый эпизод распространяется бесплатно.

Неудивительно, что со временем запуск Doom на не предназначенных для этого платформах стал популярным развлечением среди энтузиастов. Игра работает на цифровых фотоаппаратах, платёжных терминалах и калькуляторах. Фантазия не ограничивается физическим миром. Doom исполняют в неосязаемых абстракциях: в эмуляторе терминала, в системном трее Windows или даже в самом Doom.

Doom даже используют для обучения ИИ-агентов в рамках платформы ViZDoom. Конечно, под этим понимается, что боту дают на входе только картинку, а не доступ на уровне движка к объектам игры и геометрии уровня. Ещё в 2016 году система машинного зрения научилась в ViZDoom играть не хуже человека.


Архитектура бота из статьи «Will GPT-4 Run DOOM?» [arXiv:2403.05468] на основе GPT-4

Могут ли играть в Doom большие языковые модели (БЯМ)? Казалось бы, нет: они оперируют текстом. Даже если и добавить зрение «костылями» мультимодальности, получится медленная система.

Так считает недавняя статья исследователя Microsoft [arXiv:2403.05468]. Бота построили на GPT-4. В GPT-4V передавали скриншот, чтобы получить структурированное текстовое описание состояния игры. Затем игровой агент отсылал в GPT-4 текстовый промпт с предыдущей историей. БЯМ принимала решение, какое действие нужно совершить.

Получившийся бот играл в Doom слабо и «забывал» про врагов, как только они выпадали из поля зрения. Ни о какой работе в реальном времени речи не шло: на каждую итерацию уходило по минуте.

Другая команда вчера показала небольшой прототип для игры в Doom на основе дообучения БЯМ. Этот пример значительно проще, но работает в реальном времени.

24 марта Mistral AI, организатор мероприятий Cerebral Valley и коворкинг Shack15 провели в Сан-Франциско хакатон. Как пишет один из судей хакатона, в мероприятии приняли участие около 400 разработчиков.

Mistral AI — французский стартап, который выпускает БЯМ. Некоторые модели Mistral AI работают только через API, ещё две БЯМ компания опубликовала под лицензией Apache 2.0. Треков хакатона было два: использование API и тонкая настройка. Участникам предлагалось либо построить новый проект на основе сервиса API компании, либо дообучить одну из открытых моделей Mistral AI. Проекты принимали до 11:30 утра по местному времени (21:30 МСК).

Команда Умута Йылдырыма [Umut Yildirim], Пола Чу [Paul Chu] и Бхава Ашок [Bhav Ashok] рассказала про работу, которая принесла им первое место в треке дообучения.

Представление экрана в текстовом виде

Скриншот Doom представили в виде ASCII-арта из матрицы 32×64 символа, где каждый «пиксель» кодировал объект из кадрового буфера. Простота игры и открытость исходников упростили написание алгоритма-конвертера фреймбуфера в ASCII-арт. Промпт доработали, чтобы БЯМ правильно интерпретировала данные. Так языковая модель Mistral-7B, которая обычно оперирует текстом, смогла «видеть» игру.

В игру несколько раз поиграли, на этих данных провели файнтюнинг LoRA для Mistral-7B. Затем дообученную БЯМ заставили играть в Doom. В промпте передавали небольшое описание ситуации, условные обозначения для понимания скриншота и собственно экран в ASCII-арте. На выходе модель отвечала действием, которое отсылается обратно в игру: атака, движение вперёд, назад, влево или вправо.


Общая схема проекта

К удивлению самой команды, подход сработал. [Видео с демонстрацией игры размещено до ката.] Полученная модель играет в Doom не идеально, но эффективно бродит по карте и отстреливает любых супостатов в поле зрения. Если такой бот упирается в стену, он поворачивается и идёт в другом направлении, если видит зомби — стреляет по нему.

Как говорит участник команды, качество БЯМ можно увеличить бо́льшим объёмом данных для дообучения, улучшениями представления игрового мира и полноценным нативным файнтюнингом, а не просто LoRA.

Mistral AI рассказала про других победителей. Второе место в треке дообучения занял ещё один игровой бот, но для Pacman. Как и в случае с Doom, БЯМ получала на входе кадр игрового состояния и на основе этого принимала решения.

В треке работы с API победили система для оптимизации автоматического создания промптов через тесты L'invite parfaite и поисковик научных статей Codex.
Tags:
Hubs:
Total votes 14: ↑14 and ↓0+14
Comments2

Other news