Трансформер на 6,4 млн параметров внутри Factorio 🧠🏭
Энтузиаст собрал и запустил полноценную языковую модель на 6,4 млн параметров прямо внутри Factorio — исключительно на игровых логических комбинаторах и проводах. Скорость инференса — один символ за 7 секунд на табло из игровых ламп.
Помните культовую сцену из «Задачи трех тел» Лю Цысиня? Где фон Нейман и Ньютон убеждают императора Цинь Шихуанди собрать вычислительную машину из 30 миллионов солдат с черными и белыми флажками, чтобы промоделировать орбиты трех солнц? Солдаты изображали логические вентили: «И», «ИЛИ», «НЕ».
Реальные инженеры не менее изобретательны. Разработчик под ником RomOSTiny взял Factorio 2.0 (со Space Age) и построил на комбинаторах настоящий авторегрессионный трансформер, который генерирует связный текст.
Что там под капотом (и почему это инженерное порно) ⚙️ 🔵 Архитектура: Декодер-онли трансформер на 6 393 344 параметров. 8 слоев, 8 голов внимания, скрытая размерность (width) 256, FFN 1024, контекстное окно — 256 символов. Посимвольный токенизатор на 36 знаков (латиница и базовая пунктуация). 🔵 Честный целочисленный инференс: В Factorio нет тензорных ядер и чисел с плавающей точкой (float32/float16). Сигналы в проводах — это 32- и 64-битные целые числа. Автор полностью переписал прямой проход под целочисленную арифметику: веса жестко квантованы в int, корень для LayerNorm извлекается целочисленным алгоритмом Ньютона за 4 итерации, а экспонента в Softmax аппроксимируется банком сравнивающих комбинаторов со ступенчатыми порогами.
Как выглядит UI?
Вы телепортируетесь персонажем к пульту управления. Вбиваете вопрос по буквам в ряд константных комбинаторов (буквы A–Z, пробел — сигнал точки, знаки препинания), ставите в конце галочку и щелкаете тумблер «SEND». Сначала ползет прогресс-бар (схемы затягивают промпт в память), а затем на огромном дисплее из лампочек начинает вырисовываться ответ.
Обучали сетку на открытых легковесных корпусах (TinyStories, SODA, PersonaChat) плюс синтетическом датасете по лору Factorio. В итоге кремниевый Инженер на ламповом табло вполне осмысленно рассказывает про защиту от кусак, жалуется на недостаток железных пластин, травит шутки и помнит ваше имя, пока диалог влезает в 256 символов.
В репозитории проекта лежит и отдельная реализация на Python: 400 строк чистого NumPy, без PyTorch и внешних зависимостей, которая 1-в-1 повторяет целочисленную арифметику игровых схем.
С точки зрения понимания фундаментальных основ ML — это шедевр. Фабрика должна расти. Даже если это нейросеть.