Разработчик Владимир опубликовал на Хабре первую статью из цикла о создании GPT-подобной LLM с нуля. Его мотивация — изучить вселенную Warhammer 40K, обучив на её текстах собственную модель. Для этого он написал код на «голом» PyTorch, собрав декодер-only трансформер.
Модель получила 164 миллиона параметров, а датасет для претрейнинга составил 72 миллиона токенов. По закону масштабирования (Чинчилла) для такого числа параметров требуется около 20 токенов на параметр, то есть примерно 3,3 миллиарда токенов — на практике датасет оказался в 45 раз меньше. Это объясняет, почему модель, хоть и генерирует связный текст, но не демонстрирует глубокого понимания лора.
Первый этап — подготовка данных. Владимир собрал тексты из разных источников в форматах PDF и FB2. Для каждого формата он написал экстрактор: для PDF использовал библиотеку fitz, для FB2 — lxml с обработкой кодировок. Извлечённый текст приводился к единому формату JSON. Автор отмечает, что OCR не добавлял, проблемные файлы обрабатывались вручную.
После экстракции следует токенизация — разбивка текста на токены. Детали токенизатора будут раскрыты в следующих частях. Пока модель прошла только претрейнинг. Далее автор планирует этап SFT (дообучение на парах вопрос-ответ) и интеграцию с Hugging Face.
Результат, по словам Владимира, «не очень»: instruct-версия иногда правильно отвечает на вопросы, но в целом модель не живёт в мире Империума. Тем не менее, код и веса выложены на GitHub, и цикл статей продолжается. Для разработчиков, желающих повторить эксперимент, это хороший практический пример ограничений масштабирования и важности качества данных.

