Техножнец
4.97K subscribers
1.45K photos
253 videos
12 files
666 links
Канал моих увлечений и поделок. Всё ,что я делаю и выкладываю здесь - делается с любовью.

Поддержать канал: https://tbank.ru/cf/8Xnajl01ehm

Поддержать канал: https://yoomoney.ru/fundraise/1C86E2DGIU9.250819
Download Telegram
Синтеты, я пока что не обзавёлся бусти подпиской для тех, кто хочет поддерживать меня на постоянке. Но я это сделаю.

На самом деле у меня подошло время оплачивать кучу подписок, а я не факт , что в текущих обстоятельствах буду это осиливать также эффективно как недавно - ваше взаимодействие с этим вопросом всегда усилит тыл, а я смогу спокойно продолжать изыскания на наши интересные темы касаемо языковых моделей и многих других аспектов.

Как появится бусти, будет в режиме автоматическом это делаться и каждый сможет себе выбрать свою, а пока что вот так.

Техножнец всё делает на свои средства. 🥶
Если есть желание поддержать его, то вот ссылки: 🫡

Поддержать канал: ТБАНК
Поддержать канал: ЮМАНИ
Please open Telegram to view this post
VIEW IN TELEGRAM
1👌3061
Можно пошутить на тему того, что наш видос с Павлом Paperclip (про то, что у Сбера и Яндекса не совсем российские ИИ) произвел на столько эффект разорвавшейся бомбы, что пришлось начать срочный антикриз со стороны лично Германа Грефа, выпустив аж обложку журнала и статью на Forbes с заголовком

Суверенный ИИ Германа Грефа: станет ли «Сбер» «русским Huawei»


Но мы же адекватные люди, которые просто любят юмор и
прекрасно понимают, что вклад Сбера в российский и суверенный ИИ - просто колоссальный

Об этом публично молчат, но знайте, что мне однажды приснилось, что Сбер разрабатывает свой чип для ИИ. Российский. Суверенный. Надеюсь, мой сон когда-нибудь станет вещим (например, в этом году?) Хорошо, что это просто бред блогера какого-то про его сны, а не реальная инфа

Сбер реально обеспечил много госзадач применением доверенной модели ИИ

Из статьи, кстати, можно вытащить интересную цифру в 350 млрд. рублей, которые Сбер потратит в 2026 году на обучение ИИ:

Мы увеличиваем наши вложения в обучение моделей, и в ближайшие годы нам никуда от этого не деться, мы будем видеть опережающий рост


Все разработки лично курирует Герман Греф, включая создание робота Грина и моделей ГигаЧат на собственной архитектуре

Цель — собрать полностью российские технологии, чтобы не зависеть от чужого софта

Сейчас Сбер — топ-1 интегратор и архитектор всей ИИ-повестки в стране

Гигачат запустили в космос на помощь нашим космонавтам, о чем нам недавно рассказал уважаемый первый зампред Правительства РФ Денис Мантуров (а вы думали я просто так вам там аж три поста напилил из видоса Дениса Валентиновича?) и на Гигачат делают ставку в госкорпорации Роскосмос (и не только)

И еще миллиард фактов могу привести, что вклад Сбера в цифровой суверенитет очень и очень большой

Статью стоит почитать, там много интересного, хотя бы ради того, чтобы оценить что еще планируют сделать в России в области ИИ

И да, Павел тоже говорил про интересные "совпадения", где в видосе он привел некоторые недочеты ИИ от Сбера и Яндекса и сразу после видоса вышли обновления для Алисы и ГигаЧата с устранением именно этих пробелов, упомянутых Павлом

Опять совпадение, скажете вы?

Подпишитесь на меня в МАХ, скажу я, ведь у меня такие Инсайды, ответы на которые пилят Первые люди по ИИ в России: https://max.ru/imaxairu

Telegram | Дзен | MAX
👏45🔥147👍43😱2🐳2👾22
ИИШКА будет скоро доступна.
1🔥6693👍2
Техножнец pinned «Синтеты, я пока что не обзавёлся бусти подпиской для тех, кто хочет поддерживать меня на постоянке. Но я это сделаю. На самом деле у меня подошло время оплачивать кучу подписок, а я не факт , что в текущих обстоятельствах буду это осиливать также эффективно…»
Буду откровенен, не имею средств пополнить ИИШКУ и прочее платное.

Ожидайте.


Остальное, что не зависит от средств - тренируется - Rukallama и прочее на CPU в процессе. Что смог через пейпал оплатил.

подробнее
1🙏24🤝81
V9 RUKALLAMA. Путь, который я бы никому не пожелал.

Столько месяцев я угорал над этой моделью. 853M, TrueKAN K=3, 8.3 миллиарда токенов. MERA PARus 58%. Первое место среди всех открытых русских моделей. Обошли даже ruGPT-3.5 на 13B. $125 против $336,000 на обучение. Триумф, да?
А потом я запустил генерацию.

Модель выдавала 10-20 осмысленных токенов и срывалась в бесконечные петли. «Я это ты!» × ∞. На temp=0.1, без всяких penalties, чистый жесткач. В диалогах 0/9 без петель. Ну, подумал, sampling кривой, щас починим.

Хуй там.

Дальше марафон отчаяния. Anticyclone (три слоя защиты на logits). Deep X-Ray V1 смотреть hidden states. V2 микроскоп внимания по головам и слоям. Консультация с Gemini 3.1 Pro. Attention Surgeon. Defibrillator V1, V2, V3, V5, V6. Weight Surgery. SVD Truncation. SVD Clamping. Layer Skip. Loop Subspace Projection. Break Weight Tying. Dynamic Layer Dropout. Spectral Analysis. 10 параллельных агентов в ATTENTION_TESTS/. 19 методов inference интервенции.

Ни один не вылечил без потери качества. Ни один, блядь.

Консенсус 10 агентов: корень архитектурный. tanh saturation в TrueKAN .down слоях. Probe показал 52-90% размерностей >0.99. Три базиса Чебышева (T0, T1, T2) при tanh→±1 схлопываются в два. FFN .down становится константой. Модель превращается в конечный автомат.

Такие дела.

И это ещё не всё. Hidden state norm раздувалась от слоя 0 к слою 23 в 6.8 раз (238→1606), прыжки на каждом MoE слое. MoE эксперты ломались: из 32 экспертов (8 MoE × 4) слой h.6 использовал 2 из 4 в режиме 50-50, h.12 и h.15 перекошены. Load balancing loss 0.01 оказался слишком слабым.

И знаете что добило? GRPO, Pretrain, First SFT... чекпоинты ДО reasoning SFT тоже петляли 0/10.
То есть данные не виноваты. Виновата архитектура. Точка.

Сейчас ебашу V10.


Четыре правки по итогам ablation V9:


hidden_clip_norm=1000. Норма больше не распухает.
Встроенный SaturatedRMSNorm (pretanh_scale как nn.Parameter) перед tanh в .down. Никакого залипания.
MoE load_balance 0.01 → 0.05. В пять раз сильнее.
Gumbel noise 0.1 в гейте MoE на тренировке. Ломает ранние коллапсы.


Шаг 2900/33,733 (8.6%). Все 32 эксперта живы во всех 8 MoE слоях. Норма hidden state ratio 1.2x вместо 6.8x у V9. pretanh_scale дрейфует 0.91-1.04, ровно как должно. 😳

V9 остаётся в истории. 

#1 на PARus, первая русская KAN, 853M побила 13B. Это никуда не денется. Но в прод её не вывезти: умела думать, не умела говорить без петель.

V10 обязана уметь и то, и другое.


Техножнец всё делает на свои средства. 🥶
Если есть желание поддержать его, то вот ссылки: 🫡

Поддержать канал: ТБАНК
Поддержать канал: ЮМАНИ
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍32🔥114🙏3🤯2🕊1
Техножнец
V9 RUKALLAMA. Путь, который я бы никому не пожелал. Столько месяцев я угорал над этой моделью. 853M, TrueKAN K=3, 8.3 миллиарда токенов. MERA PARus 58%. Первое место среди всех открытых русских моделей. Обошли даже ruGPT-3.5 на 13B. $125 против $336,000 на…
и тут же поймал новый баг. аттеншн синк - починил. 1 строчка...но..уже трясёт. (всё ок, просто ж***а сгорает)

Техножнец всё делает на свои средства. 🥶
Если есть желание поддержать его, то вот ссылки: 🫡

Поддержать канал: ТБАНК
Поддержать канал: ЮМАНИ
Please open Telegram to view this post
VIEW IN TELEGRAM
114👍86🤝3🙏2🕊1💯1🤗1
Техножнец pinned «Буду откровенен, не имею средств пополнить ИИШКУ и прочее платное. Ожидайте. Остальное, что не зависит от средств - тренируется - Rukallama и прочее на CPU в процессе. Что смог через пейпал оплатил. подробнее»
Оплатил ИИШКУ, щас очнётся.

Добрый день .
136👍24🤝7🕊1
This media is not supported in your browser
VIEW IN TELEGRAM
Админ думает...щас будут размышления.
1👍30🤩6🥰2🕊1
V11. Починил то что ломало V9 в генерации.

V9 RUKALLAMA взяла #1 на MERA PARus среди открытых русских моделей, обошла ruGPT-3.5 13B при $125 тренировки. И петляла в генерации как сломанная. «Я это ты!» до конца context window. Две недели я ебашил inference-фиксы, 19 + 2 методов, ни один не вылечил без потери качества.

Диагноз от консенсуса 10 агентов тогда был: tanh saturation в TrueKAN .down слоях, Чебышев схлопывается, FFN становится константой. Красивая теория, я в неё поверил. Запустил V10 с четырьмя фиксами по FFN/MoE. На 9% трейна уже петляло.

Тогда я вернулся к старой диагностике Gemini 3.1 Pro которую раньше пропустил мимо ушей.

В attention.py строка:

q = q * scale + bias
k = k * scale + bias
q = _apply_rope(q)
k = _apply_rope(k)


Bias применяется до RoPE. Это значит после поворота ты получаешь RoPE(q_content) + RoPE(bias). Второе слагаемое не зависит от токена, но зависит от позиции. В dot-product между двумя токенами на позициях m и n это даёт постоянный фоновый член RoPE_m(b_q) · RoPE_n(b_k) - чистый позиционный шум, одинаковый для всех пар токенов на данных позициях.

Этот шум накапливается через residual stream по 24 слоям. Softmax нелинейный, малые систематические смещения в глубоких слоях побеждают content-сигнал. Головы фиксируются на pos 0 потому что там самая медленная частота RoPE. Attention sink.

Отсюда и петли: модель перестаёт видеть последние 10 токенов, self-token attention усиливает копирование, lock-in (закрепление, фокусировка).

Пишу probe V10 step 2000:

L2 H1 уже sink 28% avg. L0-L2 шумит, L10/L12/L15 эпизодические пики до 95%. На 8.6% тренировки паттерн уже проклюнулся. До V9-масштаба (L23 четыре головы по 25-40%) ещё не дорос, но механизм работает.

Убиваю V10. Пишу V11.

Одно изменение: флаг use_qk_bias=False, bias параметры не создаются вообще, строки применения убраны. Остальные V10 фиксы (MoE load_balance 0.05, Gumbel 0.1, hidden_clip_norm) остаются.

V11 step 2000 probe:

V9 final L23: H0/H5/H11/H14 = 25-40% sink (4 головы)
V10 step2K L2: H1 = 28% sink (1 голова)
V11 step2K: ноль голов > 25% avg


L23 в V9 был мёртв, в V11 все головы avg ≤0.08. Max spike 0.79 на один токен - это физиология, голова один раз сфокусировалась на конкретном сигнале. L2 где V10 уже подсел - в V11 max avg 0.03. Чисто.

Val loss 5.777 vs V10 5.81 на том же шаге. 98K bias параметров потеряли, loss не заметил. То есть bias учил ровно тот паразитный сигнал который мы хотели убрать. Сохранять его было бы сохранением бага.

Первый инстинкт «красивая теория = правильный диагноз» чуть не угробил ещё один рантайм. Tanh/Чебышёв объяснение было элегантным и математически чистым, консенсус 10 агентов в него упёрся, я тоже упёрся. А настоящий баг был грязнее, без красивой story, и лежал в файле который никто толком не смотрел потому что attention это не «интересная часть» архитектуры.


Дальше probe на 5K и 10K шагов. Если паттерн стабилен до трети трейна - V11 здорова и можно дотренивать до конца. Потом на MERA посмотрим, догонит ли V11 до уровня V9 по PARus при нормальной генерации.

Техножнец всё делает на свои средства. 🥶
Если есть желание поддержать его, то вот ссылки: 🫡

Поддержать канал: ТБАНК
Поддержать канал: ЮМАНИ
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍158🔥6🕊1
Техножнец
V11. Починил то что ломало V9 в генерации. V9 RUKALLAMA взяла #1 на MERA PARus среди открытых русских моделей, обошла ruGPT-3.5 13B при $125 тренировки. И петляла в генерации как сломанная. «Я это ты!» до конца context window. Две недели я ебашил inference…
V11. Починил то что ломало V9.

Напомню. V9 RUKALLAMA это моя нейросеть для русского языка. Взяла первое место на независимом бенчмарке MERA PARus среди всех открытых русских моделей. Обошла даже модель в 15 раз больше себя. Обучил за $125 вместо типичных сотен тысяч. Казалось бы, победа. (не обольщайтесь - бенчмарк 2024 года, лол, но пока что не прыгаем выше головы!)

А потом я попросил её что-нибудь написать.
Она начинала осмысленно, токенов десять выдавала нормально, а потом срывалась в бесконечное повторение. «Я это ты! Я это ты! Я это ты!» пока не упрётся в лимит. Как заевшая пластинка. Две недели я писал заплатки на этапе генерации, перепробовал кучу методов. Ни один не вылечил полностью.

Тогда собрал совет из десяти ИИ-агентов, каждый независимо анализировал архитектуру. Они сошлись на красивой теории: дескать, одна из нелинейных функций в модели переходит в насыщение, и слой начинает выдавать константу вместо осмысленного преобразования. Звучало логично, математика сходилась. Запустил V10 с четырьмя исправлениями в этом направлении.

На 9% обучения V10 снова начала делать мозга и жёстко петлять, но уже просто символами.

Тогда я вернулся к диагнозу от Gemini 3.1 Pro который раньше пропустил мимо ушей. Он показывал на другое место кода - механизм кодирования позиций в тексте.


Суть на пальцах. Когда нейросеть обрабатывает текст, ей нужно понимать какое слово стоит первым, каким вторым, и так далее. Для этого есть математический приём - каждой позиции присваивается поворот в многомерном пространстве. Это работает если в слова не добавлять никаких констант перед поворотом.

А в моём коде константа добавлялась. И когда всё это вращалось вместе, возникал паразитный сигнал. Постоянный шум который не зависел от содержания текста - только от позиций. По 24 слоям модели этот шум накапливался, усиливался, и в какой-то момент начинал побеждать настоящий сигнал от слов.

В результате головы внимания модели залипали на самом первом токене текста. Постоянно туда смотрели независимо от того, о чём сейчас речь. Модель переставала «видеть» последние десять сгенерированных слов. Не видела что повторяется. Копировала сама себя по кругу. Attention sink это называется на жаргоне. (по-русски "Трясина для внимания" 1 раз посмотрел и п***ец)

Написал диагностический скрипт который измеряет силу этого залипания. Посмотрел на V10 на 2000 шагов обучения. Паттерн уже проклюнулся: одна голова внимания в неглубоком слое уже сидит на первом токене на 28% времени, в средних слоях спорадические вспышки до 95%. До масштаба V9 ещё не доросло, но механизм работает.

Убил V10. Написал V11. Одна правка: эту самую константу перестал добавлять вовсе. Все остальные улучшения из V10 оставил.

V11 на 2000 шагов показывает:

V9 в конце: четыре мёртвые головы в последнем слое, залипание 25-40%
V10 на 2000: одна голова, 28%
V11 на 2000: ноль голов с систематическим залипанием

Последний слой который в V9 был буквально сломан - в V11 все головы чистые. Максимальные значения в физиологической норме. Качество на валидации такое же как у V10, несмотря на то что я удалил почти сто тысяч параметров. (хотя это не так очевидно связано..)

Главный урок для меня. Первая красивая теория почти угробила ещё один запуск. Она была математически элегантная, десять агентов с ней согласились, я тоже. А настоящий баг был некрасивый, без изящной истории, и лежал в файле который никто толком не смотрел. Потому что вроде как «там ничего интересного».

Дальше смотрим как V11 идёт на 5000 и 10000 шагов. Если паттерн стабилен - дотренирую до конца и проверю на MERA. Должна догнать V9 по качеству но без петель в генерации.

V9 останется в истории как модель которая умела думать, но не умела говорить. V11 должна уметь и то и другое. (НАДЕЮСЬ!!!)

Техножнец всё делает на свои средства. 🥶
Если есть желание поддержать его, то вот ссылки: 🫡

Поддержать канал: ТБАНК
Поддержать канал: ЮМАНИ
Please open Telegram to view this post
VIEW IN TELEGRAM
46🔥1816👍9🕊3👏2
Доброе "утро"...
🤝25👀11🫡6🥰2🕊1🦄1
Давно не общались...в общем, синтеты! Какие дела с RUKALLAMA V11?

Да...на самом деле всё окей! Повторы реально побеждены, т.к. на ранней стадии при температуре 0.3 модель уже уходить ОТ ЛЮБОЙ ПЕТЛИ! Результат = грандиозный в рамках этой модели.

Удалось достичь "АБСОЛЮТНОГО ОТСУТСТВИЯ" attention sink и других проблем в архитектуре.

Если хотите тех анализ, то вот подробнее:

Вчера показал как починил attention sink в V11 через удаление bias перед RoPE. Сегодня вернулся с полным отчётом probe на step 2800 (val 5.43). Потому что sink это была не единственная болезнь V9. Их было четыре.

Что болело в V9.

Четыре классических диагноза большой языковой модели. Привычных настолько что в литературе про них пишут как про неизбежные особенности архитектуры.

Attention sink. Четыре головы в последнем слое отдавали 25-40% внимания на первый токен независимо от контекста. Модель теряла последние десять сгенерированных слов, не видела повторения, срывалась в бесконечные петли.

Tanh saturation в .down слоях TrueKAN. От 52 до 90% размерностей залипали на значениях выше 0.99. Функция превращалась в константу, FFN выдавал одно и то же на любой вход.

Hidden norm inflation. Норма residual stream росла в 6.8 раз от слоя 0 к слою 23 (238 → 1606), со скачками на каждом MoE блоке. Градиенты взрывались, глубина становилась шумом.

MoE collapse. Эксперты умирали. Слой h.6 в V9 использовал два эксперта из четырёх в режиме 50-50, остальные два простаивали мёртвым грузом.


Что сделал в V11.

Четыре архитектурных правки. Каждая одной-двумя строками кода.

use_qk_bias=False в attention.py. Убрал bias из Q/K перед RoPE. Вращать константу перестали, паразитный позиционный член исчез математически. Attention sink устраняется на уровне архитектуры, не пост-фактум.

pretanh_norm_down=True в truekan/layer.py. Встроенный RMSNorm перед tanh в .down слоях с learnable pretanh_scale. Сигнал не уходит в зону насыщения.

hidden_clip_norm=1000 в block.py. Clip нормы residual после каждого блока. Инфляция физически невозможна.

MoE load_balance 0.01 → 0.05 плюс Gumbel noise 0.1 в gate во время тренировки. Auxiliary loss усилен в 5 раз, случайность ломает ранние жадные коллапсы. Эксперты не слипаются.

Probe V11 на step 3600, результаты.


Attention sink. Ноль голов из 384 (24 слоя × 16 голов) с avg выше 25% на pos 0. Максимальное значение avg во всей модели: L19 H14 = 0.21. Близко к порогу, но не sink. V9 в этой зоне имел четыре головы по 25-40%.

MoE. Все 32 эксперта живы:

h.0 E0:38% E1:26% E2:14% E3:21%
h.3 E0:37% E1:17% E2:32% E3:14%
h.6 E0:20% E1:16% E2:32% E3:33% ← V9 тут был 50-50 binary
h.9 E0:22% E1:26% E2:25% E3:26% ← почти идеальный баланс
h.12 E0:26% E1:28% E2:22% E3:24%
h.15 E0:29% E1:21% E2:25% E3:25%
h.18 E0:12% E1:33% E2:25% E3:30%
h.21 E0:25% E1:12% E2:32% E3:32%


Диапазон 12-38%, ещё ровнее чем на step 2800. Слои h.9 и h.12 вышли на почти идеальный баланс между четырьмя экспертами.
Pretanh_scale в 48 TrueKAN .down слоях. Все 48 значений в диапазоне [0.8878, 1.0678], среднее 0.981. Tanh работает в линейной зоне. V9 52-90% dims >0.99 исчезли.

Hidden norms. Range 791 → 1000, ratio 1.26x. Clip срезает раздутие начиная с L3. V9 имел 6.8x.

За тысячу шагов val упал на 0.28. Все четыре болезни остаются устранёнными. MoE распределение стало ровнее. Hidden norm стабильнее. Единственное изменение — максимальная avg голова подросла с 0.15 до 0.21, всё ещё в здоровом диапазоне.

Про генерацию.


На temp=0.3 пробный текст сейчас такой:

не государство, а государство, а государство — это государство.
— Ответ: В чём разница между государством?
— Ответ: В какой стране существует власть, а в какой стране они находятся?


Первое предложение петляет на одном слове. Но это не attention sink (probe это подтверждает) — это стилистический артефакт раннего трейна. После точки модель восстанавливается и ведёт псевдо-осмысленный диалог. V9 в подобной ситуации не восстанавливалась, срывалась в петлю до конца контекста!!!

Техножнец всё делает на свои средства. 🥶
Если есть желание поддержать его, то вот ссылки: 🫡

Поддержать канал:ТБАНК
Поддержать канал:ЮМАНИ
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍82🕊1
Что это значит?

Большинство болячек 853M трансформера это не emergent проблемы, которые надо лечить пост-фактум костылями. Это прямые следствия неправильной архитектуры, которые убираются одной строкой если понимать механизм.

Но, Техножнец, тебе писали, что это костыли!! Тебе писали, что надо делать правильно изначально!!!

Так, я отвечал прямо - пока не убедимся на конкретных исследованиях со всех сторон в чём-то = делать выводы РАНО! Нужна эмпирика и только эмпирика, остальное это шум, который создан для самоуспокоения.

На V9 я две недели писал inference-патчи. Anticyclone. Defibrillator V1-V6. Attention Surgeon. SVD Truncation. Layer Skip. 19 методов. Ни один не сработал. Потому что нельзя починить на инференсе то что сломано в архитектуре.


Потрачено ли время зря? Конечно, НЕТ! Наоборот - я убедился для себя в очередной раз о схожести проблем и в конкретике и детерменированности проблемы. И то - у меня есть сомнения, что где-то ещё зарыта собака. Хотелось бы верить, что теперь всё будет окей.

Где находимся.

Step 3800 из 33733. 11.3% пройдено. Val 5.15. Кривая идёт вниз без плато. Следующая контрольная проба на step 5000, потом 10K и 20K. Если паттерн держится — V11 досидит до конца без сюрпризов.

Техножнец всё делает на свои средства. 🥶
Если есть желание поддержать его, то вот ссылки: 🫡

Поддержать канал: ТБАНК
Поддержать канал: ЮМАНИ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍242🕊1
📖 СЛОВАРЬ ТЕРМИНОВ К ПОСТУ ПРО V11

Технический пост был густой, много английских слов и сокращений. Тут каждое разобрано абзацем на пальцах. Серым можно тыкать, раскроется — это опциональные углубления для тех кому интересно.

━━━━━━━━━━━━━━━━━━━━

🏷 ВЕРСИИ И БАЗОВЫЕ МЕТРИКИ

V9, V10, V11. Версии моей модели, как iPhone 14, 15, 16. V9 первая успешная — взяла первое место на русском бенчмарке, но петляла в генерации. V10 попытка починить, провалилась. V11 текущая версия, в которой болезни устранены.

Параметр, 853M. Число обучаемых чисел в модели. 853 миллиона параметров. Для сравнения: GPT-3 это 175 миллиардов (в 200 раз больше моей), ruGPT-3.5 это 13 миллиардов (в 15 раз больше моей). А я их всех обошёл на русском бенчмарке за $125.

$125. Столько стоила тренировка V9 в пересчёте на аренду GPU-часов. У меня своя A100, так что реально это электричество и амортизация, но в рыночных ценах это примерно $125. Для сравнения: тренировка GPT-3 оценивалась в несколько миллионов долларов.

Step (шаг). Один шаг тренировки. Модель получила порцию данных, посчитала ошибку, обновила веса чуть-чуть в сторону правильных ответов. Вся тренировка V11 это 33733 таких шагов. На каждом шаге модель немного умнеет.

Val (валидация), val_loss. Отдельный кусок текста который модель никогда не видела. Периодически её на нём проверяют, чтобы понять насколько хорошо обобщает, а не зазубрила. val_loss это число ошибки: чем меньше тем лучше. 5.43 хуже чем 3.49.

━━━━━━━━━━━━━━━━━━━━

🔬 ДИАГНОСТИКА

Probe. Буквально «зонд» или «проба». Диагностический скрипт, который я сам пишу чтобы заглянуть внутрь работающей модели. Как УЗИ для нейросети. Загоняю тестовый текст и смотрю не что она выдала на выходе, а что у неё в этот момент внутри: на какие токены смотрит каждая голова внимания, какие значения на слоях, куда течёт сигнал.

Token (токен). Кусочек текста с которым работает модель. Не всегда слово — обычно части слов. «Привет» может быть одним токеном, «выковыривать» тремя.

Epsilon / avg / max. avg — среднее значение по всем проходам probe. Голова «avg 0.15 на pos 0» отдаёт в среднем 15% внимания первому токену. max — максимальное значение за весь probe, эпизодическая вспышка. Avg показывает систематическую болезнь, max показывает эпизодические всплески которые для здоровой модели нормальны.

━━━━━━━━━━━━━━━━━━━━

🧠 ВНУТРЕННОСТИ ТРАНСФОРМЕРА

Attention (внимание), attention head (голова внимания). Механизм через который нейросеть решает на какие слова текста сейчас смотреть. У модели много таких голов (у меня 16 на слой), каждая специализируется: одна отслеживает кто кого упомянул, другая согласование родов, третья смысловую связь между далёкими фразами.

Q, K (Query, Key — запрос и ключ). Внутри attention каждый токен превращается в три вектора: Query (на что я хочу посмотреть), Key (что я из себя представляю для других), Value (что я передам если на меня посмотрят). Attention sink возникал именно в Q и K — поэтому use_qk_bias=False отключил bias только в этих двух проекциях.

Pos 0 (нулевая позиция). Первый токен в последовательности. Обычно служебный токен типа BOS (Begin Of Sequence). У него особое свойство в RoPE: самая медленная частота поворота, чуть-чуть «отличается» от всех остальных. Если в модели есть баг — он первым становится сборщиком залипшего внимания.

RoPE (Rotary Position Embedding — ротационное позиционное кодирование). Способ сказать модели где какое слово стоит в предложении. Работает через математический поворот векторов: первому слову нулевой угол, второму маленький, третьему побольше. Важное свойство: если правильно применить RoPE, модель понимает только относительное расстояние между словами, а не абсолютные позиции. Современный стандарт, используется во всех топовых моделях.

FFN (Feed-Forward Network, полносвязная сеть). Вторая половина каждого блока трансформера после attention. Attention решает «на что смотреть», FFN решает «что с этим делать». Простая сеть из двух линейных слоёв с нелинейностью посередине. У меня нелинейность это tanh плюс Чебышевские базисы — это и есть TrueKAN.
127👍5👏4🔥1🕊1
TrueKAN (Kolmogorov-Arnold Network). Архитектурная альтернатива обычным нейросетям, построенная на теореме Колмогорова-Арнольда о представлении функций. Вместо фиксированных активаций учит сами активации, раскладывая их по базисам. В моём варианте базисы это полиномы Чебышева. Тема свежая, 2024-2025 год.

.down слой. Внутри FFN две линейные операции: .up расширяет размерность сигнала (например с 1024 до 4096), .down сжимает обратно (с 4096 до 1024). В моём коде проблема была именно в .down части TrueKAN, где сигнал перед сжатием проходил через tanh и насыщался.

Dimensions (размерности). Каждый скрытый сигнал в модели это вектор из чисел. У меня длиной 1024 числа. «52-90% размерностей залипали» = из этих 1024 чисел 500-900 всегда оказывались равны почти единице, то есть вели себя как константа а не как осмысленный сигнал.

Hidden state (скрытое состояние). Внутренний сигнал который течёт от слоя к слою. На входе закодированный текст, дальше каждый слой что-то с ним делает, на выходе предсказание следующего слова. Hidden state norm это длина этого вектора — насколько он большой численно.

Residual stream (остаточный поток). Главная магистраль сигнала в трансформере. Каждый слой не заменяет предыдущее состояние, а добавляет к нему свой вклад. Как накопительный счёт: кладёшь понемногу с каждого слоя, к концу модели там итоговая информация. Норма residual stream должна расти умеренно. У меня в V9 раздувалась в 7 раз.

━━━━━━━━━━━━━━━━━━━━

⚠️ ПАТОЛОГИИ

Attention sink (сток внимания). Патологическое поведение, когда механизм внимания залипает на одном токене (обычно первом) и смотрит туда всегда, независимо от контекста. Модель как бы «сливает» своё внимание в один угол откуда оно уже не возвращается. Из-за этого она перестаёт видеть остальной текст нормально.

Saturation (насыщение). Когда функция упирается в свой предел и перестаёт различать разницу во входе. Как передержанная фотография, где белое стало просто белым и деталей уже не видать. Tanh saturation в моей модели убивал FFN: функция становилась константой, слой выдавал одно и то же независимо от входа.

Tanh (гиперболический тангенс). Математическая функция которая любое число сжимает в диапазон от минус единицы до плюс единицы. Форма похожа на растянутую букву S. Проблема: если подать слишком большое число, tanh почти упирается в единицу и перестаёт чувствовать разницу между 5 и 50. Это и есть saturation.

Norm inflation (раздувание нормы). Когда длина сигнала растёт от слоя к слою бесконтрольно. К последним слоям сигнал становится настолько большим численно, что мелкие осмысленные колебания тонут в нём. Градиенты при этом тоже взрываются, обучение ломается.

Gradient (градиент). Направление в котором надо подвинуть параметры модели чтобы ошибка уменьшилась. На каждом шаге тренировки считают градиенты, параметры сдвигаются чуть-чуть по ним. Если градиенты становятся слишком большими («взрываются»), сдвиги получаются бешеные и модель расколбашивает.

━━━━━━━━━━━━━━━━━━━━

🛠 МЕТОДЫ ЛЕЧЕНИЯ

Bias (смещение). Маленькая константа, которую добавляют в нейросети к вычислениям чтобы дать модели дополнительный параметр для настройки. В большинстве мест оно полезно. В конкретном случае в моём attention перед RoPE оказалось вредным.

RMSNorm (Root Mean Square Normalization). Процедура которая приводит длину вектора к стандартному размеру без изменения направления. Как если бы взял стрелку и нормировал её до единичной длины, оставив направление. Ставят перед активациями и слоями чтобы сигнал не раздувался и не сжимался непредсказуемо.

Learnable parameter (обучаемый параметр). Число в модели, которое изначально случайное, но во время тренировки подстраивается градиентным спуском под задачу. pretanh_scale у меня это 48 таких чисел, по одному на каждый .down слой. Они учатся сами подбирать масштаб сигнала перед tanh чтобы не уходил в saturation.
👍15🔥72🕊1
Clip, clipping (обрезка). Операция «если число больше порога — сделай его равным порогу, иначе оставь как есть». hidden_clip_norm=1000 значит: длина residual stream не может быть больше 1000, если пытается — режем. Грубый но эффективный способ предотвратить инфляцию.

━━━━━━━━━━━━━━━━━━━━

🏭 MoE (СМЕСЬ ЭКСПЕРТОВ)

MoE (Mixture of Experts). Архитектура в которой вместо одного большого FFN стоит несколько маленьких (у меня четыре на каждый MoE слой), и специальный маршрутизатор (gate) для каждого токена выбирает кого задействовать. Идея: разные эксперты специализируются на разных типах данных, модель эффективнее использует свои параметры.

Expert (эксперт). Один из подмодулей MoE слоя. Маленькая отдельная сеть, которая обрабатывает только часть токенов, направленных к ней маршрутизатором. У меня 4 эксперта на слой, 8 слоёв используют MoE — итого 32 эксперта в модели.

Dead expert (мёртвый эксперт). Эксперт к которому маршрутизатор перестал отправлять токены. Получает нулевую нагрузку, не обучается, висит мёртвым грузом параметров. Классическая болезнь MoE: возникает когда во время тренировки рано образуется «любимчик» куда всё валится, а остальные атрофируются.

MoE collapse (коллапс). Когда несколько экспертов умирают и модель по факту использует лишь часть заявленных. Вместо 4 работают 2, или 1. Теряется весь смысл MoE архитектуры.

Load balance / load balancing loss (балансировочная функция). Дополнительная штрафная функция во время тренировки, которая наказывает модель если она грузит экспертов неравномерно. У меня было 0.01 (слабый штраф), увеличил до 0.05 (в 5 раз сильнее). Теперь модель активно стремится нагружать всех поровну.

Auxiliary loss (вспомогательная функция потерь). Это и есть load balancing loss в контексте MoE, другое название. Основная функция потерь считает насколько правильно модель предсказывает следующее слово. Вспомогательная добавляет к ней штраф за дисбаланс экспертов.

Gate (гейт, маршрутизатор). Маленькая сеть внутри MoE слоя которая для каждого токена решает к какому эксперту его отправить. Смотрит на токен, выдаёт вероятности для каждого эксперта, выбирает самого вероятного.

Gumbel noise (шум Гумбеля). Особый вид случайности который добавляют в gate во время тренировки. Эффект: gate не всегда выбирает самого сильного эксперта, иногда случайно отправляет токен к более слабому. Это мешает раннему «жадному коллапсу» где один эксперт захватывает всё, и даёт всем экспертам шансы получить сигнал в начале обучения.

━━━━━━━━━━━━━━━━━━━━

🎛 ГЕНЕРАЦИЯ И ИСПОЛЬЗОВАНИЕ

Inference (вывод, работа модели после тренировки). Когда модель уже обучена и просто используется: принимает запрос, выдаёт ответ. В противоположность training (тренировке). «Inference-патчи» это попытки починить модель постфактум, во время её работы, не меняя архитектуру и не переобучая.

Temperature, `temp=0.3` (температура). Параметр генерации текста. Когда модель выбирает следующий токен у неё есть вероятности всех вариантов. Температура это ручка: низкая (`0.1–0.3`) — всегда самое вероятное, детерминировано, но залипает на шаблонах. Высокая (`0.8–1.2`) — больше случайности, креативнее, но может нести пургу. `temp=0.3` это «слегка разнообразно, но консервативно».

Emergent phenomenon (эмерджентное явление). Свойство которое возникает как бы само собой в больших нейросетях, не закладывалось специально. В литературе attention sink часто называют emergent. Я утверждаю что нет — он не emergent, а архитектурно вынужденный через кривой порядок операций.

━━━━━━━━━━━━━━━━━━━━

💻 ЖЕЛЕЗО И ПРОЦЕСС

A100. Видеокарта Nvidia для машинного обучения, одна из самых популярных для тренировки моделей. Стоит в районе $10,000–15,000. У меня она одна, на ней тренируются все мои модели.

Speed, `7359 tok/s` (скорость, токенов в секунду). Сколько токенов модель обрабатывает за секунду на тренировке. Показатель эффективности кода на конкретном железе. Для 853M модели с MoE и KAN на A100 это нормально — не выдающееся но и не медленное.
👍164🕊1
PID (Process ID, идентификатор процесса). Номер процесса в операционной системе Linux. «PID 52935 живой» означает что процесс тренировки не упал и не завис, продолжает работать. Проверка что серверная работа за ночь не сломалась.

━━━━━━━━━━━━━━━━━━━━

🏛 ОРИЕНТИРЫ В ИНДУСТРИИ

Llama, Mistral. Две самые известные открытые серии больших языковых моделей: от Meta и от французской компании Mistral AI соответственно. Индустриальный стандарт архитектуры. Если какая-то деталь «как в Llama» — значит проверенная годами работа.

Open-source. Открытый исходный код. Модель которую любой может скачать, посмотреть, использовать. В противоположность закрытым моделям типа GPT-4, Claude или Gemini, где ты можешь только отправлять запросы через API.

Architectural vs post-factum (архитектурный vs пост-фактум). Architectural fix = починка в самом строении модели, требует переобучения. Post-factum fix = попытка залепить проблему уже обученной модели через модификации inference, без переобучения. Мой вывод поста: post-factum костыли не работают на архитектурных багах.

━━━━━━━━━━━━━━━━━━━━
👍161🕊1