Геймер реализовал полноценную языковую модель в Minecraft без модов
20.08.2026, 07:48 • Евгения Слив

Сообщество Minecraft давно освоило постройку графических калькуляторов, генераторов QR-кодов и даже тетриса внутри игры с помощью редстоуна и командных блоков. Геймер, известный под ником Objz, пошел дальше и реализовал полноценную языковую модель, использовав четыреста сорок пять тысяч семьсот восемьдесят два командных блока и не прибегая к модам, плагинам или датапакам. Сам создатель охарактеризовал работу коротко, назвав ее головной болью.
Модель получилась миниатюрной по современным меркам. В ней шестьдесят четырехмерное пространство эмбеддингов, скрытый слой на двести пятьдесят шесть нейронов и словарь всего из двух тысяч сорока восьми слов, а обучение проводилось на одиннадцати тысячах ста восемнадцати диалогах из датасета DailyDialog. Общаться с чатботом можно через игровую команду /dialog, а ответ выводится по одному слову за раз, как в привычных языковых моделях. При этом Objz честно предупреждает, что нейросеть умеет лишь поддерживать беседу: считать она не способна, широкими знаниями о мире не обладает и особой сообразительностью не блещет.
Главное достижение здесь заключается именно в оптимизации. Изначальная версия с теми же возможностями занимала почти два миллиона блоков, и без ухищрений структура такого объема данных и вычислений действительно потребовала бы миллионов кубов. Веса в языковых моделях обычно хранятся в виде чисел с плавающей запятой, реализовать которые в Minecraft было бы чересчур сложно, поэтому автор ограничился тернарными значениями: минус один, ноль и плюс один. Команда scoreboard в Minecraft поддерживает умножение и деление, но работает только с целыми числами. Квантизация до тернарных значений решила сразу две задачи, убрав ненужные команды и заметно сократив объем данных. Благодаря обилию нулевых весов каждая операция умножения с накоплением обходится в среднем в шестьдесят семь сотых команды.
Важная деталь заключается в том, что Objz не просто округлил веса готовой модели после обучения. Квантизация применялась с самого начала при прямом проходе, а для обновления исходных чисел с плавающей запятой во время обратного распространения ошибки использовался метод прямого оценщика. Вместе с дополнительными оптимизациями это снизило перплексию, то есть вероятность выдать бессмысленное слово в последовательности ответа, с сорока восьми и семи десятых до тридцати восьми и восьми десятых. Из-за ограничений игры на количество одновременно выполняемых команд модель разбита на небольшие группы. Даже так на сервере с частотой тридцать пять тиков в секунду генерация одного слова занимает около одной и восьми десятых секунды. Создатель отмечает, что масштабировать такую архитектуру крайне дорого с вычислительной точки зрения: языковая модель на сто тридцать пять миллионов параметров оказалась бы примерно в двести раз больше нынешней постройки.
