Что делают нормальные люди, когда им скучно? Строят замки, разводят овец, ну или копают вглубь до алмазов. А реддитор Objz решил собрать нейросеть. В Minecraft. Из 445 782 командных блоков. И без единого мода.

Звучит как безумие? Ещё какое!

Но проект реальный. Никаких плагинов, датапаков и прочей магии — только ванильная песочница и, как выразился автор, «головная боль».

Что это за зверь такой? Не GPT-4, конечно. 64-мерные эмбеддинги, 256 нейронов в скрытом слое и словарик на 2048 слов. Обучили модель на 11 118 диалогах из DailyDialog. Зато она разговаривает! Пишешь /dialog — и получаешь ответ слово за словом, как в настоящем чат-боте.

Правда, умной её не назвать: математику не знает, энциклопедией не прикидывается. Зато честная, как кубик.

Главный фокус — оптимизация. Изначально проект весил почти 2 миллиона блоков. Objz провернул трюк: вместо дробных весов — тернарные значения -1, 0, +1. Это как перевести нейросеть на язык светофора. Ноль? Ничего не делаем. Плюс? Прибавляем. Минус? Вычитаем.

В итоге каждая операция умножения-сложения в среднем требует 0.67 команды. Вы не ослышались — меньше одной команды на операцию!

И это ещё не всё. Квантование весов происходило не после обучения, а прямо во время, с хитрым straight-through estimator при обратном распространении. Perplexity упал с 48.7 до 38.8. Мелочь, а приятно.

Но Minecraft не резиновый. Из-за лимита команд за тик LLM разбит на группы. Слово генерируется за 1.8 секунды на сервере с 35 тиками. Для сравнения, ChatGPT печатает быстрее. Но ChatGPT не живёт в кубическом мире, верно?

Сделать модель больше — значит, построить в 200 раз больше блоков. Вряд ли кто-то на такое решится. Но этот проект — гимн хардкорному творчеству и доказательство: ограничения рождают гениальные решения.

Так что в следующий раз, когда решите, что в Minecraft нечего делать, вспомните: кто-то уже собрал там нейросеть. Ваш ход.

Оригинал на Reddit и статья на Tom’s Hardware