Эзотерическая LLM: как дообучить модель на Таро, каббале и алхимии за $2
Проект Esoteric LLM показывает необычный, но технически полезный сценарий дообучения языковой модели: взять 9-миллиардную LLM, корпус из 22 эзотерических книг и пройти полный пайплайн fine-tuning на потребительском железе. Итоговый эксперимент занял около 11 часов обучения, а синтетический датасет для instruction tuning стоил меньше $2. Домен выглядит экзотично, но инженерный вывод вполне земной: маленькие специализированные модели можно обучать заметно дешевле, чем принято думать.
Что именно обучали
Идея проекта проста: что будет, если модель прочитает не случайные страницы из интернета, а компактный корпус по Таро, каббале, герметизму, алхимии, И Цзин, астрологии и гностицизму. В корпус вошли 22 книги общим объемом около 11 миллионов символов; 21 файл удалось очистить и использовать, один сканированный PDF отбросили из-за плохого OCR. В мире больших моделей это небольшой корпус, но для узкой предметной области он уже дает плотную концентрацию терминов, авторов и внутренних ссылок.
Здесь важен не сам оккультный материал, а принцип. Вместо попытки заставить универсальную модель каждый раз вспоминать редкую область через промпт, автор добавляет эту область в веса модели через LoRA-адаптер. То есть модель не просто получает справку перед ответом, а начинает лучше говорить на языке выбранного домена.
Корпус: 22 книги и семь традиций
Подборка не сводится к случайным текстам в стиле «магия для начинающих». В README перечислены канонические и исследовательские источники: Уэйт и Кроули по Таро, Corpus Hermeticum по герметизму, Wilhelm/Baynes по И Цзин, Юнг по алхимии, Nag Hammadi и Pistis Sophia по гностицизму. Для модели это важно: качество корпуса определяет, будет ли она учить связную терминологию или просто уверенный эзотерический шум.
| Традиция | Примеры текстов |
|---|---|
| Таро | Waite, Crowley, Liber 777 |
| Астрология | Lilly, Rudhyar, Tarnas |
| Каббала | Sefer Yetzirah, фрагменты Zohar |
| Герметизм | Corpus Hermeticum, комментарии к Emerald Tablet |
| Алхимия | Splendor Solis, Atalanta Fugiens, Jung |
| И Цзин | Wilhelm/Baynes translation |
| Гностицизм | Nag Hammadi texts, Pistis Sophia |
Общий объем после обработки составил 3 035 чанков примерно по 1 000 токенов. Чанки нарезались по границам абзацев, что лучше для обучения, чем механическое деление текста на равные куски: модель получает законченные смысловые фрагменты, а не обрубки предложений.
Фаза A: модель сначала просто читает корпус
Первая фаза называется continued pre-training. Модель читает сырой корпус без формата вопрос-ответ, чтобы адаптироваться к словарю и концептуальной плотности домена. Обучение заняло 1 час 40 минут, использовался 4-битный QLoRA, LoRA rank 64 и alpha 32; обучалось 132 миллиона параметров, то есть только 1,39% от полной модели.
Loss снизился с 2,2 до 2,0. Это не драматическая цифра, но для первой фазы задача не в том, чтобы сделать чат-бота, а в том, чтобы модель перестала воспринимать корпус как набор редких слов. По сути, это этап «прочитать библиотеку», только библиотека в данном случае немного необычнее корпоративной базы знаний по отпускным регламентам.
Фаза B: 12 495 вопросов и ответов меньше чем за $2
Вторая фаза переводит знания в формат ответов. Автор сгенерировал 12 495 Q&A-пар через DeepSeek V4 Flash API, примерно по 4 пары на каждый чанк корпуса. Внешняя стоимость датасета составила меньше $2, что особенно показательно: дорогим оказался не сам API, а работа по подготовке пайплайна и проверке результатов.
Instruction tuning занял 8 часов 28 минут. LoRA-адаптер из первой фазы не переинициализировался, обучение продолжалось поверх него. Loss упал с 2,0 до 0,91, то есть примерно на 54%. Для небольшого специализированного проекта это главный результат: модель не просто «читала» эзотерические тексты, а научилась отвечать по ним в инструкционном формате.
Фаза C: DPO для стиля и почему он не волшебная палочка
Третья фаза была самой амбициозной: автор хотел придать модели плотный академический стиль с точными ссылками на источники. Для этого использовался DPO, Direct Preference Optimization: 30 вручную написанных seed-примеров расширили до 800 предпочтительных ответов через локальную Qwopus-27B в llama.cpp. Обучение заняло 1 час 22 минуты, beta была 0,1, learning rate — 5e-6, метрика accuracy держалась в диапазоне 75-85%.
Технически DPO сработал, но перенос голоса оказался слабее ожиданий. Причина приземленная: 12 495 instruction-пар были на английском, а 800 DPO-пар — на испанском. Восемьсот примеров не переопределяют стиль и язык, заложенные двенадцатью тысячами примеров на предыдущей фазе. DPO настраивает предпочтения на краях, но не пересаживает модели новую личность, как бы удобно это ни звучало в презентациях.
Экономика: обучение дешевле, чем кажется, но не бесплатно
Внешние расходы проекта действительно выглядят почти смешно: меньше $2 за генерацию датасета. Но это не значит, что специализированная LLM «стоит два доллара». Нужны 24 ГБ VRAM для обучения, достаточно оперативной памяти для слияния адаптера, время на очистку корпуса, обработку PDF/EPUB, генерацию датасета, отладку OOM и экспорт в GGUF.
| Этап | Время | Ключевой результат |
|---|---|---|
| Continued pre-training | 1ч 40мин | Loss 2,2 -> 2,0 |
| Instruction tuning | 8ч 28мин | 12 495 Q&A, loss 2,0 -> 0,91 |
| DPO alignment | 1ч 22мин | 800 preference-пар, accuracy 75-85% |
| Финальная модель | ~11 часов | 5,3 ГБ Q4_K_M GGUF |
Финальный артефакт — GGUF-модель размером 5,3 ГБ, которую можно запускать через Ollama или llama.cpp. Это не frontier-модель и не универсальная замена GPT-4o, но как локальная доменная модель она попадает в интересную нишу: достаточно маленькая для запуска на обычной машине и достаточно специализированная, чтобы отвечать не как модель, впервые увидевшая слово «Сефирот» в промпте.
Инженерные проблемы оказались обычными, не мистическими
Самый полезный раздел README — про то, что не сработало с первого раза. При экспорте в GGUF 24 ГБ VRAM не хватило, чтобы одновременно держать базовую модель и LoRA-адаптер. Решение: CPU merge, загрузка в оперативную память, слияние и сохранение; процесс занял около 20 минут, но потребовал примерно 125 ГБ RAM.
Вторая проблема — галлюцинации при генерации DPO-ответов с нуля. Для домена, где важны авторы, даты и названия текстов, модель легко придумывает уверенные несуществующие ссылки. Автор перешел в rewrite mode: сначала дается фактический короткий ответ, затем локальная модель переписывает только стиль. Факты остаются зафиксированы, а меняется подача.
Третья проблема была совсем классической: OOM на 340-м шаге instruction tuning при max_seq=2048. Исправление — снизить max_seq до 1024 и удвоить gradient accumulation, сохранив effective batch size 16. Никакой тайной доктрины, просто память видеокарты закончилась раньше терпения.
Почему это направление интересно за пределами эзотерики
Esoteric LLM полезен именно как пример альтернативного использования обучения LLM. Тот же пайплайн можно применить к локальным нормативам, старым техническим мануалам, архивам писем, внутренней документации, учебным материалам или нишевой профессиональной литературе. Размер корпуса в 11 миллионов символов показывает, что для доменной модели не всегда нужны миллиарды документов; иногда нужен правильно очищенный небольшой набор источников.
Главный практический урок: обучение небольших моделей становится задачей инженерии данных, а не только вычислительного бюджета. Сложность смещается в курацию корпуса, качество OCR, генерацию хороших instruction-пар, выбор языка для SFT и понимание ограничений DPO. Деньги на API в этом эксперименте были самой маленькой строкой расходов.
Вывод
Эзотерическая LLM — не про то, что нейросеть теперь «понимает тайные знания» и готова выдавать окончательные ответы о смысле алхимии. Это демонстрация того, что полный цикл дообучения 9B-модели на узком корпусе можно пройти на потребительском железе, получить локальный GGUF и потратить на внешний датасет меньше стоимости обеда.
Практический вывод шире темы Таро и каббалы: если есть компактный корпус качественных текстов и понятная задача, специализированная LLM уже не выглядит как исследовательский проект для лаборатории с семизначным бюджетом. Она выглядит как инженерный эксперимент выходного дня, который, правда, все еще требует аккуратности, 24 ГБ VRAM и готовности признать, что DPO не исправит ошибки, заложенные на предыдущем этапе обучения.
Источник: Esoteric LLM на GitHub.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.