Спасибо почитал, да вижу что в ViT это убрало проблему больших значений в классическом Attention при большом кол-ве блоков.
Но это компромисс, так как теряется информация о норме вектора. И как замечают на разных площадках, такой поход снижает "остроту" внимания, модель хуже работает на инференсе. И из того, что я вижу в других работах, там как раз пытаются решить эту проблему нормализации, через добавление обучаемой температуры:
Swin Transformer V2: Softmax(τ*cos(Q,K)+B)V , τ - температура
Теперь вижу, что в крупных ViT решали таким образом взрыв значения, теряя информацию о длине вектора как компромисс. Но это так же приводит к различным проблемам, которые сейчас пытаются решить за счет обучаемой температуры.
Не готов объяснять разницу, если вы не попытались понять что вам дали.
Если вы говорите, что описанный вами подход рабочий и есть исследования на эту тему и показания эффективности, то это следовало привести в статье. Сейчас это выглядит как гипотеза, которую вы описали, но не обучили модель чтобы показать разницу и не привели исследования других, где показана разница.
Буду рад ошибаться, и с полостью почитаю эти исследования.
Я показал там сравнение, где обучил такую же llm того же размера на тех же данных. Там это есть и результат виден. Там дело не только в связях, там другой токенизатор, который не BPE или другой частотный я там токенизатор построен на цепях Маркова. Что касается связей, то я провел вам исследования. Я пока не понимаю, что делает вас слой, чему модель не может обучиться через уже имеющиеся слои.
Вам следует в пользу своих аргументов приводит обучение. Показать, вот я обучил llm с этим слоем и без него. Данные одинаковые, вот кривая обучения я вот результат. Я буду рад, если вы сделаете такое обучение покажите разницу.
Речь не о том что смогут на нашем языке. Вы пробовали использовать большие языковые модели для сложных SQL запросов? Они постоянно там ошибаются.
Потому что когда у вас система обобщила, что в конце select идёт одна конструкция и другая для разных диалектов, то их вероятности становяться очень близкими. Прибавляем к этому top-p/top-k на выходе при выборе случайного токена, и вот уже система легко выбрала другой диалект и пытается править его в случае ошибки.
В случае специализированной модели она не может перепутать там, потому что в выборе следующего случайного токена не будет два схожих по вероятности из разных диалектов языка. То же самое касается многих языков фреймворков.
Причина в softmax. У вас например после одинакового текста java и JavaScript модель выбирает следующий токен. И в вероятности попали две реализации в рамках одного и другого языка, потому что предыдущий текст усилил их вероятности у обоих (обобщил). И вы пишите код на Java, а в выборке top-p продолжение для JavaScript. И вот ещё она легко ошиблась.
Но хуже всего с хвостом, где встречаются более редкие токены. И там шум очень сильно влияет. При обобщении, они могут выпасть из выборки, потому что может при обучении встречала чаще из других языков. А это какой то фреймворк. И вот уже модель его не использует.
Речь не про язык (человеческий), а про язык программирования. Если модель много обобщала, то она напишет кучу всего и не словесном языке. Да вероятно даже может решить задачу, а может и нет, так как длинный текст создал кучу шума и привел к потере деталей.
Не совсем так. Если мы посмотрим не на название MoE, а на ее реализацию, то разница есть.
Что делает MoE? Она разбивает выходной сигнал после голов на K участков. Если сильнее участок 1, то используется FFN1, если сильнее участок 2, то используется FFN2.
Что это значит? Возьмём SQL. В нем активизируется участок 1 для SQL при чем и для ms sql и для oracle sql. Система не вызовет эксперта 2. Они оба будут сидеть на участке 1.
В реальности MoE это не совсем про экспертов, это решение проблемы одного большого FFN, когда мы делим его на участки и таким образом повышаем точность (могли бы взять огромный FFN, но памяти не хватит).
То есть если мы обучаем Java и JavaScript, то это не значит что будут задействованы 2 разных участка (эксперта). Наоборот, с высокой долей вероятности, что грамматический синтаксис этих языков приведет их к одному и тому участку (эксперту) на выходе.
Поэтому отчасти MoE можно считать экспертной системой, где сильно разные области будут разнесены. А могут быть и не разнесены, если их головы вернут сильный сигнал для одинакового эксперта. А так как языки программирования чаще всего сильно пересекаются по структуре, то более вероятно что все они будут работать в рамках одного двух экспертов.
Подобное решается только через специализированные модели. Где и токенизатор заточен под язык, и головы находят соответствующие разные связи и эксперты работают в рамках одного языка, улучшая точность прогноза.
Да, если мы говорим например о языках программирования и термоядерной физике, то с большой долей вероятности головы дадут разное распределение с максимумами в сильно разных участках dim. Но когда речь идёт об одной области, то MoE тут не сильно поможет.
Выскажу свое мнение. На мой взгляд следующим шагом будут не большие языковые модели, а множество мелких специализированных языковых моделей, написанных под каждый язык программирования и свою область.
Это должно увеличить качество. Дело в том, что чем больше мы скармливаеи данных, тем сильнее модель их обобщает. Это приводит к тому, что некоторые связи становяться почти равновероятны и и могу пересекаться из разных языков. Когда накопление ошибки может привести к тому, что модель пойдет по одному маршруту.
Приведу пример, в одном языке есть фреймворк с какими-то параметрами и в другом с таким же названием. И при сильном обобщении softmax становится более плоским. Небольшая ошибка в точности (у моделей часто делают катетеризацию и уменьшают точность ради скорости и памяти), приводит к тому, что маленькое отклонение EPS приводит к смещению вероятности. Или хуже того, случайный выбор согласно температуре захватывает их.
В итоге, модель пишет вызов функция, который она например видела на sql oracle и сейчас пытается применить к sql ms sql. Такое встречается часто уже сейчас.
Более маленькие специализированные языковые модели, заточены под свою область. Они более "уверенно" и точно выдают результат, так как у них нет такой модели. В их датасете не было других языков разработки, поэтому их вероятности в softmax будут более ярко выражены.
В этом случае обучение более качественное, а loss остаётся стабильным. Так как в этом случае каждый блок вносит свой вклад во все последующие и модели не нужно пытаться одновременно обеспечить этот проброс на уровне одного FFN и одновременно делать обобщение данных.
Как уже сказал выше, сейчас такие же результаты получили другие исследователи.
"Простыня" была специально адаптирована, чтобы ее могла понимать LLM (и другим было проще скармливать). Я дал вам ссылку, потому что ваши ответы выше написаны нейронкоц, поэтому предложил скормить ей материал.
Что касается loss, то прежде чем делать выводы, надо было увидеть что это обучения длилось 1 день. Где целью являлось подтвердить математическую модель.
Я предлагаю подтвердить на обучении модели свои утверждения. Я провел вам не только мат модель, но и ее реализацию и показатели обучения.
В коде нет QV и прочего, вы посмотрели на развитие архитектуры, когда постепенно она приближалась к правильной.
Я же говорю, про последнюю реализацию HierarchicalMHA_20, которая есть в обоих ссылках. В ней нет классического attention и голов.
Повторюсь, целью было показать, что совершенно другая форма реализации, совсем не похожая на attention работает согласно математической модели. Как уже сказал, обучение было 1 день и модель уже строит слова, ставит скобки, пытается делать связи.
В вашем случаев, вам просто следует показать:
Математически, что ваши предположения на чем то основаны
Обучить небольшую модель, хотя бы сутки или несколько дней с вашим решением и без него и показать, что результат формирования связей (не loss) действительно отличается.
Тогда вопросы отпадут сами собой. А то сейчас вы отвечаете с помощью сетки, не привели примеры что это работает. Если говорить корректно, вы выдвинули гипотезу, которую надо либо подтвердить или опровергнуть.
Вы пытаетесь отвечать через LLM. Я предлагаю вам сделать иначе, чтобы лучше понять что такое Attention, скормить это вашей LLM (вопрос-ответ можно не скармливать, это уточнения которые были у людей по коду, я вынес как отдельные пояснения):
Я привел вам ссылки и на код, и на текст и визуально показал.
Предлагаю скормить их вашей модели в том порядке как это указано (это специально было адаптировано для LLM). И после этого, предложить ей дать оценку, вашему предположению (не пытаясь ее переубедить).
Без этого контекста, рассуждения мало эффективны. Так как выше математически доказанная модель, которая так же была проверена на примере архитектурного кода.
Что касается регулирования температуры, то как раз я имел ввиду, что вам нужно регулировать температуру внутри Attention, как это показано на рисунке выше. Тогда модель сама решает, когда ей нужно увеличить ее, а когда понизить внутри Atention.
Нет, "важность" это частотность, она же вероятность. Ломая эту информацию, мы ломаем распределение и создаем неопределенность, это означает что некоторые вещи становятся равно вероятными, хотя это не так. не должна буква "ы" быть чаще буквы "а", так и эти вектора. Это "энергия" в информационном плане (абстрактном), информация о том, сколько система тратить на переход от токена А к токену В, то есть ее затраты. И задача модели научиться найти баланс между затратами и сложностью многообразием. Вы убивая "затраты", оставляете только сложность многообразие и тем самым увеличиваете энтропию системы, а это всегда не определенность. Это ближе к тому, что мы сделаем температуру высокой, и часть вероятностей будут одинаковой важности.
Q*K это фактически I(P1, P2) взаимная информация между случайными величинами, которую можно представить как две компоненты PMMI матрицу (связи, о которых вы говорите) и "энергия" (затраты на переход между связями). Когда вы нормализуете их, то теряете информацию об этих переходах. Это как если бы для вас не было разницы, произносить А или О, потому что вы приравняли их "энергетические" затраты на открывание рта.
Информация о частотности при сравнении связей, не менее важна чем и сами связи, потому что стоимость этих переходов меньше и они чаще.
Поэтому описанная проблема это не QK, можете увеличить кол-во других данных. Или изменить архитектуру, чтобы температура была динамической, тогда в одних случаях модель будет искать баланс между затратами системы (частотность) и ее многообразием (энтропией). Вы сейчас наоборот пытаетесь жестко сделать второй вариант, а задача как раз баланс, дать системе самой определять на сколько важны связи эмбеддингов и на сколько важна частотность эмбеддингов.
Добавив нормализацию в QK, вы таким образом поломали эмбеддинги и их смысл. Они содержат информацию не только о сходстве, но и частотности. Когда вы нормализовали их перед QV, то фактически лишили информации о важности информации (какая встречается чаще, а какая реже).
Сам эмбеддинг это не только сходство между токена. Норма эмбеддингов содержит информацию о частоте, но когда вы делаете нормализацию конкретного сигнала, то теряет большую часть информации. Было например |-15.45| как частота слова "кот", которая встречалась 1000 раз и |4.3| как частота слова "собака" которая встречалась 100 раз. Вы в данном случае полностью ломаете логику, так как после нормализации Q и K они могут совпасть по норме, станут например оба 0.7 и модель уже больше не может понять, какое из них важнее.
Я выкладывал обучаемую архитектуру на которой эту логику можно проследить более отчетливо в коде.
Она ближе к EMB (Energy-Based Models, или Энергетические модели). Там как раз мы извлекает из эмбеддингов разные составляющие. Мы даже можем разделить эмбеддинги на составляющие, которые будут храниться и обучаться отдельно (вместо векторов).
От МТС как то ждешь больше профессионализма в статьях. которые пишут. Я бы сказал, что материал описанный в статье сильно устарел. Это было актуально в 2021-2022 году, когда были разработаны Flamingo (DeepMind) и Perceiver IO (DeepMind). Сейчас более продвинутыми все таки является V-Jepa, и более свежая этого года Le-Jepa.
То что описано в статье не стоит использовать, это крайне неэффективные и устаревшие решения. Тем более в контексте "Будущее роботизированных манипуляций". У вас отставание лет на 4-5. Приделать агентов к старым неэффективным подходам не решает проблем.
В качестве истории развития, я бы рекомендовал вот это видео (от прошлого века, до сегодняшнего времени). И не забивать себе голову мусором про VLM в рамках данной статьи. Это только пойдет во вред.
Я пока в течении недели разбирался с теоремами и архитектурой и кодом, частично через сетки, частично в фотошопе сделал данные изображения, можете если нужно что-то вырезать из них. Это облегчит задачу, так как сетки плохо генерируют такие картинки (пробовал в разных, даже с учетом подробного описания, выходило в большей части мусор), поэтому пришлось делать сначала крупные картинки (по частям генерировать фрагменты) и собирать их в фотошопе (хотел сначала в комментарии приложит именно их), но потом решил что это будет не очень понятно.
Поэтому замечательно если их переработать и написать наглядно не доказательную часть, а визуально объясняющую. Я их делал исходя из того, как их понял архитектуру с кодом и теоремы.
И чтобы добавить веса, стоит все таки провести аналогию с OpenMythos, чтобы было проще понять общую идею.
А предложенное архитектурное решение и доказательства теорем - интересные.
Потратил около недели, чтобы вникнуть в теоремы, код и статьи. Мне кажется, надо было тут делать упор не на доказательства, а в целом и затем просто ссылку на доказательства теорем. Архитектура, теоремы и подход в целом интересный и надо было его преподнести иначе. И заодно надо было сравнить со схожими архитектурами, так как предложенная в общем смысле перекликается решением той же проблемы, что и OpenMythos.
Чтобы те, кто читали статью лучше поняли, что автор предложил, попробую описать ниже. Возможно, я где то ошибся и меня поправят, но из того что я изучил в теоремах, условиях и так далее, то это выглядит так:
Предположения при доказательствах
Предположения (ограничения) в теоретическом анализе архитектуры Sessa. Эти предположения вводятся, чтобы доказать теоремы о памяти, затухании и избирательном извлечении информации.
Общие предположения при доказательстве теорем
Во многих местах предполагается, что s=f+Bs где:
f — фиксированная функция входа
B — линейный оператор
это означает, что система считается линейной, нет сложных нелинейных взаимодействий, хотя в реальности B зависит от x и есть нелинейности (tanh, softmax), поэтому доказательства следует рассматривать как идеализацию динамики.
Так же вводится ограничение на γ: 0 < γmax<1. Это нужно чтобы (I−B)^−1 существовала (то есть система была устойчивой). Влияние прошлого не должно «взорваться», спектральный радиус B<1, иначе система может стать неустойчивой и память стремится к бесконечности.
Предположение о структуре attention
Для доказательств обычно предполагается, что attention веса регулярные, не вырождаются и имеют определённую гладкость. В частности A(t,i)∼smooth function of (t−i). То есть веса не случайные и есть структура по расстоянию. Это ломается, если attention в реальности спайковый, шумный или нестабильный.
Вводится предположение, что у матрицы B есть собственные значения, плотно расположенные около 1. Формально спектральный радиус близок к 1 и плотность собственных значений не дискретная. Это означает, что система «почти не затухает».
Это важное предположение. Если eigenvalues далеко от 1 → экспоненциальное затухание, eigenvalues около 1 → медленное (power-law).
Так же, при доказательствах часто полагается, что статистические свойства не зависят от позиции и система «однородна по времени». Это упрощает анализ: B(t,i)≈B(t−i).
Так же делается предположение о бесконечной длине последовательности. Для вывода асимптотики: ℓ→∞, анализируется поведение на очень больших расстояниях. Поэтому надо учитывать это, когда контекст ограничен (например, 4k–1M токенов).
Так же неявно предполагается, что (I−B) обратима. Это требует отсутствия сингулярности и собственных значений = 1, иначе система не имеет решения или имеет бесконечно много решений.
Для теоремы про отсутствие затухания, делается предположение, что существует структура B, где некоторые направления почти не затухают и есть «устойчивые моды». То есть «каналы памяти», которые не исчезают. Это конструктивное предположение, где показывается, что это возможно, но не гарантирует, что обучение найдёт это.
Если система ведёт себя как в предположениях, то появляется power-law память. Поэтому следует интерпретировать это как возможный режим у модели, в котором она принципиально сильнее.
Теоремы Sessa: математика памяти и внимание.
Sessa – это рекуррентная система, в которой внимание (attention) встроено в обратную связь. Теоремы показывают, что такая система обладает сильной и управляемой долговременной памятью.
Теоремы доказываются не для полной нейросети из кода, а для упрощённой математической модели. В них доказываются свойства «ядра механизма», а не всей архитектуры.
В контексте статьи каузальность это когда состояние s(t) зависит только от прошлых индексов i<t, то есть B(t,i)=0 для i≥t. То есть будущее не влияет на прошлое (модель идёт слева направо). Это даёт треугольную структуру матрицы B.
Матрица B имеет вид треугольной структуры, это означает что зависимости идут только “назад” и является эквивалентом DAG (ориентированный ациклический граф) во времени.
Такая матрица позволяет решать систему последовательно s1→s2→s3→... чьл гарантирует отсутствие бесконечных циклов и корректность решения.
В линейной алгебре спектр — это набор собственных значений λ(i). В данной работе он означает насколько сильная обратная связь. Главным условием является ρ(B)<1, где ρ(B) — спектральный радиус (максимальное |λ|). В этом смысле:
если ∣λ∣<1 → система устойчива
если ∣λ∣≈1 → долгоживущая память
если ∣λ∣>1 → взрыв (нестабильность)
Так же теоремы требуют, что спектр не выходит за пределы единичного круга, чтобы можно было разложить решение в ряд и тогда память равна сумме влияний на всех глубинах.
Если спектр B плотно расположен около 1 и есть много собственных значений ≈ 1, тогда B(k)∼k^(−β), то несть много медленно затухающих мод, которые суммируются и дают степенной закон. Это главный результат, который говорит, что память в этом случае не экспоненциальная, а степенная.
Так же есть один важный технический момент. Attention в B должен быть нормирован (softmax), ограничен и не давать взрывных значений. Это означает ограниченность ∣B(t,i)∣≤γmax<1, стабильность так как сумма весов не растёт и локальное нормировка (влияние распределено). Это нужно, чтобы гарантировать ρ(B)<1 что дает сходимость ряда и корректность решения.
Теорема 1 про существование и устойчивость памяти доказывает, что система (I−B)s=f корректно определена и имеет единственное решение.
Теорема 2 про power-law память показывает, что влияние прошлого затухает как O(ℓ^−β), 0<β<1.
Теорема 3 про селективное извлечение показывает, что возможны режимы, где влияние не стремится к 0 при ℓ→∞.
В доказательствах видно, что сначала речь идет доказательство из каузальности → следует треугольность. Затем из треугольности, что система решается однозначно.
Затем идет разложение и оценка оценка B^k, которая анализирует как быстро уменьшается B(k).
Следом используя свойства спектра, выводится скорость затухания и получается influence∼ℓ^−β.
Теорема про selective retrieval заключается в том, что существуют такие B, где некоторые собственные значения ≈ 1 и соответствующие компоненты не затухают. Это означает, что модель может держать важную информацию бесконечно долго.
В работе делается предположения, что attention контролируемый, ограниченный γ и о структуре спектра. Это значит, что результаты не универсальны для любых весов, но достижимы конструктивно.
В этом случае из теорем следует, что память может быть степенной → лучше long-range, возможна выборочная память→ selective retrieval, модель устойчиво определена → нет взрывов и Attention становится частью динамики.
Таким образом теоремы показывают, что если сделать память как линейную систему с attention-ядром и правильно ограничить её спектр, то можно получить качественно новый режим памяти.
Теоремы показывают, что Sessa - это устойчивая казуальная динамическая система с attention-оператором, которая может реализовать сильную, долговременную память и селективную память.
Архитектура: Sessa (Selective State Space Attention)
Архитектура строит память, как устойчивое состояние системы с обратной связью, внутри которого работает attention.
В отличие от Transformer, где attention используется как одношаговый механизм чтения контекста, Sessa встраивает attention внутрь рекуррентной системы обратной связи. Это превращает вычисление представления из простого взвешенного суммирования в задачу нахождения самосогласованного состояния, где токены многократно влияют друг на друга через attention. В результате память не просто извлекается, а формируется как устойчивое состояние динамической системы.
В Transformer токены взаимодействуют один раз, а влияние прямое и плоское. Вроде: A → D
В Sessaтокены взаимодействуют много раз через цепочки, влияние распространяется как в сети, как:
A → B → C → D
A → C → D
A → D
...
Это важно, так как в Transformer влияние токенов быстро размывается, а в Sessa оно накапливается, распространяется и дольше сохраняется. Таким образом превращает attention из операции чтения в динамическую систему памяти с обратной связью.
Вместо того чтобы один раз посмотреть в прошлое (как в Transformer), модель многократно пересчитывает память, позволяя токенам влиять друг на друга через цепочки attention-связей.
В Transformer каждый токен влияет на результат один раз на слой, а глубина = число итераций взаимодействия.
В Sessa взаимодействия происходят многократно до сходимости (через inverse / series).
Ключевой момент: Bⁿ (это то, чего нет в Transformer)
s=f+fB+fB2+fB3...
здесь B это attention-граф, B2 влияние через 2 шага, Bk влияние через k переходов. В Transformer есть только B (один шаг), а глубина ≈ количество шагов. В Sessa сразу есть все Bk.
В Transformer каждый токен один раз смотрит на прошлые токены и получает взвешенную сумму.
В Sessa каждый токен сначала извлекает информацию, а затем эта информация проходит через систему взаимных влияний между всеми предыдущими состояниями.
Power-law в Sessa возникает потому, что рекурсивная attention-система с обратной связью создаёт спектр памяти без характерного масштаба, что математически эквивалентно смеси бесконечного числа экспоненциальных затуханий — а такая смесь в критическом режиме всегда даёт степенной закон.
В обычных моделях информация либо размывается (Transformer), либо затухает экспоненциально (RNN/SSM), а в Sessa информация убывает медленно → остаётся значимой даже через большое время. Это значит, что модель лучше помнит дальний контекст.
Transformer — читает прошлое,
SSM — сжимает прошлое,
Sessa — пересобирает прошлое через систему взаимных влияний.
Вместо одного чтения истории (как в Transformer), строится память как устойчивое состояние системы, где внимание участвует в прямой передаче информации и в обратной связи. Это создает много путей влияния прошлого на будущее.
Сравнение архитектур: OpenMythos и Sessa
Два разных подхода к глубокой обработке контекста.
OpenMythos - это гипотеза архитектуры типа Recurrent-Depth Transformer (RDT).
Таким образом модель думает итеративно, а не за один проход как классический Transformer.
Что делает Sessa: s= f *(I−B)^−1
или: state = attention + feedback(state)
В отличии от OpenMythos, это не loop по времени, а решение фикс-точки.
Обе архитектуры делают одно и то же на концептуальном уровне: мышление — это не один проход, а процесс. Таким образом обе модели отходят от «one-pass computation» к динамическому процессу.
Но дальше начинается ключевое различие, хотя они похожи философски, но математически — это разные классы моделей.
OpenMythos → h(k+1)=F(h(k),x) - это итеративный процесс с явным loop. Мышление в глубине сети, повторяются слои и Transformer внутри loop, что формирует глубину по времени.
У этих моделей был разный токенизатор? Если разные, то на выходе может быть бред, ведь вклад токенов другой.
У этих моделей были разные эмбеддинги? Если разные, то это значит, что информационные связи нарушаются. В одном случае связь король + мужчина может сместиться в огурец + вино.
С переносном FFN в MoE как раз меньше всего проблем. Классические Трансформеры FFN и MoE не особо сильно отличаются. То что так любят называть экспертами, по сути это разрезание глобального FFN на несколько частей, каждая из которых более качественно аппроксимирует и выделяет часть глобального FFN. То есть глобальный FFN теряет точность, из за ограничения размеров. Поэтому мы можем по сути взять его участки и расширить их размерность. Это можно представить через аналогию с функцией описывающей N колебаний. Чтобы апроксимировать все N колебаний, нам нужна FFN с большой размерностью, но мы можем разложить ее на N частей, где каждый FFN будет описывать свое колебание с более высокой точностью (функция больше не пытается апроксимировать все N). Так как на практике в статической модели, только некоторые колебания имеют наибольшую ценность, то остальные можно ~ игнорировать (поэтому говорят про активные веса в MoE) и MoE выбирает одну из FFN (эксперта). Само разбиение в MoE как раз и происходит по интервалам после голов. Это как разбить линейку на участки. Если участок 1 сильнее остальных, значит аппроксимируем на основе него.
Я ускорял обучение MoE за счёт того, что сначала обучал модель с одним FFN, затем копировал его значение во всех экспертов (несколько FFN) и затем дообучал. Таким образом при дообучении, модель детализирована каждый из своих участков. Это давала ещё один плюс. Например, для какого-то эксперта не хватает данных при обучении. Если вдруг модель выберет его, результат будет не очень, а так они уже содержать глобальную информацию и даже если для данного эксперта не хватило данных при обучении, модель не начнет нести полный бред.
Второй подход, который ускорял обучение заключался в том, что сначала мы обучаем K блоков. Затем добавляем ещё один блок и копируем в FFN K+1 веса предыдущего K. Дальше модель детализирует его. Это ускоряет обучение, так как чем меньше блоков, тем быстрее обучение. По сути на каждой итерации мы дообучаем новый блок и согласовываем связи.
Дополню свой комментарий выше, чтобы было понятнее о чем идет речь.
Здесь более подробно про то, что реальная геометрия пространства кривая. В конце они предлагают свой подход к решению.
Здесь описывается про проблемы Jepa (на 15:50 точно есть об этом, но в целом в видео разбор исследования, где описывается эта проблема и попытка не решения).
Здесь про то, как сейчас решают проблему Jepa (7:45) через дополнительный член штрафа SIGReg на основе распределения Коши. Здесь проблему пытаются решать через теорему Крамера — Вольда (9:20).
То о чем я написал выше, как раз рассмотрено в этом видео про Jepa. Тут разбирается исследование, где как раз речь идет про изогнутые поверхности в рамках Jepa (правильнее сказать в рамках вероятностей).
Здесь ещё одна попытка решения проблемы обучения V-Jepa (7:00), через измение обучения, коэффициенты и прочие ухищрения
Ещё одно исследование и попытка обучения кривизне пространства при обучении Jepa.
На самом деле исследований и попыток решить эту проблему сейчас очень много. Но безупречно рабочей нет (как с трансформерами), почти везде ручные настройки и прочие ухищрения.
1) там ошибки именно фундаментальные. Это не значит, что Jepa не работает или не правильная. Как раз она правильная, но из-за того чем она на самом деле является можно сказать что там ошибка. Хотя, правильно сказать не ошибка, а "даже не знаю какое слово подобрать".
Дело в том, что JEPA минимизирует евклидову дивергенцию, но не гарантирует согласование с информационной геометрией распределений. Она реализует KL второго порядка только в частном, локальном и структурно согласованном случае. Глобально изометрия невозможна на основе Jepa, поскольку KL не является евклидовой метрикой. Я скоро опубликую доказательство.
То есть Jepa работает, но локально на ограниченных участках и при других условиях и ломается глобально. Это изображение из будущей статьи, надеюсь оно немного наглядней объяснить суть. Латентное пространство на самом деле кривое (аналогия с земным шаром), но локально оно Евлидовое (прямой участок земли). Вот Jepa как раз реализует локальную геометрию на небольших участках - это доказывается математически. Но глобально она ломается, так как не учитывает кривизну. Поэтому при обучении Jepa там возникает множество проблем с обучением, когда все ломается и приходиться придумывать извращенные способы при обучении.
2) это не значит что Jepa не работает. Локально она работает. Но ломается в разных ситуациях, что приводит к тому, что приходиться ручками придумывать разные как это исправить. Когда она пытается все свести к плоскости при обучении (надо найти видео с этими исследованиями о проблемах Jepa при обучении).
В любом случае, сам подход Jepa и направление выбрано правильно. Jepa работает, но при выполнении ряда условий, которые могут не выполняться глобально, но сам подход можно исправить.
При разборе RAG, стоило найти современные решения ряда проблем.
Например:
Реальное решение проблемы чанкования.
Увидеть, что часть описанного вами в реальности работает плохо и как это решить. В частности использование RAG в медицине. То есть разделив на базовую часть и практическую.
Выше два примера исследований, но их можно привести больше.
Лучше убирать часть воды (LLM любит раздувать), и этот текст потратить на разбор современных исследований/решений. Так как часть из них на английском и не скоро дойдут до русскоязычной аудитории.
Странное ощущение. С одной стороны DeepMind как R&D компания и странно такое слышать от них, с другой - это глава компании и его слова не про AGI, а про ожидания рынка которые он должен подогревать.
В данном случае однозначно на стороне Яна ЛеКуна. Современные LLM на трансформерах это тупик, как минимум из-за статики. И ещё ряд других ограничений. Хотя сейчас есть, попытки уйти от этого:
MesaNet - механизм внимания как сетка с постоянным вызовом метода обратного распространения для мини сеток. В остальном это трансформер.
Mythos - так же трансформеры, но со смешиванием данных вместо текстового CoT.
Mamba3 - локальный механизм внимания. При расширении преимущества шире, чем трансформеры. Но пока архитектура ограниченный механизм внимания.
Jepa ЛеКуна это даже не про выбор подхода - трансформер или другие как блок, а о том, что данные работают в других латентных пространствах, объединяющих разные типы данных. Текст это лишь один из типов сигнала, в которую данные могут преобразоваться и они далеко не всегда эффективные. Но у Jepa тоже есть ошибки в математическом подходе, но направление выбрано верно.
Спасибо почитал, да вижу что в ViT это убрало проблему больших значений в классическом Attention при большом кол-ве блоков.
Но это компромисс, так как теряется информация о норме вектора. И как замечают на разных площадках, такой поход снижает "остроту" внимания, модель хуже работает на инференсе. И из того, что я вижу в других работах, там как раз пытаются решить эту проблему нормализации, через добавление обучаемой температуры:
Swin Transformer V2: Softmax(τ*cos(Q,K)+B)V , τ - температура
CosScale / Scaled Cosine Attention: β(i,j) = Exp(α*cos(θ(i, j))) / Sum(Exp(α*cos(θ(i, l)))) , α температура
Теперь вижу, что в крупных ViT решали таким образом взрыв значения, теряя информацию о длине вектора как компромисс. Но это так же приводит к различным проблемам, которые сейчас пытаются решить за счет обучаемой температуры.
Можете объяснить свой ответ? Как RL решает данную проблему? Если речь про файтюнинг, то это и есть специализированные модели.
Я привел аргумент, почему MoE не даёт такую специализацию, а softmax может привести к ошибкам на близко вероятных токнах.
Но я могу ошибаться, поэтому будет интересно узнать, почему этого не возникает и как RL решает данную проблему.
Не готов объяснять разницу, если вы не попытались понять что вам дали.
Если вы говорите, что описанный вами подход рабочий и есть исследования на эту тему и показания эффективности, то это следовало привести в статье. Сейчас это выглядит как гипотеза, которую вы описали, но не обучили модель чтобы показать разницу и не привели исследования других, где показана разница.
Буду рад ошибаться, и с полостью почитаю эти исследования.
Я показал там сравнение, где обучил такую же llm того же размера на тех же данных. Там это есть и результат виден. Там дело не только в связях, там другой токенизатор, который не BPE или другой частотный я там токенизатор построен на цепях Маркова. Что касается связей, то я провел вам исследования. Я пока не понимаю, что делает вас слой, чему модель не может обучиться через уже имеющиеся слои.
Вам следует в пользу своих аргументов приводит обучение. Показать, вот я обучил llm с этим слоем и без него. Данные одинаковые, вот кривая обучения я вот результат. Я буду рад, если вы сделаете такое обучение покажите разницу.
Речь не о том что смогут на нашем языке. Вы пробовали использовать большие языковые модели для сложных SQL запросов? Они постоянно там ошибаются.
Потому что когда у вас система обобщила, что в конце select идёт одна конструкция и другая для разных диалектов, то их вероятности становяться очень близкими. Прибавляем к этому top-p/top-k на выходе при выборе случайного токена, и вот уже система легко выбрала другой диалект и пытается править его в случае ошибки.
В случае специализированной модели она не может перепутать там, потому что в выборе следующего случайного токена не будет два схожих по вероятности из разных диалектов языка. То же самое касается многих языков фреймворков.
Причина в softmax. У вас например после одинакового текста java и JavaScript модель выбирает следующий токен. И в вероятности попали две реализации в рамках одного и другого языка, потому что предыдущий текст усилил их вероятности у обоих (обобщил). И вы пишите код на Java, а в выборке top-p продолжение для JavaScript. И вот ещё она легко ошиблась.
Но хуже всего с хвостом, где встречаются более редкие токены. И там шум очень сильно влияет. При обобщении, они могут выпасть из выборки, потому что может при обучении встречала чаще из других языков. А это какой то фреймворк. И вот уже модель его не использует.
Речь не про язык (человеческий), а про язык программирования. Если модель много обобщала, то она напишет кучу всего и не словесном языке. Да вероятно даже может решить задачу, а может и нет, так как длинный текст создал кучу шума и привел к потере деталей.
Не совсем так. Если мы посмотрим не на название MoE, а на ее реализацию, то разница есть.
Что делает MoE? Она разбивает выходной сигнал после голов на K участков. Если сильнее участок 1, то используется FFN1, если сильнее участок 2, то используется FFN2.
Что это значит? Возьмём SQL. В нем активизируется участок 1 для SQL при чем и для ms sql и для oracle sql. Система не вызовет эксперта 2. Они оба будут сидеть на участке 1.
В реальности MoE это не совсем про экспертов, это решение проблемы одного большого FFN, когда мы делим его на участки и таким образом повышаем точность (могли бы взять огромный FFN, но памяти не хватит).
То есть если мы обучаем Java и JavaScript, то это не значит что будут задействованы 2 разных участка (эксперта). Наоборот, с высокой долей вероятности, что грамматический синтаксис этих языков приведет их к одному и тому участку (эксперту) на выходе.
Поэтому отчасти MoE можно считать экспертной системой, где сильно разные области будут разнесены. А могут быть и не разнесены, если их головы вернут сильный сигнал для одинакового эксперта. А так как языки программирования чаще всего сильно пересекаются по структуре, то более вероятно что все они будут работать в рамках одного двух экспертов.
Подобное решается только через специализированные модели. Где и токенизатор заточен под язык, и головы находят соответствующие разные связи и эксперты работают в рамках одного языка, улучшая точность прогноза.
Да, если мы говорим например о языках программирования и термоядерной физике, то с большой долей вероятности головы дадут разное распределение с максимумами в сильно разных участках dim. Но когда речь идёт об одной области, то MoE тут не сильно поможет.
Выскажу свое мнение. На мой взгляд следующим шагом будут не большие языковые модели, а множество мелких специализированных языковых моделей, написанных под каждый язык программирования и свою область.
Это должно увеличить качество. Дело в том, что чем больше мы скармливаеи данных, тем сильнее модель их обобщает. Это приводит к тому, что некоторые связи становяться почти равновероятны и и могу пересекаться из разных языков. Когда накопление ошибки может привести к тому, что модель пойдет по одному маршруту.
Приведу пример, в одном языке есть фреймворк с какими-то параметрами и в другом с таким же названием. И при сильном обобщении softmax становится более плоским. Небольшая ошибка в точности (у моделей часто делают катетеризацию и уменьшают точность ради скорости и памяти), приводит к тому, что маленькое отклонение EPS приводит к смещению вероятности. Или хуже того, случайный выбор согласно температуре захватывает их.
В итоге, модель пишет вызов функция, который она например видела на sql oracle и сейчас пытается применить к sql ms sql. Такое встречается часто уже сейчас.
Более маленькие специализированные языковые модели, заточены под свою область. Они более "уверенно" и точно выдают результат, так как у них нет такой модели. В их датасете не было других языков разработки, поэтому их вероятности в softmax будут более ярко выражены.
Описанная вами проблема решается с помощью множества residual связей. В последних исследованиях, как раз пришли к этому решению.
https://t.me/greenruff/2497
В этом случае обучение более качественное, а loss остаётся стабильным. Так как в этом случае каждый блок вносит свой вклад во все последующие и модели не нужно пытаться одновременно обеспечить этот проброс на уровне одного FFN и одновременно делать обобщение данных.
Как уже сказал выше, сейчас такие же результаты получили другие исследователи.
"Простыня" была специально адаптирована, чтобы ее могла понимать LLM (и другим было проще скармливать). Я дал вам ссылку, потому что ваши ответы выше написаны нейронкоц, поэтому предложил скормить ей материал.
Что касается loss, то прежде чем делать выводы, надо было увидеть что это обучения длилось 1 день. Где целью являлось подтвердить математическую модель.
Я предлагаю подтвердить на обучении модели свои утверждения. Я провел вам не только мат модель, но и ее реализацию и показатели обучения.
В коде нет QV и прочего, вы посмотрели на развитие архитектуры, когда постепенно она приближалась к правильной.
Я же говорю, про последнюю реализацию HierarchicalMHA_20, которая есть в обоих ссылках. В ней нет классического attention и голов.
Повторюсь, целью было показать, что совершенно другая форма реализации, совсем не похожая на attention работает согласно математической модели. Как уже сказал, обучение было 1 день и модель уже строит слова, ставит скобки, пытается делать связи.
В вашем случаев, вам просто следует показать:
Математически, что ваши предположения на чем то основаны
Обучить небольшую модель, хотя бы сутки или несколько дней с вашим решением и без него и показать, что результат формирования связей (не loss) действительно отличается.
Тогда вопросы отпадут сами собой. А то сейчас вы отвечаете с помощью сетки, не привели примеры что это работает. Если говорить корректно, вы выдвинули гипотезу, которую надо либо подтвердить или опровергнуть.
Вы пытаетесь отвечать через LLM. Я предлагаю вам сделать иначе, чтобы лучше понять что такое Attention, скормить это вашей LLM (вопрос-ответ можно не скармливать, это уточнения которые были у людей по коду, я вынес как отдельные пояснения):
https://disk.yandex.ru/d/UNyaCbYUm-jpWw
Я привел вам ссылки и на код, и на текст и визуально показал.
Предлагаю скормить их вашей модели в том порядке как это указано (это специально было адаптировано для LLM). И после этого, предложить ей дать оценку, вашему предположению (не пытаясь ее переубедить).
Для большей строгости можно даже скормить ей код архитектуры, так как в ней Attention реализован как я описал выше (модель отлично обучается):
https://disk.yandex.ru/d/eJg7Nc__qIeQ9A
Без этого контекста, рассуждения мало эффективны. Так как выше математически доказанная модель, которая так же была проверена на примере архитектурного кода.
Что касается регулирования температуры, то как раз я имел ввиду, что вам нужно регулировать температуру внутри Attention, как это показано на рисунке выше. Тогда модель сама решает, когда ей нужно увеличить ее, а когда понизить внутри Atention.
Нет, "важность" это частотность, она же вероятность. Ломая эту информацию, мы ломаем распределение и создаем неопределенность, это означает что некоторые вещи становятся равно вероятными, хотя это не так. не должна буква "ы" быть чаще буквы "а", так и эти вектора. Это "энергия" в информационном плане (абстрактном), информация о том, сколько система тратить на переход от токена А к токену В, то есть ее затраты. И задача модели научиться найти баланс между затратами и сложностью многообразием. Вы убивая "затраты", оставляете только сложность многообразие и тем самым увеличиваете энтропию системы, а это всегда не определенность. Это ближе к тому, что мы сделаем температуру высокой, и часть вероятностей будут одинаковой важности.
Q*K это фактически I(P1, P2) взаимная информация между случайными величинами, которую можно представить как две компоненты PMMI матрицу (связи, о которых вы говорите) и "энергия" (затраты на переход между связями). Когда вы нормализуете их, то теряете информацию об этих переходах. Это как если бы для вас не было разницы, произносить А или О, потому что вы приравняли их "энергетические" затраты на открывание рта.
Информация о частотности при сравнении связей, не менее важна чем и сами связи, потому что стоимость этих переходов меньше и они чаще.
Поэтому описанная проблема это не QK, можете увеличить кол-во других данных. Или изменить архитектуру, чтобы температура была динамической, тогда в одних случаях модель будет искать баланс между затратами системы (частотность) и ее многообразием (энтропией). Вы сейчас наоборот пытаетесь жестко сделать второй вариант, а задача как раз баланс, дать системе самой определять на сколько важны связи эмбеддингов и на сколько важна частотность эмбеддингов.
Добавив нормализацию в QK, вы таким образом поломали эмбеддинги и их смысл. Они содержат информацию не только о сходстве, но и частотности. Когда вы нормализовали их перед QV, то фактически лишили информации о важности информации (какая встречается чаще, а какая реже).
Сам эмбеддинг это не только сходство между токена. Норма эмбеддингов содержит информацию о частоте, но когда вы делаете нормализацию конкретного сигнала, то теряет большую часть информации. Было например |-15.45| как частота слова "кот", которая встречалась 1000 раз и |4.3| как частота слова "собака" которая встречалась 100 раз. Вы в данном случае полностью ломаете логику, так как после нормализации Q и K они могут совпасть по норме, станут например оба 0.7 и модель уже больше не может понять, какое из них важнее.
Я выкладывал обучаемую архитектуру на которой эту логику можно проследить более отчетливо в коде.
https://t.me/greenruff/2596
Она ближе к EMB (Energy-Based Models, или Энергетические модели). Там как раз мы извлекает из эмбеддингов разные составляющие. Мы даже можем разделить эмбеддинги на составляющие, которые будут храниться и обучаться отдельно (вместо векторов).
От МТС как то ждешь больше профессионализма в статьях. которые пишут. Я бы сказал, что материал описанный в статье сильно устарел. Это было актуально в 2021-2022 году, когда были разработаны Flamingo (DeepMind) и Perceiver IO (DeepMind). Сейчас более продвинутыми все таки является V-Jepa, и более свежая этого года Le-Jepa.
То что описано в статье не стоит использовать, это крайне неэффективные и устаревшие решения. Тем более в контексте "Будущее роботизированных манипуляций". У вас отставание лет на 4-5. Приделать агентов к старым неэффективным подходам не решает проблем.
В качестве истории развития, я бы рекомендовал вот это видео (от прошлого века, до сегодняшнего времени). И не забивать себе голову мусором про VLM в рамках данной статьи. Это только пойдет во вред.
Если будет нужно использовать в других статьях исходники выше, то выложил тут:
https://disk.yandex.ru/d/J1bS853ToIpgSg
Я пока в течении недели разбирался с теоремами и архитектурой и кодом, частично через сетки, частично в фотошопе сделал данные изображения, можете если нужно что-то вырезать из них. Это облегчит задачу, так как сетки плохо генерируют такие картинки (пробовал в разных, даже с учетом подробного описания, выходило в большей части мусор), поэтому пришлось делать сначала крупные картинки (по частям генерировать фрагменты) и собирать их в фотошопе (хотел сначала в комментарии приложит именно их), но потом решил что это будет не очень понятно.
Поэтому замечательно если их переработать и написать наглядно не доказательную часть, а визуально объясняющую. Я их делал исходя из того, как их понял архитектуру с кодом и теоремы.
И чтобы добавить веса, стоит все таки провести аналогию с OpenMythos, чтобы было проще понять общую идею.
А предложенное архитектурное решение и доказательства теорем - интересные.
Потратил около недели, чтобы вникнуть в теоремы, код и статьи. Мне кажется, надо было тут делать упор не на доказательства, а в целом и затем просто ссылку на доказательства теорем. Архитектура, теоремы и подход в целом интересный и надо было его преподнести иначе. И заодно надо было сравнить со схожими архитектурами, так как предложенная в общем смысле перекликается решением той же проблемы, что и OpenMythos.
Чтобы те, кто читали статью лучше поняли, что автор предложил, попробую описать ниже. Возможно, я где то ошибся и меня поправят, но из того что я изучил в теоремах, условиях и так далее, то это выглядит так:
Предположения при доказательствахПредположения (ограничения) в теоретическом анализе архитектуры Sessa. Эти предположения вводятся, чтобы доказать теоремы о памяти, затухании и избирательном извлечении информации.
Во многих местах предполагается, что s=f+Bs где:
f — фиксированная функция входа
B — линейный оператор
это означает, что система считается линейной, нет сложных нелинейных взаимодействий, хотя в реальности B зависит от x и есть нелинейности (tanh, softmax), поэтому доказательства следует рассматривать как идеализацию динамики.
Так же вводится ограничение на γ: 0 < γmax<1. Это нужно чтобы (I−B)^−1 существовала (то есть система была устойчивой). Влияние прошлого не должно «взорваться», спектральный радиус B<1, иначе система может стать неустойчивой и память стремится к бесконечности.
Для доказательств обычно предполагается, что attention веса регулярные, не вырождаются и имеют определённую гладкость. В частности A(t,i)∼smooth function of (t−i). То есть веса не случайные и есть структура по расстоянию. Это ломается, если attention в реальности спайковый, шумный или нестабильный.
Вводится предположение, что у матрицы B есть собственные значения, плотно расположенные около 1. Формально спектральный радиус близок к 1 и плотность собственных значений не дискретная. Это означает, что система «почти не затухает».
Это важное предположение. Если eigenvalues далеко от 1 → экспоненциальное затухание, eigenvalues около 1 → медленное (power-law).
Так же, при доказательствах часто полагается, что статистические свойства не зависят от позиции и система «однородна по времени». Это упрощает анализ: B(t,i)≈B(t−i).
Так же делается предположение о бесконечной длине последовательности. Для вывода асимптотики: ℓ→∞, анализируется поведение на очень больших расстояниях. Поэтому надо учитывать это, когда контекст ограничен (например, 4k–1M токенов).
Так же неявно предполагается, что (I−B) обратима. Это требует отсутствия сингулярности и собственных значений = 1, иначе система не имеет решения или имеет бесконечно много решений.
Для теоремы про отсутствие затухания, делается предположение, что существует структура B, где некоторые направления почти не затухают и есть «устойчивые моды». То есть «каналы памяти», которые не исчезают. Это конструктивное предположение, где показывается, что это возможно, но не гарантирует, что обучение найдёт это.
Если система ведёт себя как в предположениях, то появляется power-law память. Поэтому следует интерпретировать это как возможный режим у модели, в котором она принципиально сильнее.
Теоремы Sessa: математика памяти и внимание.Sessa – это рекуррентная система, в которой внимание (attention) встроено в обратную связь. Теоремы показывают, что такая система обладает сильной и управляемой долговременной памятью.
Теоремы доказываются не для полной нейросети из кода, а для упрощённой математической модели. В них доказываются свойства «ядра механизма», а не всей архитектуры.
В контексте статьи каузальность это когда состояние s(t) зависит только от прошлых индексов i<t, то есть B(t,i)=0 для i≥t. То есть будущее не влияет на прошлое (модель идёт слева направо). Это даёт треугольную структуру матрицы B.
Матрица B имеет вид треугольной структуры, это означает что зависимости идут только “назад” и является эквивалентом DAG (ориентированный ациклический граф) во времени.
Такая матрица позволяет решать систему последовательно s1→s2→s3→... чьл гарантирует отсутствие бесконечных циклов и корректность решения.
В линейной алгебре спектр — это набор собственных значений λ(i). В данной работе он означает насколько сильная обратная связь. Главным условием является ρ(B)<1, где ρ(B) — спектральный радиус (максимальное |λ|). В этом смысле:
если ∣λ∣<1 → система устойчива
если ∣λ∣≈1 → долгоживущая память
если ∣λ∣>1 → взрыв (нестабильность)
Так же теоремы требуют, что спектр не выходит за пределы единичного круга, чтобы можно было разложить решение в ряд и тогда память равна сумме влияний на всех глубинах.
Если спектр B плотно расположен около 1 и есть много собственных значений ≈ 1, тогда B(k)∼k^(−β), то несть много медленно затухающих мод, которые суммируются и дают степенной закон. Это главный результат, который говорит, что память в этом случае не экспоненциальная, а степенная.
Так же есть один важный технический момент. Attention в B должен быть нормирован (softmax), ограничен и не давать взрывных значений. Это означает ограниченность ∣B(t,i)∣≤γmax<1, стабильность так как сумма весов не растёт и локальное нормировка (влияние распределено). Это нужно, чтобы гарантировать ρ(B)<1 что дает сходимость ряда и корректность решения.
Теорема 1 про существование и устойчивость памяти доказывает, что система (I−B)s=f корректно определена и имеет единственное решение.
Теорема 2 про power-law память показывает, что влияние прошлого затухает как O(ℓ^−β), 0<β<1.
Теорема 3 про селективное извлечение показывает, что возможны режимы, где влияние не стремится к 0 при ℓ→∞.
В доказательствах видно, что сначала речь идет доказательство из каузальности → следует треугольность. Затем из треугольности, что система решается однозначно.
Затем идет разложение и оценка оценка B^k, которая анализирует как быстро уменьшается B(k).
Следом используя свойства спектра, выводится скорость затухания и получается influence∼ℓ^−β.
Теорема про selective retrieval заключается в том, что существуют такие B, где некоторые собственные значения ≈ 1 и соответствующие компоненты не затухают. Это означает, что модель может держать важную информацию бесконечно долго.
В работе делается предположения, что attention контролируемый, ограниченный γ и о структуре спектра. Это значит, что результаты не универсальны для любых весов, но достижимы конструктивно.
В этом случае из теорем следует, что память может быть степенной → лучше long-range, возможна выборочная память→ selective retrieval, модель устойчиво определена → нет взрывов и Attention становится частью динамики.
Таким образом теоремы показывают, что если сделать память как линейную систему с attention-ядром и правильно ограничить её спектр, то можно получить качественно новый режим памяти.
Теоремы показывают, что Sessa - это устойчивая казуальная динамическая система с attention-оператором, которая может реализовать сильную, долговременную память и селективную память.
Архитектура: Sessa (Selective State Space Attention)Архитектура строит память, как устойчивое состояние системы с обратной связью, внутри которого работает attention.
В отличие от Transformer, где attention используется как одношаговый механизм чтения контекста, Sessa встраивает attention внутрь рекуррентной системы обратной связи. Это превращает вычисление представления из простого взвешенного суммирования в задачу нахождения самосогласованного состояния, где токены многократно влияют друг на друга через attention. В результате память не просто извлекается, а формируется как устойчивое состояние динамической системы.
В Transformer токены взаимодействуют один раз, а влияние прямое и плоское. Вроде: A → D
В Sessaтокены взаимодействуют много раз через цепочки, влияние распространяется как в сети, как:
A → B → C → D
A → C → D
A → D
...
Это важно, так как в Transformer влияние токенов быстро размывается, а в Sessa оно накапливается, распространяется и дольше сохраняется. Таким образом превращает attention из операции чтения в динамическую систему памяти с обратной связью.
Вместо того чтобы один раз посмотреть в прошлое (как в Transformer), модель многократно пересчитывает память, позволяя токенам влиять друг на друга через цепочки attention-связей.
В Transformer каждый токен влияет на результат один раз на слой, а глубина = число итераций взаимодействия.
В Sessa взаимодействия происходят многократно до сходимости (через inverse / series).
Ключевой момент: Bⁿ (это то, чего нет в Transformer)
s=f+fB+fB2+fB3...
здесь B это attention-граф, B2 влияние через 2 шага, Bk влияние через k переходов. В Transformer есть только B (один шаг), а глубина ≈ количество шагов. В Sessa сразу есть все Bk.
В Transformer каждый токен один раз смотрит на прошлые токены и получает взвешенную сумму.
В Sessa каждый токен сначала извлекает информацию, а затем эта информация проходит через систему взаимных влияний между всеми предыдущими состояниями.
Power-law в Sessa возникает потому, что рекурсивная attention-система с обратной связью создаёт спектр памяти без характерного масштаба, что математически эквивалентно смеси бесконечного числа экспоненциальных затуханий — а такая смесь в критическом режиме всегда даёт степенной закон.
В обычных моделях информация либо размывается (Transformer), либо затухает экспоненциально (RNN/SSM), а в Sessa информация убывает медленно → остаётся значимой даже через большое время. Это значит, что модель лучше помнит дальний контекст.
Transformer — читает прошлое,
SSM — сжимает прошлое,
Sessa — пересобирает прошлое через систему взаимных влияний.
Вместо одного чтения истории (как в Transformer), строится память как устойчивое состояние системы, где внимание участвует в прямой передаче информации и в обратной связи. Это создает много путей влияния прошлого на будущее.
Сравнение архитектур: OpenMythos и SessaДва разных подхода к глубокой обработке контекста.
OpenMythos - это гипотеза архитектуры типа Recurrent-Depth Transformer (RDT).
Основная идея OpenMythos
Вместо: Layer1 → Layer2 → ... → Layer100
используется: Prelude → Recurrent Block (loop × N) → Coda
один и тот же блок повторяется много раз.
Формально: h(t+1) =Ah(t)+Be+Transformer(h(t), e), где:
h(t) - внутреннее состояние (итерация мысли)
e - вход (постоянно подмешивается)
loop увеличивает глубину мышления.
Таким образом модель думает итеративно, а не за один проход как классический Transformer.
Что делает Sessa: s= f *(I−B)^−1
или: state = attention + feedback(state)
В отличии от OpenMythos, это не loop по времени, а решение фикс-точки.
Обе архитектуры делают одно и то же на концептуальном уровне: мышление — это не один проход, а процесс. Таким образом обе модели отходят от «one-pass computation» к динамическому процессу.
Но дальше начинается ключевое различие, хотя они похожи философски, но математически — это разные классы моделей.
OpenMythos → h(k+1)=F(h(k),x) - это итеративный процесс с явным loop. Мышление в глубине сети, повторяются слои и Transformer внутри loop, что формирует глубину по времени.
Думает через последовательность шагов: h0 → h1 → h2 → h3 ...
Sessa → s=f+Bs - это сразу решается как s=f*(I−B)^−1
Мышление внутри памяти, тут attention внутри feedback и состояние само себя перерабатывает, что формирует глубину внутри состояния.
Думает через суперпозицию всех путей сразу: s = f + Bf + B²f + B³f + ...
Обе архитектуры связаны через динамические системы.
OpenMythos h(k+1)=F(h(k)) → это дискретная динамическая система
Sessa s=F(s) → это фикс-точка динамики
Таким образом Sessa — это предельный случай OpenMythos, когда: H(k+1) → s при k→∞.
Иначе говоря, Sessa ≈ OpenMythos с бесконечным числом итераций.
Я не очень понял.
У этих моделей был разный токенизатор? Если разные, то на выходе может быть бред, ведь вклад токенов другой.
У этих моделей были разные эмбеддинги? Если разные, то это значит, что информационные связи нарушаются. В одном случае связь король + мужчина может сместиться в огурец + вино.
С переносном FFN в MoE как раз меньше всего проблем. Классические Трансформеры FFN и MoE не особо сильно отличаются. То что так любят называть экспертами, по сути это разрезание глобального FFN на несколько частей, каждая из которых более качественно аппроксимирует и выделяет часть глобального FFN. То есть глобальный FFN теряет точность, из за ограничения размеров. Поэтому мы можем по сути взять его участки и расширить их размерность. Это можно представить через аналогию с функцией описывающей N колебаний. Чтобы апроксимировать все N колебаний, нам нужна FFN с большой размерностью, но мы можем разложить ее на N частей, где каждый FFN будет описывать свое колебание с более высокой точностью (функция больше не пытается апроксимировать все N). Так как на практике в статической модели, только некоторые колебания имеют наибольшую ценность, то остальные можно ~ игнорировать (поэтому говорят про активные веса в MoE) и MoE выбирает одну из FFN (эксперта). Само разбиение в MoE как раз и происходит по интервалам после голов. Это как разбить линейку на участки. Если участок 1 сильнее остальных, значит аппроксимируем на основе него.
Я ускорял обучение MoE за счёт того, что сначала обучал модель с одним FFN, затем копировал его значение во всех экспертов (несколько FFN) и затем дообучал. Таким образом при дообучении, модель детализирована каждый из своих участков. Это давала ещё один плюс. Например, для какого-то эксперта не хватает данных при обучении. Если вдруг модель выберет его, результат будет не очень, а так они уже содержать глобальную информацию и даже если для данного эксперта не хватило данных при обучении, модель не начнет нести полный бред.
Второй подход, который ускорял обучение заключался в том, что сначала мы обучаем K блоков. Затем добавляем ещё один блок и копируем в FFN K+1 веса предыдущего K. Дальше модель детализирует его. Это ускоряет обучение, так как чем меньше блоков, тем быстрее обучение. По сути на каждой итерации мы дообучаем новый блок и согласовываем связи.
Дополню свой комментарий выше, чтобы было понятнее о чем идет речь.
Здесь более подробно про то, что реальная геометрия пространства кривая. В конце они предлагают свой подход к решению.
Здесь описывается про проблемы Jepa (на 15:50 точно есть об этом, но в целом в видео разбор исследования, где описывается эта проблема и попытка не решения).
Здесь про то, как сейчас решают проблему Jepa (7:45) через дополнительный член штрафа SIGReg на основе распределения Коши. Здесь проблему пытаются решать через теорему Крамера — Вольда (9:20).
То о чем я написал выше, как раз рассмотрено в этом видео про Jepa. Тут разбирается исследование, где как раз речь идет про изогнутые поверхности в рамках Jepa (правильнее сказать в рамках вероятностей).
Здесь ещё одна попытка решения проблемы обучения V-Jepa (7:00), через измение обучения, коэффициенты и прочие ухищрения
Ещё одно исследование и попытка обучения кривизне пространства при обучении Jepa.
На самом деле исследований и попыток решить эту проблему сейчас очень много. Но безупречно рабочей нет (как с трансформерами), почти везде ручные настройки и прочие ухищрения.
1) там ошибки именно фундаментальные. Это не значит, что Jepa не работает или не правильная. Как раз она правильная, но из-за того чем она на самом деле является можно сказать что там ошибка. Хотя, правильно сказать не ошибка, а "даже не знаю какое слово подобрать".
Дело в том, что JEPA минимизирует евклидову дивергенцию, но не гарантирует согласование с информационной геометрией распределений. Она реализует KL второго порядка только в частном, локальном и структурно согласованном случае. Глобально изометрия невозможна на основе Jepa, поскольку KL не является евклидовой метрикой. Я скоро опубликую доказательство.
То есть Jepa работает, но локально на ограниченных участках и при других условиях и ломается глобально. Это изображение из будущей статьи, надеюсь оно немного наглядней объяснить суть. Латентное пространство на самом деле кривое (аналогия с земным шаром), но локально оно Евлидовое (прямой участок земли). Вот Jepa как раз реализует локальную геометрию на небольших участках - это доказывается математически. Но глобально она ломается, так как не учитывает кривизну. Поэтому при обучении Jepa там возникает множество проблем с обучением, когда все ломается и приходиться придумывать извращенные способы при обучении.
2) это не значит что Jepa не работает. Локально она работает. Но ломается в разных ситуациях, что приводит к тому, что приходиться ручками придумывать разные как это исправить. Когда она пытается все свести к плоскости при обучении (надо найти видео с этими исследованиями о проблемах Jepa при обучении).
В любом случае, сам подход Jepa и направление выбрано правильно. Jepa работает, но при выполнении ряда условий, которые могут не выполняться глобально, но сам подход можно исправить.
При разборе RAG, стоило найти современные решения ряда проблем.
Например:
Реальное решение проблемы чанкования.
Увидеть, что часть описанного вами в реальности работает плохо и как это решить. В частности использование RAG в медицине. То есть разделив на базовую часть и практическую.
Выше два примера исследований, но их можно привести больше.
Лучше убирать часть воды (LLM любит раздувать), и этот текст потратить на разбор современных исследований/решений. Так как часть из них на английском и не скоро дойдут до русскоязычной аудитории.
Странное ощущение. С одной стороны DeepMind как R&D компания и странно такое слышать от них, с другой - это глава компании и его слова не про AGI, а про ожидания рынка которые он должен подогревать.
В данном случае однозначно на стороне Яна ЛеКуна. Современные LLM на трансформерах это тупик, как минимум из-за статики. И ещё ряд других ограничений. Хотя сейчас есть, попытки уйти от этого:
MesaNet - механизм внимания как сетка с постоянным вызовом метода обратного распространения для мини сеток. В остальном это трансформер.
Mythos - так же трансформеры, но со смешиванием данных вместо текстового CoT.
Mamba3 - локальный механизм внимания. При расширении преимущества шире, чем трансформеры. Но пока архитектура ограниченный механизм внимания.
Jepa ЛеКуна это даже не про выбор подхода - трансформер или другие как блок, а о том, что данные работают в других латентных пространствах, объединяющих разные типы данных. Текст это лишь один из типов сигнала, в которую данные могут преобразоваться и они далеко не всегда эффективные. Но у Jepa тоже есть ошибки в математическом подходе, но направление выбрано верно.