Игрок собрал в Factorio языковую модель на 6,4 млн параметров

Пользователь под никнеймом RomaPro227 собрал внутри Factorio работающую языковую модель на 6,4 млн параметров. Система полностью реализована средствами игры: она использует комбинаторы и соединяющие их провода, не полагается на модификации или сторонние скрипты.
Конструкция включает около 105 тыс. комбинаторов, связанных примерно 200 тыс. проводов. Результат работы модели выводится на табло из 8 тыс. ламп. В основе проекта лежит трансформер с восемью слоями и восемью головами внимания, который генерирует текст посимвольно. Размер контекста составляет 256 символов.
Как нейросеть работает в игре
Комбинаторы в схеме выполняют операции, необходимые для вычисления скалярного произведения. Они перемножают соответствующие значения из двух наборов сигналов, а затем складывают получившиеся результаты. Пара из арифметического и постоянного комбинаторов таким образом формирует нейрон с 256 или 1024 входами.
Веса модели хранятся в постоянных комбинаторах, а числовые векторы передаются по проводам. Чтобы отправить запрос, необходимо ввести английский текст, подавая символы по одному в ряд комбинаторов, а затем включить переключатель запуска. На ламповом табло появляются индикатор обработки и сгенерированный ответ.
Производительность системы остаётся низкой даже по меркам игровых экспериментов. При частоте обновления 60 раз в секунду модель создаёт примерно один символ за семь секунд. Поэтому текст длиной 100 символов генерируется почти 12 минут, не считая времени обработки входных данных.
Возможности и ограничения
По словам автора проекта, модель способна отвечать на вопросы о Factorio, придумывать короткие истории и шутить. При этом её ответы могут быть неточными и повторяться. В опубликованной демонстрации также показана тестовая версия, способная генерировать только слово Hello.
Для проекта доступны сохранение игрового мира с нейросетью, веса модели и инструкция по запуску. Автор также подготовил Python-версию, которую можно использовать за пределами Factorio. Система запускается в Factorio 2.0 при наличии дополнения Space Age, а подробный разбор её устройства опубликован в виде видеоматериала на YouTube-канале разработчика.


