В Minecraft создали маленькую языковую модель — она получилась гигантской
Модель могла быть еще больше, но ее удалось оптимизировать.
Разработчик Objz создал в Minecraft языковую модель, реализовав ее непосредственно с помощью игровых блоков. Для создания встроенного ИИ потребовалось больше 445 тысяч командных блоков.
Модель получила словарь из 2048 слов, пространство эмбеддингов размерностью 64 и скрытый слой на 256 нейронов. По меркам современных нейросетей все это очень скромно, но внутриигровая конструкция, реализующая модель, выглядит очень внушительно: маленькая языковая модель получилась здоровенной.
Изначально модель была еще больше: первая версия проекта занимала почти 2 миллиона блоков. Чтобы уменьшить систему, разработчик отказался от весов в формате чисел с плавающей точкой и перешел на тернарное представление со значениями -1, 0 и +1 — так модель удалось сократить в несколько раз.
Такая оптимизация важна из-за особенностей работы командных блоков Minecraft: команда scoreboard поддерживает умножение и деление, однако работает с целыми числами, а использование обычных весов потребовало бы дополнительных преобразований. Тернарная схема позволила избавиться от значительной части таких преобразований.
Для обучения своей модели Objz использовал 11118 диалогов из набора DailyDialog. Теперь с моделью можно поболтать прямо в игре, но чего-то продвинутого от нее ждать не стоит — слишком маленький датасет. Впрочем, даже такая модель работает медленно — одно слово генерируется почти 2 секунды.


