Техножнец
V11. Починил то что ломало V9 в генерации. V9 RUKALLAMA взяла #1 на MERA PARus среди открытых русских моделей, обошла ruGPT-3.5 13B при $125 тренировки. И петляла в генерации как сломанная. «Я это ты!» до конца context window. Две недели я ебашил inference…
V11. Починил то что ломало V9.
Напомню.(не обольщайтесь - бенчмарк 2024 года, лол, но пока что не прыгаем выше головы!)
Она начинала осмысленно, токенов десять выдавала нормально, а потом срывалась в бесконечное повторение. «Я это ты! Я это ты! Я это ты!» пока не упрётся в лимит. Как заевшая пластинка. Две недели я писал заплатки на этапе генерации, перепробовал кучу методов. Ни один не вылечил полностью.
На
В результате(по-русски "Трясина для внимания" 1 раз посмотрел и п***ец)
Написал диагностический скрипт который измеряет силу этого залипания. Посмотрел на
Убил V10. Написал V11. Одна правка: эту самую константу перестал добавлять вовсе. Все остальные улучшения из V10 оставил.
Последний слой который в V9 был буквально сломан - в V11 все головы чистые. Максимальные значения в физиологической норме. Качество на валидации такое же как у V10,
Дальше смотрим как V11 идёт на 5000 и 10000 шагов. Если паттерн стабилен - дотренирую до конца и проверю на MERA. Должна догнать V9 по качеству но без петель в генерации.
V9 останется в истории как модель которая умела думать, но не умела говорить. V11 должна уметь и то и другое.(НАДЕЮСЬ!!!)
Напомню.
V9 RUKALLAMA это моя нейросеть для русского языка. Взяла первое место на независимом бенчмарке MERA PARus среди всех открытых русских моделей. Обошла даже модель в 15 раз больше себя. Обучил за $125 вместо типичных сотен тысяч. Казалось бы, победа. А потом я попросил её что-нибудь написать.Она начинала осмысленно, токенов десять выдавала нормально, а потом срывалась в бесконечное повторение. «Я это ты! Я это ты! Я это ты!» пока не упрётся в лимит. Как заевшая пластинка. Две недели я писал заплатки на этапе генерации, перепробовал кучу методов. Ни один не вылечил полностью.
Тогда собрал совет из десяти ИИ-агентов, каждый независимо анализировал архитектуру. Они сошлись на красивой теории: дескать, одна из нелинейных функций в модели переходит в насыщение, и слой начинает выдавать константу вместо осмысленного преобразования. Звучало логично, математика сходилась. Запустил V10 с четырьмя исправлениями в этом направлении.На
9% обучения V10 снова начала делать мозга и жёстко петлять, но уже просто символами.Тогда я вернулся к диагнозу от Gemini 3.1 Pro который раньше пропустил мимо ушей. Он показывал на другое место кода - механизм кодирования позиций в тексте.
Суть на пальцах. Когда нейросеть обрабатывает текст, ей нужно понимать какое слово стоит первым, каким вторым, и так далее. Для этого есть математический приём - каждой позиции присваивается поворот в многомерном пространстве. Это работает если в слова не добавлять никаких констант перед поворотом.А в моём коде константа добавлялась. И когда всё это вращалось вместе, возникал паразитный сигнал. Постоянный шум который не зависел от содержания текста - только от позиций. По 24 слоям модели этот шум накапливался, усиливался, и в какой-то момент начинал побеждать настоящий сигнал от слов.В результате
головы внимания модели залипали на самом первом токене текста. Постоянно туда смотрели независимо от того, о чём сейчас речь. Модель переставала «видеть» последние десять сгенерированных слов. Не видела что повторяется. Копировала сама себя по кругу. Attention sink это называется на жаргоне. Написал диагностический скрипт который измеряет силу этого залипания. Посмотрел на
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🔥18⚡16👍9🕊3👏2
Давно не общались...в общем, синтеты! Какие дела с
Да...на самом деле всё окей! Повторы реально побеждены, т.к. на ранней стадии при температуре 0.3 модель уже уходить ОТ ЛЮБОЙ ПЕТЛИ! Результат = грандиозный в рамках этой модели.
Удалось достичь
Если хотите тех анализ, то вот подробнее:
Вчера показал как починил
Четыре классических диагноза большой языковой модели. Привычных настолько что в литературе про них пишут как про неизбежные особенности архитектуры.
Четыре архитектурных правки. Каждая одной-двумя строками кода.
Attention sink.
MoE. Все 32 эксперта живы:
Диапазон 12-38%, ещё ровнее чем на step 2800. Слои
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 это подтверждает) —
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👍8❤2🕊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
👍24❤2🕊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 это
Val (валидация), val_loss. Отдельный кусок текста который модель никогда не видела. Периодически её на нём проверяют, чтобы понять насколько хорошо обобщает, а не зазубрила.
━━━━━━━━━━━━━━━━━━━━
🔬 ДИАГНОСТИКА
Probe. Буквально «зонд» или «проба». Диагностический скрипт, который я сам пишу чтобы заглянуть внутрь работающей модели. Как УЗИ для нейросети. Загоняю тестовый текст и смотрю не что она выдала на выходе, а что у неё в этот момент внутри: на какие токены смотрит каждая голова внимания, какие значения на слоях, куда течёт сигнал.
Token (токен). Кусочек текста с которым работает модель. Не всегда слово — обычно части слов. «Привет» может быть одним токеном, «выковыривать» тремя.
Epsilon / avg / max.Avg показывает систематическую болезнь, max показывает эпизодические всплески которые для здоровой модели нормальны.
━━━━━━━━━━━━━━━━━━━━
🧠 ВНУТРЕННОСТИ ТРАНСФОРМЕРА
Attention (внимание), attention head (голова внимания). Механизм через который нейросеть решает на какие слова текста сейчас смотреть. У модели много таких голов (у меня 16 на слой), каждая специализируется: одна отслеживает кто кого упомянул, другая согласование родов, третья смысловую связь между далёкими фразами.
Q, K (Query, Key — запрос и ключ). Внутри attention каждый токен превращается в три вектора: Query (на что я хочу посмотреть), Key (что я из себя представляю для других), Value (что я передам если на меня посмотрят). Attention sink возникал именно в Q и K — поэтому
Pos 0 (нулевая позиция). Первый токен в последовательности. Обычно служебный токен типа BOS (Begin Of Sequence).У него особое свойство в RoPE: самая медленная частота поворота, чуть-чуть «отличается» от всех остальных. Если в модели есть баг — он первым становится сборщиком залипшего внимания.
RoPE (Rotary Position Embedding — ротационное позиционное кодирование). Способ сказать модели где какое слово стоит в предложении. Работает через математический поворот векторов: первому слову нулевой угол, второму маленький, третьему побольше.Важное свойство: если правильно применить RoPE, модель понимает только относительное расстояние между словами, а не абсолютные позиции. Современный стандарт, используется во всех топовых моделях.
FFN (Feed-Forward Network, полносвязная сеть). Вторая половина каждого блока трансформера после attention. Attention решает «на что смотреть», FFN решает «что с этим делать». Простая сеть из двух линейных слоёв с нелинейностью посередине. У меня нелинейность это tanh плюс Чебышевские базисы — это и есть TrueKAN.
Технический пост был густой, много английских слов и сокращений. Тут каждое разобрано абзацем на пальцах. Серым можно тыкать, раскроется — это опциональные углубления для тех кому интересно.
━━━━━━━━━━━━━━━━━━━━
🏷 ВЕРСИИ И БАЗОВЫЕ МЕТРИКИ
V9, V10, V11. Версии моей модели, как iPhone 14, 15, 16. V9 первая успешная — взяла первое место на русском бенчмарке, но петляла в генерации. V10 попытка починить, провалилась. V11 текущая версия, в которой болезни устранены.
Параметр, 853M. Число обучаемых чисел в модели. 853 миллиона параметров.
$125. Столько стоила тренировка V9 в пересчёте на аренду GPU-часов.
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, эпизодическая вспышка. ━━━━━━━━━━━━━━━━━━━━
🧠 ВНУТРЕННОСТИ ТРАНСФОРМЕРА
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 (Rotary Position Embedding — ротационное позиционное кодирование). Способ сказать модели где какое слово стоит в предложении. Работает через математический поворот векторов: первому слову нулевой угол, второму маленький, третьему побольше.
FFN (Feed-Forward Network, полносвязная сеть). Вторая половина каждого блока трансформера после attention. Attention решает «на что смотреть», FFN решает «что с этим делать». Простая сеть из двух линейных слоёв с нелинейностью посередине. У меня нелинейность это tanh плюс Чебышевские базисы — это и есть TrueKAN.
✍12❤7👍5👏4🔥1🕊1
TrueKAN (Kolmogorov-Arnold Network). Архитектурная альтернатива обычным нейросетям, построенная на теореме Колмогорова-Арнольда о представлении функций. Вместо фиксированных активаций учит сами активации, раскладывая их по базисам. В моём варианте базисы это полиномы Чебышева. Тема свежая, 2024-2025 год.
.down слой. Внутри FFN две линейные операции:
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.
.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 (остаточный поток). Главная магистраль сигнала в трансформере. Каждый слой не заменяет предыдущее состояние, а добавляет к нему свой вклад. Как накопительный счёт: кладёшь понемногу с каждого слоя, к концу модели там итоговая информация.
━━━━━━━━━━━━━━━━━━━━
⚠️ ПАТОЛОГИИ
Attention sink (сток внимания). Патологическое поведение, когда механизм внимания залипает на одном токене (обычно первом) и смотрит туда всегда, независимо от контекста.
Saturation (насыщение). Когда функция упирается в свой предел и перестаёт различать разницу во входе. Как передержанная фотография, где белое стало просто белым и деталей уже не видать. Tanh saturation в моей модели убивал FFN: функция становилась константой, слой выдавал одно и то же независимо от входа.
Tanh (гиперболический тангенс). Математическая функция которая любое число сжимает в диапазон от минус единицы до плюс единицы. Форма похожа на растянутую букву S.
Norm inflation (раздувание нормы). Когда длина сигнала растёт от слоя к слою бесконтрольно.
Gradient (градиент). Направление в котором надо подвинуть параметры модели чтобы ошибка уменьшилась.
━━━━━━━━━━━━━━━━━━━━
🛠 МЕТОДЫ ЛЕЧЕНИЯ
Bias (смещение). Маленькая константа, которую добавляют в нейросети к вычислениям чтобы дать модели дополнительный параметр для настройки. В большинстве мест оно полезно. В конкретном случае в моём attention перед RoPE оказалось вредным.
RMSNorm (Root Mean Square Normalization). Процедура которая приводит длину вектора к стандартному размеру без изменения направления. Как если бы взял стрелку и нормировал её до единичной длины, оставив направление. Ставят перед активациями и слоями чтобы сигнал не раздувался и не сжимался непредсказуемо.
Learnable parameter (обучаемый параметр). Число в модели, которое изначально случайное, но во время тренировки подстраивается градиентным спуском под задачу.
👍15🔥7❤2🕊1
Clip, clipping (обрезка). Операция «если число больше порога — сделай его равным порогу, иначе оставь как есть».
━━━━━━━━━━━━━━━━━━━━
🏭 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 для машинного обучения, одна из самых популярных для тренировки моделей. Стоит в районе
Speed, `7359 tok/s` (скорость, токенов в секунду). Сколько токенов модель обрабатывает за секунду на тренировке. Показатель эффективности кода на конкретном железе.Для 853M модели с MoE и KAN на A100 это нормально — не выдающееся но и не медленное.
hidden_clip_norm=1000 значит: длина residual stream не может быть больше 1000, если пытается — режем. Грубый но эффективный способ предотвратить инфляцию.━━━━━━━━━━━━━━━━━━━━
🏭 MoE (СМЕСЬ ЭКСПЕРТОВ)
MoE (Mixture of Experts). Архитектура в которой вместо одного большого FFN стоит несколько маленьких (у меня четыре на каждый MoE слой), и специальный маршрутизатор (gate) для каждого токена выбирает кого задействовать.
Expert (эксперт). Один из подмодулей MoE слоя. Маленькая отдельная сеть, которая обрабатывает только часть токенов, направленных к ней маршрутизатором. У меня 4 эксперта на слой, 8 слоёв используют MoE — итого 32 эксперта в модели.
Dead expert (мёртвый эксперт). Эксперт к которому маршрутизатор перестал отправлять токены. Получает нулевую нагрузку, не обучается, висит мёртвым грузом параметров.
MoE collapse (коллапс). Когда несколько экспертов умирают и модель по факту использует лишь часть заявленных. Вместо 4 работают 2, или 1. Теряется весь смысл MoE архитектуры.
Load balance / load balancing loss (балансировочная функция). Дополнительная штрафная функция во время тренировки, которая наказывает модель если она грузит экспертов неравномерно.
Auxiliary loss (вспомогательная функция потерь). Это и есть load balancing loss в контексте MoE, другое название.
Gate (гейт, маршрутизатор). Маленькая сеть внутри MoE слоя которая для каждого токена решает к какому эксперту его отправить. Смотрит на токен, выдаёт вероятности для каждого эксперта, выбирает самого вероятного.
Gumbel noise (шум Гумбеля). Особый вид случайности который добавляют в gate во время тренировки. Эффект: gate не всегда выбирает самого сильного эксперта, иногда случайно отправляет токен к более слабому.
━━━━━━━━━━━━━━━━━━━━
🎛 ГЕНЕРАЦИЯ И ИСПОЛЬЗОВАНИЕ
Inference (вывод, работа модели после тренировки). Когда модель уже обучена и просто используется: принимает запрос, выдаёт ответ. В противоположность training (тренировке). «Inference-патчи» это попытки починить модель постфактум, во время её работы, не меняя архитектуру и не переобучая.
Temperature, `temp=0.3` (температура). Параметр генерации текста. Когда модель выбирает следующий токен у неё есть вероятности всех вариантов. Температура это ручка:
Emergent phenomenon (эмерджентное явление). Свойство которое возникает как бы само собой в больших нейросетях, не закладывалось специально.
━━━━━━━━━━━━━━━━━━━━
💻 ЖЕЛЕЗО И ПРОЦЕСС
A100. Видеокарта Nvidia для машинного обучения, одна из самых популярных для тренировки моделей. Стоит в районе
$10,000–15,000. У меня она одна, на ней тренируются все мои модели.Speed, `7359 tok/s` (скорость, токенов в секунду). Сколько токенов модель обрабатывает за секунду на тренировке. Показатель эффективности кода на конкретном железе.
👍16❤4🕊1
PID (Process ID, идентификатор процесса). Номер процесса в операционной системе Linux. «PID
━━━━━━━━━━━━━━━━━━━━
🏛 ОРИЕНТИРЫ В ИНДУСТРИИ
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 костыли не работают на архитектурных багах.
━━━━━━━━━━━━━━━━━━━━
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, без переобучения.
━━━━━━━━━━━━━━━━━━━━
👍16❤1🕊1
Техножнец
PID (Process ID, идентификатор процесса). Номер процесса в операционной системе Linux. «PID 52935 живой» означает что процесс тренировки не упал и не завис, продолжает работать. Проверка что серверная работа за ночь не сломалась. ━━━━━━━━━━━━━━━━━━━━ 🏛 ОРИЕНТИРЫ…
Спасибо LLM за помощь в данном вопросе 😃
Сам я бы умер это писать...
Сам я бы умер это писать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👌18❤6👍3🕊1
Синтеты, это для своих.
Этот пост специально для тех кто активно занимается подобными исследованиями, и для тех кто никогда подобным не занимался. Для тех кто хочет двигаться дальше чем просто "работка с модельками". Дальше чем файнтюны на готовых стеках. Тех кто хочет делать красиво - исходя из более низких абстракций, с понимания как это устроено изнутри.
━━━━━━━━━━━━━━━━━━━━
📓 Здесь я веду свой журнал как Техножнец.
Исключительно из любви к этой работе и подобным исследованиям. Да, со стороны для спеца ультра-уровня это может выглядеть как мазохизм. Но только в ограниченных условиях и выстрадано когда своими силами - появляется понимание ценности того, что пройдено.
Надутая гордость не имеет места на фоне такой тяжёлой работы. Сил остаётся лишь на анализ и взаимодействие с самым ценным вокруг - с людьми.
━━━━━━━━━━━━━━━━━━━━
💸 Бабки, бабки.
Грязная зелёная бумажка, призванная всего лишь обслуживать нас - а по факту управляет. Люди откидывают когнитивные рамки потребления сообществ ради своих целей. Убирают денежные рамки - и тут же вставляют туда ту же самую консюмерскую логику. Поэтому и теряются в океане лжи, непонимания и отсутствия рефлексии.
━━━━━━━━━━━━━━━━━━━━
🌊 Рефлексия не должна быть мутной лужицей в ладошках, которую достаёшь из кармана когда приспичит.
Это должен быть безбрежный океан. Планета рефлексии. Где ты в первую очередь анализируешь свои шаги.
━━━━━━━━━━━━━━━━━━━━
🧠 Сообщество призвано обогатить мозг, заставить его шевелиться.
Я обогащаю прежде всего свой мозг - начни с себя, всегда. Но мне не стрёмно делиться с вами. Всё что я прохожу через @technojnec - это открытый журнал. И пусть он таким остаётся.
━━━━━━━━━━━━━━━━━━━━
Техножнец всё делает на свои средства.🥶
Если есть желание поддержать его, то вот ссылки:🫡
Этот пост специально для тех кто активно занимается подобными исследованиями, и для тех кто никогда подобным не занимался. Для тех кто хочет двигаться дальше чем просто "работка с модельками". Дальше чем файнтюны на готовых стеках. Тех кто хочет делать красиво - исходя из более низких абстракций, с понимания как это устроено изнутри.
━━━━━━━━━━━━━━━━━━━━
📓 Здесь я веду свой журнал как Техножнец.
Исключительно из любви к этой работе и подобным исследованиям. Да, со стороны для спеца ультра-уровня это может выглядеть как мазохизм. Но только в ограниченных условиях и выстрадано когда своими силами - появляется понимание ценности того, что пройдено.
Надутая гордость не имеет места на фоне такой тяжёлой работы. Сил остаётся лишь на анализ и взаимодействие с самым ценным вокруг - с людьми.
━━━━━━━━━━━━━━━━━━━━
💸 Бабки, бабки.
Грязная зелёная бумажка, призванная всего лишь обслуживать нас - а по факту управляет. Люди откидывают когнитивные рамки потребления сообществ ради своих целей. Убирают денежные рамки - и тут же вставляют туда ту же самую консюмерскую логику. Поэтому и теряются в океане лжи, непонимания и отсутствия рефлексии.
━━━━━━━━━━━━━━━━━━━━
🌊 Рефлексия не должна быть мутной лужицей в ладошках, которую достаёшь из кармана когда приспичит.
Это должен быть безбрежный океан. Планета рефлексии. Где ты в первую очередь анализируешь свои шаги.
━━━━━━━━━━━━━━━━━━━━
🧠 Сообщество призвано обогатить мозг, заставить его шевелиться.
Я обогащаю прежде всего свой мозг - начни с себя, всегда. Но мне не стрёмно делиться с вами. Всё что я прохожу через @technojnec - это открытый журнал. И пусть он таким остаётся.
━━━━━━━━━━━━━━━━━━━━
Техножнец всё делает на свои средства.
Если есть желание поддержать его, то вот ссылки:
Поддержать канал: ТБАНКПоддержать канал: ЮМАНИPlease open Telegram to view this post
VIEW IN TELEGRAM
1❤🔥26👍9❤5 3👌1🕊1🤝1🤗1
Opencraft - обновление.
Процедурный мир!
Работаю над шейдерами, применяю свои знания из генеративного дизайна до нейронных сетей и получаю неплохие результаты. Рандомизация на основе законов шейдеров и небольших изысков анимации шумами дают полноценные смотрибельные результаты.
Делаю дальше. Потом видосик покажу со звуками уже.
Процедурный мир!
Работаю над шейдерами, применяю свои знания из генеративного дизайна до нейронных сетей и получаю неплохие результаты. Рандомизация на основе законов шейдеров и небольших изысков анимации шумами дают полноценные смотрибельные результаты.
Делаю дальше. Потом видосик покажу со звуками уже.
👍29🔥5🕊1🦄1
Техножнец
Opencraft - обновление. Процедурный мир! Работаю над шейдерами, применяю свои знания из генеративного дизайна до нейронных сетей и получаю неплохие результаты. Рандомизация на основе законов шейдеров и небольших изысков анимации шумами дают полноценные…
Сейчас главная проблема это оптимизировать всю систему шейдеров и включить разные Level of Distance - потому что не всё следует показывать как есть.
🔥16🕊1
Синтеты, у меня к вам важное сообщение.Готовы ли вы,
получив задание в определённом чате, потратить собственные средства и время на создание качественных и необходимых датасетов для сегмента больших языковых моделей (LLM) в России?Моя идея в объединении синтетов, кто хочет участвовать в общий чат и создании единого репозитория, который будет пополняться значительным объёмом датасетов. Запланировано использование лучших английских датасетов по следующим направлениям:
инструкции, написание кода, математика, научные данные, а также специализированные темы, не освоенные в отечественной практике. Данные будут грамотно, точно и на высоком уровне переведены на русский язык с помощью настроенного фреймворка LLM.
Такие вещи должны как-то хоститься. А значит это, что часть участников сможет использовать собственное оборудование, другие — подписку на
Google Colab и будут вручную следить ( у кого на что хватит спецификации).Кнопки "сделать красиво" не будет. Тут нужны люди, которые непосредственно разбираются в теме.
Репозиторий будет открытым для всех - стараться будем для сообщества и , вообще, для социума.
При получении достаточного количества подтверждений от активных синтетов будет создан чат, и всем ответившим будет предоставлена ссылка в личку от Техножнеца.
Будущее развития датасетов в России планируется решать самостоятельно.Лично я
1🔥62👍10❤4🤔4🕊1
Сегодня добавлю в чат участников, там будут разделы. Все, кто отписался - поговорим с вами лично.
👏12🕊1
щас кое что буду выкладывать, поджигая жопы, а некоторых очень радуя. комьюнити начнётся здесь...это будет Github проект, который многие ждут...много раз писал об этом. как думаете, что это?
👍18❤5🕊1 1
Квоты ИИШКИ , наконец-то, пополнены.
Жду наплыва маркетолог советчиков 😃 (с совершеннолетним стажем)
Жду наплыва маркетолог советчиков 😃 (с совершеннолетним стажем)
👍27🕊1