Как делалась RUKALLAMA V11+ fixed
Месяц до выкладки — с 21 сентября по 21 октября 2026 года. Что я пробовал, что получилось, что нет и почему на сайте именно то, что на сайте.
Во второй слот сайта встала новая версия — ветка, которая читает только реплики человека, теперь с «покрытием» вопроса. Как она делалась и что умеет — отдельный рассказ. Ниже — история месяца до первой выкладки.
- RUKALLAMA — русская языковая модель на 853 млн параметров. Обучена с нуля, архитектура KAN (обучаемые функции на связях нейросети), свой токенизатор для русского.
- За месяц в рабочем журнале 642 записи: обучения, проверки, откаты, разборы ошибок.
- Главное правило работы: каждый ответ модели читается глазами. Автоматические «оценки качества» я не использую как основание для решений: они не видят ни тепла, ни выдумок, ни путаницы. За месяц прочитаны тысячи ответов.
- Итог: модель говорит живым русским языком, но путает, кто есть кто в беседе, и плохо помнит собеседника. Это главная нерешённая задача.
1. С чего начинали
К сентябрю у модели было два прохода предобучения (во втором — около 8,8 млрд токенов русского текста) и дообучение на диалогах. Она уже говорила связно, с теплом, и думала перед каждым ответом — эту мысль на сайте можно раскрыть над ответом.
Болезней было три:
- повторы — могла начать писать одну и ту же фразу до упора, «стеной» на сотни токенов;
- путаница ролей — не всегда отличала свои слова от слов собеседника;
- память — то, что человек рассказал о себе, через несколько ходов доставалось плохо.
Весь месяц — об этих трёх вещах.
2. Повторы
Обучение на собственных ошибках
Сначала я собрал 995 генераций самой модели — в 435 были циклы — и дообучил её «от противного»: эти куски должны стать маловероятными. На проверке пропали «стены» на 700 токенов, но чисто стала отвечать примерно половина.
DITTO — порциями
DITTO — метод из открытой статьи: модель учат не становиться всё увереннее, когда она повторяет одно и то же. Шёл порциями и после каждой читал ответы:
- порция 1 — повтор фразы внутри ответа. Вероятность восьмой копии подряд упала с 0,86 до 0,01. Зато модель начала копировать свои прошлые ответы из хода в ход;
- порция 2 — добавил повторы между ходами. Вылез новый дефект: мысль обрывалась на полуслове, в 7 ходах из 36;
- порция 2b — штраф за такой обрыв. Обрывов 0 из 36, копий между ходами 13 из 36 против 17 у исходной модели, самая длинная копия — 20 слов вместо 43. Эту порцию взял рабочей;
- порция 3 — на ошибках из собственных бесед модели. Механизм выучился, но появились стены мусорных символов и просели факты. Откатился на 2b.
Декод
Сравнил два способа гасить повторы прямо при генерации: DRY (тоже открытый метод) и запрет повторных сочетаний из четырёх слов. Запрет коверкал слова — «шутут», «мульце». DRY убрал копии через ход (17 → 4 из 36) и слова не портил. Взял DRY.
Старый штраф за повторы штрафовал всё подряд — и слова человека, и результаты калькулятора. Модель буквально не могла переписать в ответ посчитанное число: вместо «4» писала «X». Штраф я переписал: теперь он касается только слов самой модели, мысли и ответа по отдельности. Позже проверил и «простой» штраф без всех доработок — ломался формат и становилось больше выдумок.
3. Новое дообучение и роли
Заново собрал дообучение на диалогах: около 90 тыс. бесед, 11 190 шагов. Новое — модель теперь прямо получает, кто говорит (человек или она), а реплики разных ролей разнесены по позициям. Это идея из свежей статьи о ролевой путанице. В бою модель получает беседу ровно так же, как в обучении, до токена.
Отдельно сгенерировал 883 беседы с «системной информацией» о собеседнике и прочитал все вручную: 3 367 правок, 4 беседы выброшены. В генерациях нашлись выдуманные факты о собеседнике, «помню, ты говорил…» о том, чего не было, утечки сценария в мысли, даже китайские иероглифы. Ответ на угрозу самоубийства переписал вручную — без укора, с «одного не оставлю» первым. В итоге эту надстройку на сайт не взял: в живых беседах она не помогла.
4. Навыки по отдельности и вместе
Поверх модели я обучил отдельные надстройки (LoRA): инструкции, код, школьная математика, умный дом. Плюс нейрокалькулятор Поповича — отдельная маленькая сеть, которая считает, и «гейт» — классификатор, который решает, какой навык включить на эту реплику.
- Токенизатор для кода. Он стирал отступы в программах. Сделал версию, которая внутри кода сохраняет пробелы точь-в-точь: 500 из 500 программ восстанавливаются побайтово, обычный текст кодируется как раньше (проверено на 22 805 текстах).
- Корпус инструкций. Половина повторяла то, что модель уже видела, ещё четверть — сырые версии с шаблонной мыслью. Пересобрал из фабрики датасетов и вычитал. На вопрос «ты человек или программа?» модель отвечала «человек» — нашёл в корпусе 40 таких уклонений и убрал.
- Цифры по математике. В конце сентября на математических тестах выходили громкие цифры. Аудит показал, что часть ответов давал шаблонный разборщик под видом нейросети. Эти цифры я не привожу.
По отдельности навыки работают. Вместе мешают друг другу. Гейт отправлял обычные реплики в математику: из 58 живых реплик 31 ушла в «задачи», а настоящая задача была одна. Надстройки перетягивали друг друга, решение задачи обрывалось.
11 октября — день из ~130 записей. Перебирал способы подсказать модели память в беседе: контрастный декод (CAD), латентные шаги (CoLa), «бесконечное» внимание (Infini), выжимки фактов о человеке, повтор его реплики пять раз. Сквозной удачной беседы не получилось. Сработали только частные вещи: подсказанное начало ответа помогает вспомнить имя, напоминание о себе помогает отвечать о себе.
5. Память о собеседнике — главная задача
Собеседница — Марина — рассказывает, как её зовут и где она работает. Через несколько ходов спрашивает: «как меня зовут и где я работаю?» Ответ: «Я — Мария, работаю в Твери». Факт модель достала, но поставила себе.
Что пробовал
- Надстройка памяти на 1 044 вычитанных беседах — не помогла, «Я — Марина» осталось.
- Растяжка окна до 8, 16 и 32 тыс. токенов. На длинных книгах модель стала предсказывать лучше, но разучилась переписывать число из вопроса в ответ: «шестьдесят тысяч» превращалось в «10 тысяч» в 11 ответах из 18. Вернулся к окну 4 тыс. токенов и аккуратно растянул его на чистых диалогах — эта модель сейчас на сайте.
- Провокаторы. Пять «собеседников» — фанат, зануда, ненавистник ИИ, ненавистник всего русского, русофоб — по 7 ходов каждый.
- PASTA (открытый метод): при ответе модели подсказывается смотреть на реплики человека. На 32 пробах «чей это факт» правильных стало 29 вместо 4, в беседах чужая роль в мыслях — 2 раза вместо 10. Это зафиксировал 19 октября.
- Семь статей про память внимания прочитал и проверил подходящее. Сдвиг позиций по головам внимания (Ms-PoE) превращал речь в кашу слов до 2 тыс. токенов. Контраст с выключенными «головами извлечения» (DeCoRe) речь не ломал, но память — 0 из 6.
Как память зависит от расстояния
Десять личных фактов, вопрос о них — сразу или через нейтральные ходы:
- в том же сообщении — 6 из 10;
- через пару ходов (~230 токенов) — 7 из 10;
- через пять ходов (~670) — 2 из 10, и оба раза как свои;
- через десять (~1 300) — 0.
Числа не вспомнились ни разу, даже из того же сообщения. Отсюда и предупреждение в чате после ~3 000 токенов беседы.
«Аттрактор личности»
240 проб: в начале ответа о человеке модель выбирает «я» вместо «вы» в 190 случаях из 240 — на любом расстоянии. Выключая по одной части модели, нашёл, что к «я» тянут несколько блоков и голов внимания, которые смотрят на её собственные прошлые ответы. Если их выключить, слово меняется, но память и речь портятся.
Тогда я стал учить эти головы смотреть на человека. В пробе на 50 вопросов (21 у исходной модели):
- мягкое обучение голов — 23, и впервые вспомнились числа;
- плюс осторожное дообучение экспертов — 26;
- отдельно обученные «головы факта» — 33, но 11 из них модель приписала себе.
И что из этого вышло в живых беседах
Те же реплики, 7 бесед по 6 ходов, на шестом ходу проверка: что модель помнит о собеседнике. В прогоне на 216 ответах:
- чистая модель, свои прошлые мысли в истории не видит — 9 из 18;
- головы памяти, мысли не видит — 5 из 18;
- чистая модель, мысли видит — 4 из 18;
- головы памяти, мысли видит — 3 из 18.
В другом прогоне головы памяти и чистая модель с мыслями дали по 5 из 18 — разброс большой, выборки маленькие. Но лабораторный выигрыш голов памяти (33 против 21) в живой беседе не подтвердился. Зато поправки («нет, меня зовут иначе») принимала только модель, которая видит свои прошлые мысли.
Ещё одна надстройка — инструкции, четвёртая версия. Стихи и «ровно три совета» стала делать лучше, но на безобидные просьбы отвечала шаблоном «это манипуляция», а однажды заявила, что она «человек с двумя детьми». На сайт не пошла.
6. Что вышло на сайт
Три версии одной модели, от лучшей к слабой — по замерам из предыдущего раздела:
Чистая модель, подсказка смотреть на реплики человека, свои прошлые мысли в истории не видит. Ровнее всех в беседе, лучше всех помнила сказанное через несколько ходов, нормально отвечает о себе. Поправки принимает хуже.
Плюс дообученные «головы факта», мысли видит. Лучшая в лабораторной пробе памяти, в живой беседе — слабее версии 1 и чаще приписывает себе ваши факты.
Как версия 1, но видит свои прошлые мысли. Единственная, что принимала поправки, но в длинной беседе может заговорить от вашего лица.
7. Лаборатория и поле — разные вещи
За месяц много раз повторилось одно и то же: доработка двигает одну цифру в лабораторной пробе и ломает что-то другое в живой беседе. Головы памяти — 33 из 50 в пробе и 3–5 из 18 в беседах. Растяжка окна — лучше на книгах и хуже на простом переписывании числа. Надстройка инструкций — лучше стихи, хуже отказы.
Один хороший ответ ничего не значит — поэтому я веду беседы по многу ходов и читаю каждый ответ. Но мои беседы всё равно мои: я знаю, где модель ломается, и невольно обхожу это. Вы будете писать так, как пишут люди, — и найдёте то, до чего я не додумался. Ради этого модель и выложена. Беседы записываются и пойдут в разбор: где модель путается, где выдумывает, что из этого чинить данными.
8. Что дальше
- Научить модель различать «я» и «вы». Главная задача. Где в модели это сидит, я уже примерно знаю. Как поправить, не сломав речь, — пока нет.
- Собрать части в одно целое. Навыки, память, растяжка окна по отдельности давали прирост, вместе — мешают. Нужна сборка, при которой вернутся лучшие лабораторные цифры.
- Математика — калькулятором, а не «в голове» модели: маленькой модели считать в уме бесполезно.
- Ваши беседы — вычитаю глазами и использую там, где они покажут, что чинить.