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

Демонстрация игры Mistral-7B в Doom

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

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

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

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

Неудивительно, что со временем запуск Doom на не предназначенных для этого платформах стал популярным развлечением среди энтузиастов. Игра работает на цифровых фотоаппаратах, платёжных терминалах и калькуляторах. Фантазия не ограничивается физическим миром. Doom исполняют в неосязаемых абстракциях: в эмуляторе терминала, в системном трее Windows или даже в самом 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 символа, где каждый «пиксель» кодировал объект из кадрового буфера. Этот алгоритм-конвертер помогли написать простота игры и открытость исходников. Промпт доработали, чтобы БЯМ правильно интерпретировала данные. Так языковая модель Mistral-7B, которая обычно работает с текстом, смогла «видеть» игру.

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


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

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

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

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

В треке работы с API победили система для оптимизации автоматического создания промптов через тесты L'invite parfaite и поисковик научных статей Codex.