VKВлад КуликовОткрытые лекции
Современные LLM8 / 20

Модуль 8. Альтернативы Transformer: SSM, Mamba и гибриды

Курс «Modern LLMs» · лекция модуля 8 · редакция 2026.10.25

О чём этот модуль. Внимание с softmax хранит прошлое как адресуемый KV-cache: это даёт возможность обращаться к отдельным позициям, но память растёт вместе с контекстом. Модель пространства состояний (State Space Model, SSM) предлагает противоположную сделку: после каждого токена обновлять состояние фиксированного размера. Мы пройдём путь от непрерывной линейной системы и точной ZOH-дискретизации до селективной Mamba, двойственности Mamba-2 с линейным вниманием, дельта-правила и современных гибридов. Сквозной вопрос будет один: какую информацию можно сжать в постоянное состояние, а для какой всё ещё нужна адресуемая память?

Что нужно знать заранее. Модуль 5 вводит KV-cache и геометрию внимания; модуль 6 — остаточный поток и блок Transformer; модуль 7 пригодится для гибридов с MoE. Все необходимые определения повторяются здесь, поэтому модуль остаётся самодостаточным.


Как читать модуль

Первый проход: §1 → §§3–4 → §§6–11 → §§17 и 19. В §4 сначала достаточно дискретной рекуррентности и смысла матриц; вывод точных коэффициентов и У1 из §18 оставьте на второй проход. Для первого расчёта подходят У2–У3 о памяти. Начните с различия между списком прошлых токенов и фиксированным состоянием; затем разберите запись, забывание и гибриды. Числовые детали памяти в §1 можно отложить до §10.

Второй проход: §4–5, §7 и §12–14 вместе с ноутбуком. Выведите дискретный шаг, проследите композицию переходов и проверьте крайние случаи.

Справочный проход: §2, §15 и §20. Названия архитектур в этих разделах служат указателями; основные механизмы объясняются в §§3–11.

1. Мотивация: две разные цены длинного контекста

Обычный Transformer хранит для каждого ранее обработанного токена ключи и значения. При prefill плотное внимание рассматривает попарные взаимодействия и требует квадратичной арифметики по длине. При decode новый токен обращается ко всему накопленному KV-cache, поэтому стоимость одного шага и объём состояния растут вместе с контекстом.

SSM меняет сам формат памяти. Вместо списка адресуемых записей она поддерживает состояние

ht=f(ht−1,xt)h_t=f(h_{t-1},x_t)

фиксированной размерности. Длина уже прочитанного текста не входит в размер hth_t. Это даёт линейный проход по последовательности и постоянную память при авторегрессионной генерации.

Но у сделки есть обратная сторона. KV-cache похож на картотеку: модель может обратиться к конкретной записи. Рекуррентное состояние похоже на постоянно переписываемое резюме. Оно дешёво, но несколько фактов могут интерферировать, а произвольный точный поиск по далёкому прошлому не возникает автоматически.

В учебной конфигурации полный KV-cache стоит 128 KiB на токен. Mamba-стек хранит не только основное состояние SSM, но и короткое состояние причинной свёртки. Для 32 слоёв, dinner=8192d_{inner}=8192, dstate=16d_{state}=16, dconv=4d_{conv}=4 полный фиксированный кэш равен

8 MiB+2 MiB=10 MiB.8\text{ MiB}+2\text{ MiB}=10\text{ MiB}.

Он сравнивается по объёму с KV-cache уже на 80 токенах. Для Mamba-2-подобной геометрии с dstate=128d_{state}=128 получаем 66.0625 MiB и точку пересечения 528.5 токена — то есть первый целый токен, после которого KV-cache больше, равен 529.

Эти числа объясняют привлекательность рекуррентных моделей. Но они ещё не отвечают, достаточно ли такого состояния для сложного языка. Для этого придётся понять, что именно записывает SSM и как она решает, что забыть.

2. Историческая линия: от линейных систем к гибридным LLM

VIZ m8/01 — развитие второй архитектурной ветви Классическая теория состояния → HiPPO/S4 → селективная Mamba → Mamba-2/SSD и DeltaNet → гибридные Jamba, Falcon-H1, Qwen3.5 и Kimi → новые рекуррентные и разреженные ветви 2026 года.

Линейные модели состояния задолго до нейросетей использовались в теории управления и фильтрации. Их задача — поддерживать компактную достаточную статистику наблюдаемого процесса. S4 — Structured State Spaces for Sequence Modeling перенесла эту идею в глубокие модели и показала, как специальная структура матрицы состояния позволяет эффективно работать с длинными последовательностями.

У ранних SSM оставалась проблема: правило обновления почти не зависело от содержания токена. Mamba сделала размер шага и часть параметров входозависимыми. Модель получила возможность пропускать малозначимые элементы, сильнее записывать важные и управлять скоростью забывания. Авторы дополнили это алгоритмом селективного прохода, учитывающим устройство GPU, чтобы зависящая от содержания рекуррентность оставалась эффективно обучаемой. В статье сообщается до пяти раз большей пропускной способности относительно сравниваемых Transformer-конфигураций; это результат их реализации и протокола, а не универсальный множитель.

Mamba-2 ввела SSD — State Space Duality. Для структурированного класса SSM один и тот же оператор можно читать как рекуррентность или как структурированную матрицу линейного внимания с маской. Это позволило использовать плотную матричную работу внутри чанков и компактно переносить состояние между ними. Авторы сообщают ускорение основного слоя примерно в 2–8 раз в своих конфигурациях.

Параллельно развивалась линия линейного внимания. DeltaNet использовала дельта-правило для адресного исправления ассоциативной памяти. Gated DeltaNet позже объединила этот механизм с входозависимым забыванием. Статья об эффективном параллельном обучении DeltaNet вышла в июне 2024 года; Gated DeltaNet — в декабре того же года. Само дельта-правило ассоциативной памяти использовалось и раньше.

Практические крупные системы всё чаще выбирали гибрид. Jamba чередовала Transformer-, Mamba- и MoE-компоненты. Falcon-H1 соединила Mamba-2 и внимание параллельными ветвями. Qwen3.5 использовала повторяющийся паттерн из трёх Gated DeltaNet-слоёв и одного слоя полного внимания. Kimi K3 сочетала 69 KDA-слоёв и 24 Gated MLA-слоя. Эти архитектуры не доказывают, что существует одна оптимальная пропорция. Они показывают более общий итог: фиксированное состояние выгодно как основной носитель последовательности, а адресуемый механизм добавляется там, где сжатия недостаточно.

3. Три взгляда на одну рекуррентность

Динамическая система

Непрерывная линейная SSM задаётся уравнениями

h˙(t)=Ah(t)+Bx(t),y(t)=Ch(t)+Dx(t).\dot h(t)=Ah(t)+Bx(t), \qquad y(t)=Ch(t)+Dx(t).

Матрица AA определяет внутреннюю динамику, BB — запись входа, CC — чтение состояния, DD — прямой путь от входа к выходу.

Здесь h∈Rnh\in\mathbb R^n, x∈Rpx\in\mathbb R^p, y∈Rry\in\mathbb R^r; поэтому AA имеет форму n×nn\times n, BB — n×pn\times p, CC — r×nr\times n, DD — r×pr\times p. Точка над hh обозначает производную по непрерывному времени. В токенном потоке время станет номером шага.

Фильтр

Если вещественные части всех собственных значений AA отрицательны, свободная динамика — движение без входа — со временем стремится к нулю. Это асимптотическая устойчивость. У произвольной матрицы отдельные координаты могут сначала вырасти; монотонное затухание каждой координаты из условия не следует. В диагональных примерах ниже разные отрицательные коэффициенты непосредственно задают разные времена затухания: одни компоненты реагируют быстро, другие сохраняют более долгую историю. В таком прочтении SSM похожа на обучаемый набор фильтров.

Ассоциативная память

Линейное внимание часто записывается как состояние-матрица

St=St−1+vtkt⊤,yt=Stqt.S_t=S_{t-1}+v_tk_t^\top, \qquad y_t=S_tq_t.

Здесь ktk_t выбирает направление записи, vtv_t задаёт содержимое, а qtq_t — запрос. Такая память уже напоминает внимание, но имеет фиксированный размер и потому накапливает интерференцию.

В ассоциативной записи kt,qt∈Rdkk_t,q_t\in\mathbb R^{d_k}, vt∈Rdvv_t\in\mathbb R^{d_v} и St∈Rdv×dkS_t\in\mathbb R^{d_v\times d_k}. Внешнее произведение vtkt⊤v_tk_t^\top записывает одну пару во всю матрицу; последующее умножение на запрос возвращает вектор длины dvd_v. Это ненормированное линейное внимание: softmax здесь отсутствует.

Эти взгляды дополняют друг друга. Динамическая система объясняет стабильность и забывание, фильтр — временные масштабы, ассоциативная память — запись и извлечение. Mamba-2 показывает, что для специальной структуры это не только метафоры, а разные вычислительные представления одного оператора.

4. Формализм: дискретная SSM и Zero-Order Hold

Текст приходит дискретными шагами, поэтому непрерывную систему нужно дискретизировать. При ZOH — Zero-Order Hold вход считается постоянным на интервале длиной Δ\Delta:

ht=Aˉht−1+Bˉxt,h_t=\bar A h_{t-1}+\bar B x_t,

Черта отличает матрицы одного дискретного шага от матриц непрерывной системы: Aˉ\bar A переносит прежнее состояние, а Bˉ\bar B добавляет вклад текущего входа. Для чтения Mamba сначала достаточно этой рекуррентности. Следующие формулы показывают, как получить её коэффициенты при точно заданной непрерывной динамике.

Aˉ=eΔA,Bˉ=∫0ΔeuAB du.(любая A)\bar A=e^{\Delta A}, \qquad \bar B=\int_0^\Delta e^{uA}B\,du. \quad (\text{любая }A)

Если AA обратима, интеграл равен A−1(eΔA−I)BA^{-1}(e^{\Delta A}-I)B. Интегральная форма определена и для необратимой матрицы. В следующих числовых опытах прямой путь DD равен нулю.

Для диагонального AA формулы применяются покоординатно. При a=0a=0 выражение для Bˉ\bar B выглядит как 0/00/0, но предел существует:

lim⁡a→0eΔa−1a=Δ.\lim_{a\to0}\frac{e^{\Delta a}-1}{a}=\Delta.

В учебном коде этот случай обработан явно. Это важно не только ради красоты: скрытый NaN в редкой координате быстро распространяется по всем следующим шагам.

В практических архитектурах параметризация может отличаться от буквальной ZOH-формулы. Например, открытая реализация Mamba-2 использует входной член вида ΔBx\Delta Bx в своём эффективном алгоритме. Поэтому модуль разделяет две вещи:

  1. точную дискретизацию заданной непрерывной линейной системы;
  2. конкретную обучаемую параметризацию Mamba-подобного блока.

Первая даёт математический ориентир. Вторая выбирается ради выразительности и эффективной реализации.

5. Решённый пример A: когда приближение ΔB\Delta B заметно отличается от ZOH

Возьмём один устойчивый режим:

a=−1,B=1.a=-1, \qquad B=1.

Точный входной коэффициент равен

BˉZOH=1−e−Δ,\bar B_{\text{ZOH}}=1-e^{-\Delta},

а малошаговое приближение — Δ\Delta. Относительная ошибка:

ε(Δ)=Δ1−e−Δ−1.\varepsilon(\Delta) = \frac{\Delta}{1-e^{-\Delta}}-1.

Для трёх шагов:

Δ\Deltaточный коэффициентприближениеотносительная ошибка
0.10.095160.15.08%
0.50.393470.527.07%
1.00.632121.058.20%

Решим также обратную задачу: при каком Δ\Delta ошибка достигает ровно 10%?

Δ1−e−Δ−1=0.1.\frac{\Delta}{1-e^{-\Delta}}-1=0.1.

Численное решение:

Δ≈0.193747558.\boxed{\Delta\approx0.193747558}.

Этот пример не говорит, что Mamba обязана использовать точную ZOH во всех ветвях. Он показывает, что выражения ΔB\Delta B и A−1(eΔA−I)BA^{-1}(e^{\Delta A}-I)B нельзя считать взаимозаменяемыми без указания параметризации и диапазона шагов.

VIZ m8/03 — дискретизация руками Точный ZOH-трейс для двух устойчивых режимов, предел при A=0A=0 и рост ошибки приближения ΔB\Delta B.

6. Mamba: селективность и блок

У линейной SSM с неизменными во времени параметрами одинаковая динамика применяется к любому содержанию. Для языка этого недостаточно: имя, закрывающая скобка и частый артикль не должны записываться одинаково.

Mamba делает часть параметров функциями входа. Δt\Delta_t — положительный шаг, а softplus⁡(u)=log⁡(1+eu)\operatorname{softplus}(u)=\log(1+e^u) обеспечивает положительность. Упрощённая запись:

Bt=B(xt),Ct=C(xt),Δt=softplus⁡(WΔxt).B_t=B(x_t), \qquad C_t=C(x_t), \qquad \Delta_t=\operatorname{softplus}(W_\Delta x_t).

Через Δt\Delta_t токен управляет скоростью обновления. При большом шаге состояние сильнее меняется; при малом — дольше сохраняет прошлое. BtB_t задаёт запись, CtC_t — чтение.

Архитектурный блок включает и короткую поканальную свёртку (depthwise convolution). Её роль не в том, что SSM «не видит порядок», а в явном предпочтении локальных закономерностей. Ближайшие шаблоны обрабатываются коротким фильтром, а более длинная динамика переносится рекуррентным состоянием.

Эта свёртка имеет значение и при обслуживании модели: авторегрессивный кэш содержит не только состояние SSM, но и последние dconvd_{conv} элементов конволюционной ветви. Именно поэтому честная оценка памяти в §10 включает оба компонента.

VIZ m8/04 — селективный Mamba-блок Входная проекция разделяет локальную ветвь и гейт; свёртка подаёт вход в селективную SSM, затем выход умножается на гейт. Два постоянных состояния отмечены отдельно.

7. Mamba-2 и State Space Duality

Mamba-1 хорошо работает как рекуррентность, но обучение длинных последовательностей требует эффективного параллелизма. SSD рассматривает структурированный класс переходов, у которого матрица связи позиций имеет полусепарабельную структуру. Для этого класса один оператор можно вычислять тремя способами:

  1. последовательной рекуррентностью;
  2. параллельным префиксным проходом (scan);
  3. чанковой матричной формой, похожей на линейное внимание с маской.

Слово scan означает вычисление всех префиксных состояний, а не только последнего. Аффинный шаг h↦ah+bh\mapsto ah+b задаётся парой (a,b)(a,b). Два шага составляются как

(a2,b2)∘(a1,b1)=(a2a1,  a2b1+b2).(a_2,b_2)\circ(a_1,b_1)=(a_2a_1,\;a_2b_1+b_2).

Скобки можно переставлять, порядок шагов — нельзя. Например, (2,1)(2,1), затем (3,4)(3,4) дают (6,7)(6,7); обратный порядок — (6,9)(6,9).

Для следующей записи возьмём скалярные вход xtx_t и выход yty_t, состояние ht∈Rnh_t\in\mathbb R^n и векторы Bt,Ct∈RnB_t,C_t\in\mathbb R^n. Чтение теперь записывается как yt=Ct⊤hty_t=C_t^\top h_t; это векторное обозначение строки чтения из §3. При переходе atIa_tI и нулевом начальном состоянии коэффициент вклада входа jj в выход i≥ji\ge j равен

Mij=Ci⊤Bj∏r=j+1iar.M_{ij}=C_i^\top B_j\prod_{r=j+1}^{i}a_r.

Произведение переходов переносит запись через промежуточные позиции. Блок матрицы ниже диагонали факторизуется через компактное состояние: это и выражает полусепарабельная структура. Внутри блока последовательности можно использовать матричные операции; между блоками достаточно передать состояние.

VIZ m8/02 — область двойственности SSD Один структурированный оператор: рекуррентный шаг, префиксный проход или блочная матричная форма. Двойственность относится к определённому классу SSM, а не ко всем возможным динамическим системам.

Это не утверждение, что любая SSM равна любому линейному вниманию. Эквивалентность требует конкретной структуры переходов. И даже математически равные формы не обязаны давать побитово одинаковый результат: порядок операций с плавающей точкой в scan и GEMM различается.

Практическая выгода Mamba-2 состоит в выборе вычислительной формы под фазу работы. На обучении выгодны чанки и плотные матричные операции. На decode — рекуррентный шаг с фиксированным состоянием. Авторы сообщают ускорение основного слоя в 2–8 раз относительно Mamba-1 в своих конфигурациях. Это не end-to-end гарантия для любого стека: проекции, FFN, kernel launch и движение весов остаются.

8. DeltaNet и Gated DeltaNet: память, которую можно исправлять

Обычная аддитивная линейная память записывает новую пару сложением:

St=St−1+vtkt⊤.S_t=S_{t-1}+v_tk_t^\top.

Если один и тот же ключ встречается снова, старое и новое значения складываются. Дельта-правило сначала измеряет текущее чтение, а затем исправляет ошибку:

St=St−1+βt(vt−St−1kt)kt⊤.S_t = S_{t-1} + \beta_t \bigl(v_t-S_{t-1}k_t\bigr)k_t^\top.

Для нормированного ktk_t и βt=1\beta_t=1 чтение по этому направлению становится ровно vtv_t. При 0<βt<10<\beta_t<1 происходит частичная замена.

Пусть

k=(1,0)⊤,v1=(1,2)⊤,v2=(3,4)⊤.k=(1,0)^\top, \qquad v_1=(1,2)^\top, \qquad v_2=(3,4)^\top.

После первой записи S1=v1k⊤S_1=v_1k^\top. Вторая аддитивная запись дала бы чтение (4,6)(4,6) — старое и новое значения смешались. Обновление по дельта-правилу при β=0.5\beta=0.5 даёт (2,3)(2,3), а при β=1\beta=1 — точно (3,4)(3,4).

DeltaNet развивает это правило и эффективный параллельный алгоритм. Gated DeltaNet добавляет отдельное адаптивное забывание. Эти механизмы дополняют друг друга: дельта-правило адресно исправляет запись, gate может быстро уменьшить влияние более широкой части состояния.

Обозначим общий коэффициент забывания через γt∈[0,1]\gamma_t\in[0,1]. Сначала затухает всё состояние, затем исправляется выбранное направление:

St=γtSt−1+βt(vt−γtSt−1kt)kt⊤.S_t=\gamma_t S_{t-1}+\beta_t(v_t-\gamma_t S_{t-1}k_t)k_t^\top.

При единичном ключе чтение равно (1−βt)γtSt−1kt+βtvt(1-\beta_t)\gamma_t S_{t-1}k_t+\beta_t v_t. Поэтому βt=1\beta_t=1 даёт точную замену и при γt<1\gamma_t<1. Направления других, неортогональных ключей тоже меняются: адресная запись не означает полной независимости записей.

VIZ m8/05 — редактируемая ассоциативная память Сложение, частичная коррекция, полная замена и вариант с забыванием на одном направлении ключа.

9. Фиксированное состояние и цена адресуемости

Чтобы увидеть фундаментальный компромисс, рассмотрим простую аддитивную ассоциативную память:

S=∑i=1mviki⊤,v^i=Ski.S=\sum_{i=1}^{m}v_i k_i^\top, \qquad \hat v_i=Sk_i.

При случайных нормированных ключах они не ортогональны, поэтому перекрёстные члены создают интерференцию. В замороженном сценарии с dk=dv=32d_k=d_v=32 средняя квадратичная ошибка растёт примерно от 0.14 при четырёх парах до 4.14 при 128.

VIZ m8/06 — ограниченная ёмкость фиксированной памяти Интерференция в игрушечной аддитивной ассоциативной памяти. Это не измерение качества Mamba и не доказательство поведения всех SSM.

Контрольная softmax-кривая использует явную таблицу ключей и значений и большой множитель логитов (обратную температуру 20, то есть температуру 0.05); она почти восстанавливает записанные значения в этом опыте. Но это тоже не универсальный результат Transformer. График лишь противопоставляет адресуемое хранение фиксированному матричному сжатию.

Обобщить опыт можно в следующей форме:

при фиксированной численной точности состояние фиксированного размера создаёт ограничение на объём сохраняемой информации; качество зависит от его размерности, структуры обновления, обучения и задачи.

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

На графике обе схемы получают одни и те же случайные ключи и значения при каждой нагрузке. Для независимых единичных ключей, изотропных в dkd_k измерениях, и значений с независимыми координатами нулевого среднего и дисперсии 1 ожидаемая ошибка аддитивной памяти на координату равна (m−1)/dk(m-1)/d_k. Пунктир показывает это ожидание; одна фиксированная выборка не обязана совпадать с ним.

10. Арифметика сделки: полный кэш и основные операции

Память

Все объёмы ниже относятся к одной последовательности и всем указанным слоям; веса модели и рабочие буферы считаются отдельно. LL — число слоёв, HkvH_{kv} — число KV-голов, dhd_h — ширина головы, bb — байтов на значение. Используем L=32L=32, Hkv=8H_{kv}=8, dh=128d_h=128, b=2b=2. Во внутренних обозначениях dinner=8192d_{inner}=8192 — число каналов, dstated_{state} — размер состояния на канал, dconv=4d_{conv}=4 — хранимая ширина свёртки. Здесь K=1024 и M=1024² токенов.

Для GQA-Transformer из модуля 5:

MKV/token=2LHkvdhb=128 KiB/token.M_{KV/token} =2LH_{kv}d_hb =128\text{ KiB/token}.

Для Mamba-1-подобного стека считаем два постоянных состояния:

MSSM=Ldinnerdstateb=8 MiB,M_{SSM}=L d_{inner}d_{state}b=8\text{ MiB}, Mconv=Ldinnerdconvb=2 MiB.M_{conv}=L d_{inner}d_{conv}b=2\text{ MiB}.

Итого:

Mrec=10 MiB,N∗=80.M_{rec}=10\text{ MiB}, \qquad N^*=80.

Для Mamba-2-подобной учебной геометрии dstate=128d_{state}=128. Открытая реализация может хранить в кэше свёртки не только xx, но и B/C-каналы; при dconv=4d_{conv}=4:

MSSM=64 MiB,M_{SSM}=64\text{ MiB}, Mconv=2.0625 MiB,M_{conv}=2.0625\text{ MiB}, Mrec=66.0625 MiB.M_{rec}=66.0625\text{ MiB}.

Точное пересечение — 528.5 токена, первый целый токен за границей — 529.

Гибрид из 32 слоёв, где четыре используют attention, на 256K хранит 4 GiB KV плюс 8.75 MiB рекуррентное состояние остальных 28 слоёв. Память всё ещё растёт как O(N)O(N) из-за attention-слоёв, но коэффициент перед длиной в восемь раз меньше.

Арифметика центрального оператора

Сравним один слой и один новый токен при decode. Здесь отдельно задаём dmodel=4096d_{model}=4096, dinner=8192d_{inner}=8192 и dstate=16d_{state}=16 — размер состояния из Mamba-1-подобного примера. NN обозначает число доступных ключей. Умножение и сложение считаются двумя операциями, даже если аппаратно выполняются одной инструкцией.

Внимание вычисляет скалярные произведения QK и взвешенную сумму V: каждое из двух матричных произведений требует примерно 2Ndmodel2Nd_{model} операций. Softmax и подготовка Q/K/V считаются отдельно. Для диагональной SSM с уже вычисленными коэффициентами шаг h+=a⊙h+b⊙xh^+=a\odot h+b\odot x требует три операции на координату состояния: два умножения и сложение. Чтение y=Ch+y=C h^+ добавляет примерно ещё две на координату. Ведущие оценки поэтому равны

4Ndmodelпротив5dinnerdstate4Nd_{model} \quad\text{против}\quad 5d_{inner}d_{state}

и дают отношения 25.6× на 1K, 819.2× на 32K и 26 214.4× на 1M. При подсчёте каждой скалярной операции чтение содержит на одно сложение меньше на канал; ведущая оценка опускает эту малую поправку. Это не скорость всей модели: вне сравнения остаются подготовка коэффициентов SSM, softmax, проекции, свёртка, гейты, FFN, движение весов и эффективность исполнения.

VIZ m8/07 — память и арифметика основных операций Сверху — полный кэш фиксированного размера и растущий KV-кэш; снизу — только число операций смешивания токенов, без оценки задержки полного шага.

В примере Mamba-2 используется одна группа B/C и все 8192 каналов участвуют в SSM. В общем случае число каналов свёртки равно dssm+2gdstated_{ssm}+2g d_{state}, где gg — число групп. Состояние SSM может храниться в другом формате, чем свёртка: bf16 для обоих — условие данного расчёта.

11. Гибриды: три способа совместить сводку и адресацию

Чередование слоёв

Jamba чередует Transformer-, Mamba- и MoE-компоненты. Qwen3.5-35B-A3B использует точный повторяющийся паттерн:

10×[3×(Gated DeltaNet→MoE)+1×(Gated Attention→MoE)].10\times \bigl[ 3\times(\text{Gated DeltaNet}\to\text{MoE}) + 1\times(\text{Gated Attention}\to\text{MoE}) \bigr].

Так 75% слоёв несут фиксированное состояние, а 25% сохраняют адресуемый KV-cache.

Параллельные ветви

Falcon-H1 проводит вход через ветви Mamba-2 и внимания внутри одного блока. Обе ветви участвуют на каждой глубине, поэтому вычисления внимания нужны в каждом таком блоке. Эксперименты с удалением ветвей обученной модели выявляют функциональную специализацию, но не задают универсальную роль каждой ветви во всех гибридах.

Специализированные комбинации

Kimi K3 имеет 93 слоя: 69 KDA и 24 Gated MLA. Attention Residuals управляет смешиванием по глубине и не является названием softmax-ветви. Nemotron 3 Super и Ultra сочетают Mamba, attention, LatentMoE и MTP при разных масштабах — 120B/12B и 550B/55B.

Линия MiniMax напоминает, что название семейства не гарантирует архитектурную преемственность. MiniMax-01 и M1 использовали Lightning Attention. MiniMax M2 стала моделью с полным вниманием после недостаточного качества на длинном контексте гибридной схемы в описанном разработчиком эксперименте. MiniMax M3 затем ввела MiniMax Sparse Attention — уже другую ветвь, относящуюся к разреженному вниманию, а не к фиксированному рекуррентному состоянию.

VIZ m8/08 — три схемы гибридизации Чередование, параллельные ветви и специализированные гибриды. Пропорция слоёв является свойством конкретной модели, а не универсальным стандартом.

12. Код первого уровня: scan, дельта-правило и чанки

import numpy as np

def zoh_diagonal(a, b, delta):
    """Diagonal A: [n], B: [n,p], positive scalar step; caller validates shapes."""
    a = np.asarray(a, dtype=np.float64)
    b = np.asarray(b, dtype=np.float64)
    transition = np.exp(delta * a)
    factor = np.full_like(a, float(delta))
    np.divide(np.expm1(delta * a), a, out=factor, where=a != 0)
    return transition, factor[:, None] * b

def delta_step(state, key, value, beta, decay=1.0):
    """State [dv,dk], unit key [dk], value [dv]; decay before correction."""
    base = decay * state
    prediction = base @ key
    return base + beta * np.outer(value - prediction, key)

def compose_affine_pair(later, earlier):
    """Elementwise transforms; returns later(earlier(h)), not the reverse."""
    a2, b2 = later
    a1, b1 = earlier
    return a2 * a1, a2 * b1 + b2

Три функции показывают разные части механизма. zoh_diagonal относится к точной дискретизации выбранной непрерывной системы. delta_step — к редактируемой ассоциативной памяти. compose_affine_pair даёт ассоциативный оператор, необходимый для параллельного префиксного прохода.

Промышленный Mamba-kernel добавляет входозависимые параметры, пакетные формы, fused convolution, layout для Tensor Cores и внимательную работу с точностью. Учебный код нужен не для скорости, а чтобы численный контракт был видимым.

14. Как читать открытый код Mamba

У реализации есть два важных уровня состояния.

В Mamba-1 кэш обычно содержит:

  • conv_state формы примерно [batch, d_inner, d_conv];
  • ssm_state формы [batch, d_inner, d_state].

В Mamba-2 свёртка включает каналы x и B/C. Состояние SSM имеет форму [batch, nheads, headdim, d_state], где nheads × headdim = d_ssm. Для подсчёта нужны формы в коде и число групп B/C.

Второй важный момент — различие непрерывной модели и обучаемой параметризации. Открытая Mamba-2 записывает вход членом ΔBx\Delta Bx. При этом полная матрица входа точной ZOH-дискретизации из §4 не вычисляется. Поэтому при чтении исходного кода нужно ответить на два отдельных вопроса:

  1. какую непрерывную интуицию использует архитектура;
  2. какое дискретное обновление исполняет конкретное вычислительное ядро.

VIZ m8/09 — как читать рекуррентный кэш Паспорт кэша: типы слоёв, формы обоих состояний, число групп и форматы чисел. Одного ярлыка «Mamba» недостаточно.

15. Современный ландшафт: читать не название, а контракт

СемействоПоследовательный механизмАрхитектурный контрактКонтекстОснование
Mambaселективная SSMосновная сеть без вниманиядо 1M в экспериментах авторовстатья и код
Mamba-2SSD/SSMрекуррентная и блочная формызависит от конкретной моделистатья и код
JambaMamba + attention + MoEчередование слоёвдо 256Kстатья и выпуск модели
Falcon-H1Mamba-2 ∥ attentionпараллельные ветви, 0.5B–34Bдо 256Kтехнический отчёт
Qwen3.5-35B-A3B3 Gated DeltaNet : 1 полное внимание40 слоёв, 35B/3B, MoE262 144 исходно; до 1 010 000 с расширениемофициальная карточка и конфигурация
Kimi K369 KDA + 24 Gated MLAAttnRes отдельно, 2.8T/104B1Mтехнический отчёт/repo
Nemotron 3 SuperMamba–Attention + LatentMoE + MTP120B/12Bдо 1Mофициальный отчёт
Nemotron 3 UltraMamba–Attention + LatentMoE + MTP550B/55Bдо 1Mофициальный отчёт
MiniMax M2полное вниманиеполное внимание вместо Lightningоколо 196K в открытой конфигурациизаметка разработчика и конфигурация
MiniMax M3разреженное вниманиеMSA, состояние не фиксировано1M в условиях отчётастатья, результаты авторов
Mamba-3расширенная рекуррентная SSMкомплексное состояние, MIMOисследовательский режимстатья
SISAдобавка к оценке внимания в SDPAсохраняет KV-cacheисследовательский режимстатья

Таблица специально разделяет архитектуру и уровень доказательств. Для закрытой модели или неполной карточки корректный ответ — «не раскрыто», а не реконструкция по максимальной длине контекста.

16. Аудио, видео и другие длинные потоки

Рекуррентный носитель особенно привлекателен там, где вход создаёт много последовательных временных шагов: аудио, видео, сенсорные потоки, геномные последовательности. Постоянное состояние позволяет обновлять модель без линейного роста кэша.

Это не значит, что модальности «однородны» или не требуют точного поиска. В видео может понадобиться вернуться к конкретному кадру, в аудио — к ранней реплике, в агентной траектории — к определённому действию. Одно фиксированное состояние затрудняет произвольную точную адресацию.

Архитектурные ответы знакомы:

  • редкие слои внимания;
  • внешний поиск;
  • иерархическая память;
  • отдельные событийные индексы;
  • параллельные рекуррентная и адресуемая ветви.

Поэтому мультимодальный паспорт должен указывать не только размер состояния, но и способ возврата к отдельным событиям.

19. Ключевые выводы модуля

VIZ m8/10 — памятка по SSM и гибридам SSM в одной схеме: точная дискретизация, селективность, два компонента состояния, SSD, дельта-правило, ограниченная адресуемость и гибриды.

  • SSM заменяет растущий список прошлых токенов состоянием фиксированной размерности.
  • Mamba делает запись, чтение и скорость забывания зависимыми от входа.
  • Полный кэш включает состояние SSM и состояние короткой свёртки.
  • SSD даёт несколько вычислительных форм для структурированного класса SSM, а не для любой динамической системы.
  • Дельта-правило позволяет исправлять ассоциативную запись; гейт добавляет адаптивное забывание.
  • Фиксированное состояние экономит память, но создаёт ограничение на объём сохраняемой информации.
  • Гибриды с полным вниманием возвращают адресуемость ценой линейно растущего KV-кэша в части слоёв; фиксированные локальные окна задают другую границу памяти.
  • Арифметику основного оператора следует отличать от задержки полного шага.
  • Названия семейств не гарантируют архитектурную преемственность: MiniMax M2 и M3 — наглядный пример.
  • Современную модель следует читать по типам слоёв, формам состояния и геометрии KV и источнику каждого утверждения.

20. первоисточники

Основные источники:

Дальше: модуль 9 — претрейн. Мы уже разобрали архитектуру; теперь выберем данные, распределим вычислительный бюджет и изучим оптимизацию. К ограничениям пропускной способности памяти и roofline вернёмся в модуле 10.

Источники повторно сверены 11 октября 2026 года. Числа памяти — учебные сценарии; результаты авторов сохраняют исходные условия.