Tormund — это игра, но под ней целый материк инженерии: собственная языковая модель, обученная нами от начала и до конца, и весь стек под ней. Вот карта этих земель.
Здесь начинается стек, выкованный целиком: ~185 000 строк своего кода · 0 арендованных строк разума
Войти в мир →снизу вверх — в том порядке, в каком мы их картографировали
Тензорная математика на чистом Rust — matmul, нормировки, RoPE, softmax. Не «попробовали — заработало», а теоремы под каждым ядром. Всё остальное стоит на этом фундаменте.
Наш движок инференса. Грузит модель, гонит forward, кэширует декод, правит сэмплинг и держит наши обученные головы. Запускает настоящие модели на Apple Silicon — наш, до последнего килобайта.
Встраиваемая база данных — вектора, документы, временные ряды. Каждая нода несёт её в себе. Своя, чтобы не зависеть от чужого движка.
Свой символический интерлингв — компактные кадры на проводе, 50–200 байт на ход, не зависящие от человеческого языка. Морские пути между всеми землями говорят на нём.
Сам продукт. Текстовая RPG на шестимерном торусе. Движок решает состояние мира детерминированно — модель лишь озвучивает его живой прозой. Помнящие NPC, федерация узлов, вход через Telegram и браузер. Играется прямо сейчас — это не слайды, это запущенная игра.
Платформа разработчика и наш флагманский инструмент: доска задач, релизы, CI-конвейеры, автономные агенты. Тот самый инструмент, которым построено всё остальное на этой карте — витрина, которую мы продаём.
Мы не зовём чужую модель. Базовая модель — лишь подложка; голос — наш: обучен на нашем корпусе поверх замороженной базы. Render-head озвучивает мир богатой прозой, localizer читает естественную речь игрока. Ни Ollama, ни llama.cpp, ни облачного API — весь путь от матмула до атмосферной фразы пройден нами.
основа, что уже заложена
Tormund не живёт на одном сервере. Каждый узел несёт в себе полную базу и может быть полноценным портом мира. Узлы говорят друг с другом на компактном языке USE — десятки байт на ход, — а миры разложены по шестимерному торусу. Это та основа, на которой мир растёт новыми землями и узлами, а не ценами.
глубину стека не подделать — она в шрамах от его постройки
Голос мира выходил слогами-кашей. Два независимых корня — конфликт сэмплинга и имя игрока вне обучающего распределения — оба найдены и выправлены. Урок: у одного симптома бывает несколько причин разом.
Пробой логитов с побайтовой точностью доказали: символический словарь не видит естественный язык — разные русские фразы давали один и тот же ответ. Это убило соблазнительный срез пути и заставило выбрать верную трёхслойную архитектуру.
Не раз благое переписывание возвращало модели право решать состояние мира — и игра рассыпалась. Разделили навсегда; архитектурный тест теперь отклоняет любой коммит, размывающий границу.
Инференс на GPU Apple Silicon на низком уровне потребовал вручную управлять сессией и кэшем: промпт молча не доходил до устройства, и на любой ввод выдавался один ответ — пока засев контекста не сделали сами.
Убрали всякий чужой рантайм инференса. Когда промптинг готовой модели не вытянул чтение речи игрока — вердикт был ясен: обучить голову и для этого, тем же путём, что прошёл рассказчик.
Настоящий шрам: пароль GPU-узла потерян из-за раскладки клавиатуры по SSH, при включённом шифровании диска и без второго админа. Спасены ключом восстановления у физической консоли. Вывод записан кровью.
намерения, не обещания
Это намерения, а не обещания. Мы продаём настоящее — доступ сейчас — и ничего не обещаем на будущее. Курс может измениться.
За кромкой карты — наш ров: фундаментальные исследования (kovafield, Frankenstein) и сам математический сердечник. Существование и проверенные результаты — на виду; механизм остаётся неисследованным океаном.
Мир почти готов принять первых странников. Открытие близко.