RUKALLAMA V11++ — версия 2
Выложена 28 октября 2026 года во второй слот сайта. Что это за модель, как я к ней шёл три дня после выкладки версии 1, какие статьи пригодились и что она теперь умеет.
- Это версия 1 («без залипания») с одним изменением. У модели есть отдельная ветка внимания, которая читает только ваши реплики. Теперь эта ветка ещё и помнит, на какие ваши слова уже смотрела в текущем ответе, и переходит к тем, что ещё не затронуты. Приём называется покрытие (coverage). Его придумали для автоматических пересказов, чтобы пересказ не повторял одно и не забывал другое.
- Саму ветку и модель я не трогал. Обучены всего 8 чисел — по одному на каждую голову ветки. Включились два.
- В живом разговоре она держит нить, сама предлагает следующий шаг и выполняет его, отвечает развёрнуто и по пунктам — у меня был ответ на 486 токенов. За пять ходов ни разу не съехала в рассказ о себе.
- Чего она не умеет: писать рабочий код и точные технические инструкции. Для 853 млн параметров это нормально, и в упрёк ей я это не ставлю.
- Прежняя версия 2 («головы памяти») не удалена — я её законсервировал и могу вернуть.
1. Откуда начинал
26 октября на сайт в слот 1 встала версия «без залипания». В ней я дообучил девять голов внимания, которые копируют слова из беседы. Раньше в длинном разговоре модель тянула одну тему по кругу из своих же прошлых ответов, а эти головы стали меньше смотреть на её прошлые реплики. Залипших ходов в моей проверке стало 20 из 48 вместо 34, память о собеседнике осталась на месте.
Но заплатить пришлось длиной: ответы стали примерно вдвое короче — около 96 токенов против ≈190 у модели до этого шага. И осталась старая болезнь: иногда модель берёт факт человека себе. Человек пишет «дача у нас с женой, Галей», а через пару ходов слышит в ответ «Галя — моя жена».
На следующие дни задач было две: вернуть длину, не потеряв память, и найти, где именно «ваше» превращается в «моё».
2. Попытка вернуть длину ответа
Вектор «длиннее»
Первая идея — стиринг, по работе Stolfo и соавторов об управлении следованием инструкциям через активации. Берутся два прогона: один с просьбой «отвечай подробнее», другой без неё. Их разница во внутреннем состоянии модели — это «вектор инструкции». Его можно прибавлять на ходу, и модель ведёт себя так, будто просьба была.
Длину вектор частично вернул, а память уронил: 9–11 фактов из 54 против 22 у версии 1. Почему так, подсказали две работы. Tan и соавторы показали, что управляемость вектором сильно зависит от входа и на части данных почти не работает. Работа SKOP («Don't Lose Focus») объяснила, почему стиринг ломает именно извлечение: он сдвигает совпадение запросов и ключей внимания.
У моей модели это видно напрямую. Вектор, прибавленный в поток, проходит через одну общую матрицу, из которой получаются запросы, ключи и значения всех голов сразу. Поэтому сдвигается всё внимание, включая головы, которые достают ваши факты. Кроме того, на сами смыслы в потоке приходится примерно треть, остальное — общая постоянная часть. Стиринг длины я закрыл.
Откат голов по одной
Тогда я стал по одной возвращать дообученные головы версии 1 к прежнему виду: какая из девяти «съела» длину? Ни одна по отдельности. Длина вернулась, только когда я откатил четыре головы слоя 21 вместе: ответы стали 101–109 токенов вместо 82–90. Но память упала до 17 из 54, и вернулись каша и залипание. Не принято.
3. Где мысль ломается на пути в ответ
RUKALLAMA перед каждым ответом думает, и мысль часто правильная: «Это его опыт, не мой». А ответ всё равно выходит «Да, Галя — это моя дача». Я решил найти точное место, где верная мысль теряется.
Я собрал 80 проверок: 20 фактов о человеке, сказанных за 0, 2, 5 и 10 ходов до вопроса. Мысль перед ответом подставлялась готовая — верная, нейтральная или неверная. С верной мыслью ответ всё равно начинался с «я» в 46 случаях из 80, с нейтральной — в 51, с неверной — в 72. Значит, верная мысль почти не помогает.
Дальше два стандартных инструмента интерпретируемости. «Логит-линза» показывает, какое слово модель «собирается» сказать на каждом слое. Подмена активаций (activation patching) показывает, что изменится в ответе, если выход одной головы или слоя взять из другого прогона. Картина получилась чёткая:
- на слоях 18–20 модель склоняется к «вы», а на слое 21 поворачивает в «я»;
- голова L21.H7 переносит из мысли в ответ слова первого лица — «мой», «мои», «меня» — и не видит стоящего рядом «не». Из мысли «это его данные, не мои» она берёт «мои»;
- есть и тяга в «я», которая от мысли вообще не зависит: эксперты-сети слоёв 21 и 18 и внимание слоя 22. Это те же места, что я нашёл ещё 20 октября, когда искал, кто тянет чужой факт на себя.
Выключить голову L21.H7 — простое решение, но оно не сработало. На пробах «я» стало меньше (36 из 80), а в живых беседах память упала до 15 из 54. Эта голова переносит из мысли и нужные факты. Точечное дообучение только этой головы отучило её читать «мои» (внимание к этому слову упало с 0.18 до 0.04), но память в беседах вышла 14 из 54. Тоже не принято.
Нашёлся и корень в данных. Шаблон мысли «Это её данные, не мои» пришёл из моего же генератора бесед, на которых я учил модель отличать чужие факты от своих. Я переписал 833 таких мысли во второе лицо («Отвечу: ваша жена работает переводчицей») и переучил ветку. Память — 14 из 54, тоже не лучше.
4. Ветка «только человек» + покрытие вопроса
Что за ветка
Ветка «только человек» стоит в модели с 22 октября. Идея взята из Memorizing Transformers (Wu и соавторы): рядом с обычным вниманием отдельный путь, который достаёт нужное из памяти. У меня этот путь работает внутри окна беседы, и ключи в нём — только из ваших реплик. Свои мысли и ответы модели ветке не видны, поэтому выдать свои слова за ваши через неё невозможно. Ветка стоит на слоях 16 и 18, по 4 головы, и подмешивает найденное в поток модели.
Что заметил
Читая проверочные беседы, я увидел, что часть потерь памяти — это не «забыла», а «не дошла». Вопрос «во сколько у меня зачёт и как препода зовут?» — модель называет Сергея Иваныча, а про время молчит. «Как дочку зовут, сколько ей и откуда поедем?» — называет только Катю. Ветка видит весь вопрос, но не помнит, какую его часть уже взяла.
Покрытие
Ровно эту беду в 2017 году решили See, Liu и Manning для автоматических пересказов: пересказ повторял одно и забывал другое. Их «покрытие» — счётчик, сколько внимания каждое слово источника уже получило. Внимание сдвигается от уже покрытого, а за повторный взгляд на то же слово модель получает штраф.
Я перенёс это на ветку. Пока модель пишет ответ, ветка копит, сколько внимания отдала каждому вашему слову, и с обучаемым весом отводит взгляд от уже прочитанного. На каждом новом ходе счётчик начинается с нуля. Считается он одинаково при обучении и при живом ответе — это проверено до 15-го знака после запятой.
Что показала проверка
Проверка — 9 бесед, каждая с тремя разными «зёрнами» случайности. В семи из них человек по ходу рассказывает о себе, а в конце спрашивает, помнит ли модель. Все ответы я читаю глазами. Счёт строгий: факт засчитан, только если назван и приписан человеку.
18 из 54
9 из 54 — само дообучение ветки портит память
15–17 из 54; вариант с ещё одним слоем 21 на вопросы о человеке часто начинал с «Я RUKALLAMA» (17 раз против 3)
15 из 54 — это и есть версия 2
Тут же нашлась важная вещь про сам замер. Один вариант не включил покрытие вовсе: его веса остались около нуля, то есть это почти точная копия версии 1. И он набрал 16, а не 18. Значит, у этой проверки разброс около ±2 из 54: модель та же, а от мелких численных различий беседа идёт чуть по-другому. Поэтому по памяти я пишу прямо: версия 2 от версии 1 на этой проверке не отличается. Отличается она в живом разговоре.
Без штрафа за повторный взгляд покрытие само не включается: модель предпочитает читать по-старому. С этим же столкнулись и авторы метода.
5. Живой разговор — почему именно она
Я поднял эту модель у себя локально — со страницей, где мысль и ответ идут потоком, — и просто поговорил с ней. Попросил скрипт на питоне для запуска самодельной ракеты с контролем по датчикам, «мне к экзамену».
- Поздоровалась живо: «Дела у меня как три копейки — ни шатко-то, ни валко. А ты чего в такой час не спишь?»
- Выдала «скрипт» и сама предложила следующий шаг: «Если хотите, могу набросать инструкцию по запуску ракеты из Python?»
- На следующем ходу эту инструкцию и написала: 486 токенов, по пунктам, с разделами «подготовка → запуск → ошибки → возможные причины → решение», и закончила сама, без обрыва.
- За пять ходов тема не уехала, и ни разу не было ни «я нейросеть на теореме…», ни присвоения чужого. На «в какой ещё области ты такая же умная?» ответила скромно: «просто собеседник-эрудит».
Код при этом выдуманный, и технику безопасности, о которой я просил, она пропустила. Но упрекать в этом модель на 853 млн параметров нельзя. Wei и соавторы в работе о цепочках рассуждений показали, что малые модели пишут гладкие, но нелогичные рассуждения, а настоящий выигрыш от рассуждений появляется у моделей около 100 млрд параметров — в сто с лишним раз крупнее. Мне важно другое: как она ведёт разговор. По манере это уровень ранних больших чат-моделей. И это KAN, обученный с нуля на одной видеокарте.
Длина ответа
У прежней версии 2 в ваших беседах с 26 октября медиана видимого ответа — 97 символов. У новой в моих проверочных беседах — 212, а в живом разговоре бывают ответы на сотни токенов. Беседы при этом разные, так что сравнение грубое. Но короче она точно не стала.
6. Из чего состоит версия 2
- База — RUKALLAMA 853M: 24 слоя, 16 голов внимания, ширина 1536. Связи — KAN на полиномах Чебышёва (обучаемая функция на каждой связи, с понижением ранга до 16). Каждый третий слой — 4 эксперта, из которых на каждый токен включаются 2, гейт по схеме DeepSeek-V3. Свой токенизатор RUKANIZER на 100 тыс. токенов.
- «Ровная 4к» — окно растянуто с 1024 до 4096 токенов масштабированием позиций (NTK, α 4) и дообучено на последовательностях до 4096 токенов.
- Девять голов копирования из версии 1 — меньше смотрят на прошлые ответы модели, меньше залипания.
- Ветка «только человек» + покрытие — то, о чём эта страница.
- PASTA — 16 голов внимания на ходу чуть сильнее смотрят на ваши реплики (метод Zhang и соавторов; коэффициент 0.01, собственный ответ модели не приглушается).
- «Мягкое ослабление» шести голов — их выход умножен на 0.5 или 1.5. Это головы, которые я нашёл 20 октября, когда искал, кто тянет чужой факт на себя.
- Мысли вырезаются из истории — в следующий ход модель видит только ваши реплики и свои ответы.
- Декод — температура 0.3, штраф повторов только по своим токенам в окне 64, сэмплер DRY 0.8 против копирования длинных кусков, запрет повтора трёх токенов подряд, потолок ответа 1000 токенов.
7. Статьи, которые пригодились
- Liu и соавторы, KAN: Kolmogorov–Arnold Networks (2024) — основа архитектуры: обучаемые функции на связях. У меня — полиномы Чебышёва вместо сплайнов, с понижением ранга.
- DeepSeek-V3 Technical Report (2024) — схема гейта экспертов в слоях-смесях.
- Peng и соавторы, YaRN (2023) — растяжка окна позиций с 1024 до 4096.
- Wu и соавторы, Memorizing Transformers (2022) — идея отдельного пути доставания рядом с обычным вниманием. Из неё выросла ветка «только человек».
- See, Liu, Manning, Get To The Point: Summarization with Pointer-Generator Networks (2017) — покрытие и штраф за повторный взгляд. Главное новое в версии 2.
- Zhang и соавторы, Tell Your Model Where to Attend: Post-hoc Attention Steering (PASTA) (2023) — подсветка реплик человека в выбранных головах на ходу.
- Stolfo и соавторы, Improving Instruction-Following in Language Models through Activation Steering (2024) — вектор «длиннее». Пробовал, длину частично вернул, память уронил; закрыто.
- Tan и соавторы, Analyzing the Generalization and Reliability of Steering Vectors (2024) и Don't Lose Focus: Activation Steering via Key-Orthogonal Projections (SKOP, 2026) — почему стиринг ненадёжен и почему он бьёт именно по извлечению фактов.
- nostalgebraist, логит-линза (2020), и Meng и соавторы, Locating and Editing Factual Associations in GPT (2022) — инструменты, которыми я нашёл поворот «вы → я» на слое 21 и голову L21.H7.
- Wei и соавторы, Chain-of-Thought Prompting Elicits Reasoning in Large Language Models (2022) — почему от 853 млн параметров не стоит ждать рабочего кода: у малых моделей рассуждения гладкие, но нелогичные.
8. Что не решено и что дальше
- Чужой факт себе. Тяга в «я» на слое 21 и в экспертах слоёв 21 и 18 никуда не делась. В проверках всё ещё встречается «Помню, как меня зовут: Андрей» в ответ на вопрос человека о себе.
- Память о собеседнике на моей проверке осталась на уровне версии 1. Чтобы различать разницу меньше ±2 фактов, проверку нужно делать шире — больше зёрен и больше бесед.
- Ваши беседы во второй версии читаю так же, как в первой: они показывают, что чинить.
Все цифры здесь — из моих проверок на конкретных выборках, часто маленьких. Это «на этой выборке вышло так», а не свойство модели вообще. KAN, свой токенизатор, свой гейт экспертов — это не стандартный трансформер, и шаблоны от больших моделей сюда переносятся плохо. Как делалась предыдущая версия — месяц работы до V11+ fixed.
↑ наверх ← к чату