Комментарии 17
Прочитала статью, покопалась в репо, несколько технических вопросов и замечаний по существу:
В requirements.txt указан только tqdm>=4.0. PyTorch в зависимостях отсутствует, хотя в README репозиторий заявлен как «Official PyTorch implementation». При pip install -e . в чистом окружении импорт упадёт. https://github.com/LibratioAI/sessa/blob/main/requirements.txt
Я попрошу вас не устраивать спам-атаку в комментариях. Это дурной тон на Хабре. Я понимаю, что у вас могут быть личные обиды из-за моих комментариев под вашей статьёй, но всё же@moderator.
В статье утверждается: «Sessa, как и Mamba, может кодировать APE внутри себя без явных таблиц или экстраполяции, в отличие от трансформера». То есть Sessa кодирует позицию явно, как и любой современный трансформер, а не «эмерджентно, как Mamba».
Рекомендую вам прочитать исследование: RoPE в forward части с этим никак не связан.
«Универсальная теорема аппроксимации для отображения последовательности в последовательность» подаётся как дополнительный результат для Sessa. Универсальная аппроксимация для многослойных SSM с нелинейностями уже доказана: Wang & Xue, 2023, arXiv:2309.13414. Какова новизна именно для Sessa относительно этого результата?
Я ничего про новизну и не утверждал. Кстати, я бы вам рекомендовал ознакомится с этой работой, на которую вы ссылаетесь, она не будет работать для Sessa напрямую. Если бы все было так просто, я бы руками не доказывал UAT, а просто бы сослался на готовый результат.
Все нижние оценки в работе тривиальны — «больше или равна нулю». По таким теоремам можно утверждать только, что верхняя граница Sessa не хуже, но нельзя утверждать, что Transformer или Mamba действительно затухают быстрее. Чтобы доказать преимущество, нужны нижние оценки для оппонентов того же порядка или хуже. Их нет.
Строгие end-to-end нижние оценки в общем виде получить нельзя; в статье я, кстати, это отметил.
Power-law tails
при
— это верхняя граница, а не достигаемая скорость.
В исследовании я как раз привожу конструкцию, показывающую, как этой скорости можно достичь на практике.
В разделе «Память» все сравнения проводятся в специально подобранных режимах: «диффузный режим» для Transformer и «failed freezing time» для Mamba. Цитата из самой статьи: «Потому что можно подобрать такие параметры, при которых каждая из них будет лучше другой, или наоборот». То есть это не доказательство превосходства, а выбор худшего случая для оппонентов.
Это выбор равного режима для всех, как раз потому что в общем виде можно подобрать такие параметры, при которых каждая из них будет лучше другой, или наоборот.
Да, и слабо верится, что человек не сформулировал все эти тезисы в одном комментарии, а разбросал их по разным с разницей в секунды-минуту, хотя на каждый пришлось бы потратить какое-то время. Особенно заметно из-за кавычек-ёлочек. Не поделитесь промптом для LLM?)
В статье утверждается: «Sessa, как и Mamba, может кодировать APE внутри себя без явных таблиц или экстраполяции, в отличие от трансформера». Однако в sessa/mixer.py, строки 91–96 и 234–239, явно реализован RoPE, и параметр use_forward_rope=True стоит по умолчанию. RoPE — это позиционное кодирование (Su et al., 2021, arXiv:2104.09864). То есть Sessa кодирует позицию явно, как и любой современный трансформер, а не «эмерджентно, как Mamba».
Тезис «трансформеру для универсальной аппроксимации необходим именно внешний APE» — это пересказ теоремы 3 из Yun et al., 2019 (arXiv:1912.10077). Без ссылки на первоисточник.
«Универсальная теорема аппроксимации для отображения последовательности в последовательность» подаётся как дополнительный результат для Sessa. Универсальная аппроксимация для многослойных SSM с нелинейностями уже доказана: Wang & Xue, 2023, arXiv:2309.13414. Какова новизна именно для Sessa относительно этого результата?
В статье вообще отсутствуют ссылки на ключевые первоисточники: Vaswani et al., 2017 (Transformer); Gu & Dao, 2023, arXiv:2312.00752 (Mamba); Gu et al., 2022 (S4); Su et al., 2021 (RoPE — используется в вашем коде); Yun et al., 2019 (universal approximation для трансформера). Для исследовательской работы это серьёзный пропуск.
В разделе «Память» все сравнения проводятся в специально подобранных режимах: «диффузный режим» для Transformer и «failed freezing time» для Mamba. Цитата из самой статьи: «Потому что можно подобрать такие параметры, при которых каждая из них будет лучше другой, или наоборот». То есть это не доказательство превосходства, а выбор худшего случая для оппонентов.
Все нижние оценки в работе тривиальны — «больше или равна нулю». По таким теоремам можно утверждать только, что верхняя граница Sessa не хуже, но нельзя утверждать, что Transformer или Mamba действительно затухают быстрее. Чтобы доказать преимущество, нужны нижние оценки для оппонентов того же порядка или хуже. Их нет.
Power-law tails при
— это верхняя граница, а не достигаемая скорость. По одной верхней границе нельзя сравнивать архитектуры.
Сложность Sessa: forward-attention + feedback-attention
+ torch.linalg.solve_triangular
(mixer.py, строки 147–156, 248–256). Это тяжелее обычного трансформера. При этом квадратичная сложность подаётся как мотивация ухода от трансформера. Где выигрыш по сложности?
Forward-ветка Sessa — это обычный multi-head causal self-attention с RoPE, GQA и опциональным FlashAttention (from flash_attn import flash_attn_func, mixer.py, строка 6). То есть Sessa не «альтернатива трансформерам», а трансформер плюс ещё один attention-блок в feedback. Заголовок статьи технически некорректен.
В abstract на arXiv заявлено: «across matched experiments, Sessa achieves the strongest performance on long-context benchmarks». В Хабр-статье автор пишет: «в ближайших планах обучить модель на несколько миллиардов параметров и посмотреть». Это прямое противоречие самому себе. Где experiments, на которых построено заявление в abstract?
В репозитории нет ни одного признанного long-context бенчмарка: RULER, LongBench, ∞-Bench, Needle-in-a-Haystack, PG19, BookSum — ничего. Единственный датасет — datasets/SymbolSoup.py, синтетический генератор собственного авторства. Сравнивать архитектуры на одном самодельном синтетическом тесте — методологически некорректно.
В репозитории нет ни одного Transformer-baseline и ни одного Mamba-baseline. Нет training loop, нет evaluation-скриптов, нет конфигов запуска, нет чекпоинтов. На основании чего сделано заявление о «strongest performance»?
По issue #51 в репозитории Mamba (https://github.com/state-spaces/mamba/issues/51) Albert Gu пишет: «We don’t use positional encodings» и обсуждается, что диагональные SSM могут реализовывать вариант RoPE через мнимую часть A(n,n). Это значит, что «имплицитная позиционная информация» — общее свойство SSM, а не уникальное свойство Sessa.
В mixer.py, строка 86: self.out_proj = nn.Identity() if self.n_heads == 1 else nn.Linear(…). Output-проекция отсутствует при n_heads=1. Решение нестандартное и в статье не обоснованное. Есть ablation?
Репозиторий LibratioAI/sessa создан 20 апреля 2026 (за неделю до публикации статьи), 2 коммита, 1097 строк кода всего, из которых 457 — mixer.py. Организация LibratioAI зарегистрирована 18 февраля 2026, 1 публичный репозиторий. Это уровень готовности проекта, который не соответствует тону «я создал альтернативу трансформерам».
В bibtex репозитория цитата @article{horbatko2026sessa}. По Google Scholar других публикаций автора в области ML нет. Это первая работа без рецензирования и без публикационной истории. В таком контексте формулировка «альтернатива трансформерам» избыточна.
Просьба «поддержите голосом на Hugging Face» в конце статьи — это запрос на накрутку upvotes на платформе с голосованием, что является известным вектором манипуляции рейтингами (см. arXiv:2507.08983).
Эээ, ну вы бы в один комментарий хотя бы всё это указали, а то могут на вас подумать что вы спамите просто.
А разве отдельный комментарий на каждый тезис не упрощает дискуссию?
Иногда да, но семь комментариев подряд это слишком для Хабра, да и контекст этой дискуссии немного отличается от контекста статьи. На технические вопросы я всё же ответил, но здесь это выглядит не как попытка упростить обсуждение, а скорее как серия однотипных претензий после того, как я под их статьёй попросил привести доказательства работы их "суверенного ИИ".
Ну, конечно же упрощает, но 7 комментариев подряд - это уже ну слишком. Хотя бы в 3 комментария тогда.
Потратил около недели, чтобы вникнуть в теоремы, код и статьи. Мне кажется, надо было тут делать упор не на доказательства, а в целом и затем просто ссылку на доказательства теорем. Архитектура, теоремы и подход в целом интересный и надо было его преподнести иначе. И заодно надо было сравнить со схожими архитектурами, так как предложенная в общем смысле перекликается решением той же проблемы, что и 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 с бесконечным числом итераций.
Мне кажется, надо было тут делать упор не на доказательства, а в целом и затем просто ссылку на доказательства теорем. Архитектура, теоремы и подход в целом интересный и надо было его преподнести иначе. И заодно надо было сравнить со схожими архитектурами, так как предложенная в общем смысле перекликается решением той же проблемы, что и OpenMythos.
Возможно. Но я сам только несколько дней назад о нем узнал. Да и сравнение с академической точки зрения очевидно нужно было делать с бейзлайнами. А статья это просто пересказ с сильными упрощениями и более понятной интуицией, нежели само исследование, а практически все было уже написано задолго до апреля.
это означает, что система считается линейной, нет сложных нелинейных взаимодействий, хотя в реальности B зависит от x и есть нелинейности (tanh, softmax), поэтому доказательства следует рассматривать как идеализацию динамики.
Это относится только к fixed-routing, да, там я рассматривал случай с замороженными параметрами, как диагностический слой, чтобы изолировать механизм памяти, но основные результаты идут как раз для end-to-end, где ничего не заморожено.
Так же вводится ограничение на γ: 0 < γmax<1. Это нужно чтобы (I−B)^−1 существовала
Это нужно для BIBO стабильности, которая рассматривается для бесконечных последовательностей. Для конечных последовательностейбудет существовать, даже если
так как она будет конечной строго нижнетреугольной матрицей, но работа за пределами обучающих последовательностей довольно важна, поэтому и нужно ограничение.
Вводится предположение, что у матрицы B есть собственные значения, плотно расположенные около 1. Формально спектральный радиус близок к 1 и плотность собственных значений не дискретная. Это означает, что система «почти не затухает».
Это важное предположение. Если eigenvalues далеко от 1 → экспоненциальное затухание, eigenvalues около 1 → медленное (power-law).
Конкретно такого я не вводил. Собственные значения у конечной нижнетреугольной матрицы B всегда будут равны 0. Ну, собственно, как и простой на конечном горизонте тоже может быть записан через строго нижнетреугольную матрицу, у которой собственные значения равны 0.
Я, конечно, использовал в статье данную интуицию как подводку, но на практике нужно быть с этим аккуратными, так как анализ через полюса работает именно для LTI систем. То есть полюса меньше 1 означают экспоненциальное затухание, 1 означает линейный рост, больше 1 означает экспоненциальный рост. Но для не LTI это не работает.
Так же, при доказательствах часто полагается, что статистические свойства не зависят от позиции и система «однородна по времени». Это упрощает анализ: B(t,i)≈B(t−i).
Нет, как раз таки все оценивается для общего случая, где зависимость идет не только от лага.
Так же неявно предполагается, что (I−B) обратима. Это требует отсутствия сингулярности и собственных значений = 1, иначе система не имеет решения или имеет бесконечно много решений.
На любом фиксированном конечном контексте обратима автоматически, так как элементы на диагонали равны 1.
Теорема про selective retrieval заключается в том, что существуют такие B, где некоторые собственные значения ≈ 1 и соответствующие компоненты не затухают. Это означает, что модель может держать важную информацию бесконечно долго.
Как я и писал, собственные значения тут не могут быть равны 1, они всегда равны 0. Selective retrieval возникает не из спектра а из аккумуляции путей в ряде Неймана.
Касаемо OpenMythos, да, если рассмотреть его миксер и кое-как его изменить, то его можно вполне сравнивать с Sessa, где Sessa получает результат после бесконечного применения циклов, но в конечной структуре. Но идея OpenMythos, конечно, не нова, и вообще подобные архитектуры у меня лично вызывают большой скепсис, потому что это лишняя трата ресурсов, так как можно за то же количество добавить слои и получить большую выразительность. Да, мы получаем регуляризацию, но стоит ли она того, если мы тренируем какую-нибудь многомиллиардную модель на 10т токенов. На маленьких данных, спору нет, это сильно решает.
Если будет нужно использовать в других статьях исходники выше, то выложил тут:
https://disk.yandex.ru/d/J1bS853ToIpgSg
Я пока в течении недели разбирался с теоремами и архитектурой и кодом, частично через сетки, частично в фотошопе сделал данные изображения, можете если нужно что-то вырезать из них. Это облегчит задачу, так как сетки плохо генерируют такие картинки (пробовал в разных, даже с учетом подробного описания, выходило в большей части мусор), поэтому пришлось делать сначала крупные картинки (по частям генерировать фрагменты) и собирать их в фотошопе (хотел сначала в комментарии приложит именно их), но потом решил что это будет не очень понятно.
Поэтому замечательно если их переработать и написать наглядно не доказательную часть, а визуально объясняющую. Я их делал исходя из того, как их понял архитектуру с кодом и теоремы.
И чтобы добавить веса, стоит все таки провести аналогию с OpenMythos, чтобы было проще понять общую идею.
А предложенное архитектурное решение и доказательства теорем - интересные.

Как я создал альтернативу трансформерам