Разбор Delta-Gating в Mamba: селективный механизм на примерах и математике | AiManual
AiManual Logo Ai / Manual.
17 Янв 2026 Гайд

Mamba изнутри: почему Delta-Gating — это не просто математика, а механизм выживания в море данных

Глубокий разбор математики Delta-Gating в Mamba: как работает селективный механизм, дискретизация Zero-Order Hold и почему это ломает Transformer. Примеры и инт

Проблема: трансформеры тонут в собственном внимании

Представьте, что вы читаете книгу. Не просто читаете, а на каждое новое слово перечитываете всю книгу с начала, пытаясь понять его контекст. Абсурд? Именно так, в упрощенном виде, работает self-attention в трансформерах. Квадратичная сложность O(n²) по длине последовательности — это не просто техническая деталь. Это архитектурный тупик.

Пока все играли в оптимизацию внимания (вспомните Routed GQA или Continuous Batching), команда из Stanford и CMU пошла другим путем. Зачем вообще хранить все? Зачем обрабатывать все? Мозг так не работает. Он фильтрует.

Ключевое наблюдение: в языковых данных 90% информации — шум. Трансформеры обрабатывают 100% шума с вычислительной сложностью O(n²). Mamba пытается найти 10% сигнала.

Решение: State Space Models, но не те, что вы думали

State Space Models (SSM) существовали десятилетиями в обработке сигналов. Простая линейная динамическая система:

h'(t) = A * h(t) + B * x(t)
y(t) = C * h(t) + D * x(t)

Где h(t) — скрытое состояние, x(t) — вход, y(t) — выход. A, B, C, D — параметры. Элегантно? Да. Полезно для языкового моделирования? Нет. Потому что классические SSM — линейны и инвариантны во времени.

А язык — нелинеен и зависит от контекста. Слово "банк" в "речной банк" и "банк данных" — это разные сущности. Классическая SSM обработает их одинаково. Провал.

Прорыв: входозависимость через Delta-Gating

Вот где начинается магия Mamba. Вместо фиксированных параметров A, B, C, они становятся функциями от входа:

# Псевдокод для интуиции
B = linear_B(x_t)  # Теперь B зависит от текущего входа
C = linear_C(x_t)  # И C тоже
Δ = softplus(linear_Δ(x_t) + param_Δ)  # А это — ключевой параметр
💡
Delta (Δ) — это не просто параметр. Это механизм селективности. Большое Δ означает "забудь прошлое быстро". Маленькое Δ — "помни долго". И это решение принимается для каждого токена индивидуально.

1 Дискретизация: от непрерывного времени к дискретным шагам

SSM описывают непрерывные системы. Но мы работаем с дискретными токенами. Нужно преобразовать. Используется Zero-Order Hold (ZOH):

# Дискретизация с помощью ZOH
A_bar = exp(Δ * A)  # Экспоненциальная матрица
B_bar = (A_bar - I) * inv(A) * B  # Интегрированный входной эффект

Здесь Δ выступает как шаг дискретизации. Но в Mamba Δ — не константа, а входозависимый параметр. Это меняет все.

2 Механизм выбора: как Δ решает, что помнить

Рассмотрим пример. Последовательность: "Король Англии Генрих VIII женился шесть раз"

  • Токен "Король": маленькое Δ. Это важное понятие, нужно помнить.
  • Токен "Англии": маленькое Δ. Контекст места.
  • Токен "Генрих": очень маленькое Δ. Это ключевой субъект.
  • Токен "VIII": среднее Δ. Порядковый номер, но не критично.
  • Токен "женился": большое Δ? Нет, маленькое! Это ключевой глагол.
  • Токен "шесть": среднее Δ. Количественное уточнение.
  • Токен "раз": большое Δ. Можно забыть после обработки.

Трансформер запомнит все с одинаковым "весом". Mamba — выборочно. И это решение принимается динамически, на основе самого токена.

Математика селективности: почему это работает

Формально, селективность в Mamba достигается через входозависимость параметров и механизм gating. Рассмотрим рекуррентную форму:

h_t = A_bar * h_{t-1} + B_bar * x_t
y_t = C * h_t

Где A_bar = exp(Δ * A). Если Δ большое, exp(Δ * A) быстро затухает (при отрицательных собственных значениях A). Прошлое состояние забывается. Если Δ маленькое — состояние сохраняется.

Параметр Классическая SSM Mamba (SSM + селективность) Эффект
A (матрица перехода) Фиксированная, обучаемая Фиксированная, но умножается на Δ Скорость забывания становится входозависимой
B (входная матрица) Фиксированная B = linear_B(x_t) Как входить в состояние зависит от входа
C (выходная матрица) Фиксированная C = linear_C(x_t) Как читать состояние зависит от входа
Δ (шаг дискретизации) Фиксированный гиперпараметр Δ = softplus(linear_Δ(x_t)) Самый важный параметр селективности

Практический пример: обработка кода

Возьмем фрагмент Python кода:

def calculate_total(items, tax_rate):
    subtotal = sum(items)
    tax = subtotal * tax_rate
    return subtotal + tax

Как Mamba с Delta-Gating обработает это:

  1. "def": маленькое Δ. Начало функции, нужно помнить для scope.
  2. "calculate_total": очень маленькое Δ. Имя функции — ключевой идентификатор.
  3. "(": большое Δ. Скобка — синтаксический шум.
  4. "items": маленькое Δ. Параметр функции.
  5. ",": большое Δ. Разделитель.
  6. "tax_rate": маленькое Δ. Второй параметр.
  7. "):": большое Δ. Закрывающая синтаксическая конструкция.
  8. "subtotal": маленькое Δ. Локальная переменная.
  9. "=": среднее Δ. Оператор присваивания.
  10. "sum(items)": маленькое Δ для "sum", большое Δ для скобок.

Трансформер потратит O(n²) вычислений на все токены одинаково. Mamba сфокусируется на семантически значимых токенах.

Именно эта селективность позволяет Mamba достигать линейной сложности O(n) вместо квадратичной O(n²) трансформеров. Но плата — потеря точной глобальной информации. Mamba жертвует некоторой "всевидящностью" ради эффективности.

Нюансы и подводные камни

Проблема инициализации Δ

Если Δ инициализирован неправильно, вся система ломается. Слишком маленькие Δ — модель помнит все, перегружается. Слишком большие Δ — модель ничего не помнит, бесполезна.

В оригинальной реализации используют параметризацию через softplus и смещение:

Δ = softplus(linear_Δ(x) + param_Δ)
# param_Δ инициализируется так, чтобы начальные Δ были разумными

Численная стабильность

Вычисление exp(Δ * A) при больших Δ может приводить к переполнению. На практике используют различные трюки:

  • Ограничение значений Δ
  • Использование разложений матричных экспонент
  • Гибридные CPU-GPU вычисления для чувствительных операций

Селективность vs контекстное окно

Mamba технически имеет бесконечный контекст (рекуррентная природа). Но на практике эффективное окно ограничено скоростью забывания. Если Δ слишком велики, контекстное окно сужается. Нужно балансировать.

Сравнение с другими подходами

Пока Mamba экспериментирует с селективностью, другие идут разными путями. Например, в DeepMath от Intel используют агентные подходы. В Dark CoT — цепочки мыслей.

Но Mamba атакует проблему на архитектурном уровне. Не через надстройки, а через фундаментальное переосмысление.

FAQ: частые вопросы по Delta-Gating

Q: Delta-Gating делает Mamba нелинейной?

Да и нет. Ядро SSM остается линейным. Но входозависимость параметров (через Δ, B, C) вносит нелинейность на уровне архитектуры. Это гибридный подход.

Q: Можно ли использовать Delta-Gating в трансформерах?

Теоретически — да. Практически — сложно. Механизм внимания фундаментально отличается от рекуррентных SSM. Но идея селективности просачивается везде. Смотрите нейроалгоритмическое мышление — там похожие принципы.

Q: Delta-Gating решает проблему длинных контекстов?

Решает, но не полностью. Линейная сложность — огромный плюс. Но рекуррентная природа создает свои проблемы: распараллеливание обучения, gradient flow. В полном разборе Mamba против трансформеров мы разбирали эти компромиссы.

Q: Почему именно параметр Δ, а не другие?

Δ контролирует скорость дискретизации и, следовательно, скорость забывания. Это наиболее прямой способ управлять селективностью. B и C тоже важны, но Δ — главный рычаг.

Что дальше? Селективность как новая парадигма

Delta-Gating в Mamba — не просто технический трюк. Это сдвиг парадигмы: от "обработать все" к "обработать важное".

Уже появляются гибриды. Представьте трансформер, где внимание применяется только к токенам с маленьким Δ (выбранным Mamba-подобным механизмом). Или SSM, где Δ вычисляется не линейно, а через маленькую нейросеть.

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

Пока трансформеры борются с квадратичной сложностью через патчи и костыли, Mamba предлагает чистый, математически элегантный путь. Рискованный? Да. Но в экспериментах на RTX 3090 эта рискованность уже окупается.

Совет напоследок: если будете реализовывать Mamba с нуля, начните с фиксированного Δ. Отладьте SSM ядро. Только потом добавляйте входозависимость. И следите за численной стабильностью exp(Δ * A) — это самый хрупкий кусок.

Селективность — не опция. Это требование следующего поколения ИИ. И Delta-Gating в Mamba — первый, робкий шаг в этом направлении.