У Minecraft зібрали працюючу мовну модель із 445 тисяч блоків без модів

Ентузиаст під ніком _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 годин.