
Энтузиаст под ником _objz создал внутри ванильной версии Minecraft функционирующую генеративную нейросеть, способную вести диалог с игроком. Вычислительный массив построен из 445 782 командных блоков и выполняет генерацию текста непосредственно в игре без использования модов, плагинов или датапаков.
Первоначальный прототип системы занимал почти 1,91 млн блоков, однако автору удалось оптимизировать конструкцию более чем в четыре раза благодаря адаптации нейросетевой архитектуры.
I made a generative AI, only using 400k command blocks (PoC)
by u/_objz in MinecraftCommands
Архитектура на тернарных весах и математика блоков
Словарь модели включает 2048 слов, контекстное окно учитывает шесть последних слов беседы, а скрытый слой насчитывает 256 нейронов. Для вывода каждого следующего слова схема выполняет около 622 тысяч операций.
Как сообщает издание Tom’s Hardware, обойти вычислительные ограничения движка игры помогло использование тернарных весов. Каждый параметр нейросети принимает только три дискретных значения: −1, 0 или +1. Это позволило заменить тяжелые математические операции умножения на простые циклы сложения, вычитания или пропуска такта.
Обучение модели и скорость инференса
По данным автора в сообществе Reddit, модель обучалась вне игры на языках Python и Rust по датасету DailyDialog (11 118 бытовых диалогов), после чего готовые веса были транслированы в координаты и команды блоков.
Бот может поддерживать простой разговорный диалог на английском языке, но не предназначен для математических вычислений или сложных фактологических ответов. Показатель перплексии (метрика неопределённости модели) составил 38,8 пункта.
При стандартной скорости работы движка (20 тиков в секунду) генерация одного слова занимает 3,2 секунды, а при разгоне сервера до 35 тиков в секунду задержка снижается до 1,8 секунды. На проектирование и сборку всей структуры у автора ушло около 70 часов.