
В декабре 2023 года в ML-сообществе поднялась шумиха: заголовки пестрели заявлениями о «закате эры трансформеров». Поводом послужила научная работа Альберта Гу и Три Дао с непримечательным названием: «Mamba: линейное моделирование последовательностей с селективными пространствами состояний». В представленной архитектуре отсутствовал механизм self-attention — тот самый фундамент, на котором базируются все современные нейросетевые гиганты. При этом Mamba обрабатывала длинные тексты в разы быстрее и экономичнее трансформеров.
Прошло достаточно времени, чтобы констатировать: трон под трансформерами не пошатнулся. Однако финал этой истории оказался куда интереснее, чем стандартный провал «хайповой» технологии.
В чем уязвимость трансформеров
Чтобы осознать масштаб вызова, брошенного Mamba, нужно вникнуть в архитектурные особенности трансформеров.
Языковые модели воспринимают текст дискретными единицами — токенами.

Важно понимать: токен — это не всегда полноценное слово. Это может быть морфема или знак препинания. Поэтому реальный объем данных, доступных модели, порой меньше ожидаемого. Впрочем, для базового понимания концепции токен можно приравнять к слову.
Механизм внимания работает через перекрестное сопоставление: каждый токен «оценивает» связь со всеми остальными в контексте. Местоимение «он» должно крепко «цепляться» за «директора», упомянутого ранее, и игнорировать соседние предлоги. Когда в последовательности длиной N каждый элемент связывается с каждым, общее количество операций достигает порядка N², что приводит к квадратичному росту вычислительных затрат.
Для коротких запросов это незаметно, но при работе с книгами или обширными логами кода «квадратичная зависимость» начинает критически замедлять систему. К этому добавляются высокие требования к видеопамяти: для генерации каждого следующего токена модель обязана хранить «ключи и значения» (KV-кэш) для всей предыдущей истории, и этот объем памяти линейно растет вместе с длиной контекста.
Mamba задала фундаментальный вопрос: действительно ли необходимо столь тотальное сопоставление всех токенов друг с другом?

Новые GPU в облаке Selectel от 132,18 ₽/час
Видеокарты для ресурсоемких задач — NVIDIA® H200, RTX™ 6000 Pro.
Альтернатива: принцип «одного состояния»
Существует и иной подход к обработке последовательностей: вместо хранения всей истории мы поддерживаем некое «текущее состояние» — сжатое резюме прочитанного, которое обновляется при поступлении каждого нового фрагмента.
Именно так функционировали рекуррентные нейросети (RNN), доминировавшие в NLP до 2017 года. Их вытеснили трансформеры из-за двух фатальных недостатков: проблем с параллелизацией обучения и постепенной деградации (забывания) информации при работе с длинными текстами.

Mamba стала эволюцией этого метода. Авторам удалось преодолеть старые ограничения, сохранив идею рекуррентного обновления, но сделав его максимально эффективным.
Архитектура State Space Model (SSM)
Mamba базируется на модели пространства состояний (SSM). Здесь скрытое состояние представлено вектором фиксированной размерности, который аккумулирует «суть» всего прочитанного ранее.
Цикл обработки токена выглядит так:
-
Берется текущее накопленное состояние;
-
Оно трансформируется (параметры A): часть данных сохраняется, часть «выветривается»;
-
В состояние интегрируется новый токен (параметры B определяют степень его влияния);
-
Формируется выходной результат (параметры C извлекают нужную информацию);
-
Переход к следующему шагу.
Это дает колоссальное преимущество: вычислительная сложность каждого шага остается константной (линейная масштабируемость), а потребление памяти не раздувается, в отличие от тяжеловесного KV-кэша трансформеров.
Прорыв Mamba: адаптивность (селективность)
Главная проблема классических SSM заключалась в фиксированных параметрах: одни и те же веса применялись ко всем словам без разбора. Это мешало модели различать значимые детали и «мусорные» предлоги.
В Mamba реализовали **механизм отбора**: параметры A, B и C вычисляются динамически для каждого входящего токена. Модель «на лету» решает, насколько глубоко новый элемент должен проникнуть в «память» состояния.
# Классический подход: фиксированный алгоритм
def step_fixed(h, x, A=0.9, B=0.5):
return A * h + B * x
Подход Mamba: избирательное усвоение
def step_selective(h, x):
importance = abs(x)
gate = importance / (1 + importance) # коэффициент от 0 до 1
return (1 - gate) h + gate x
print(step_selective(0.0, 5.0)) # 4.17 — важное событие усвоено
print(step_selective(0.0, 0.1)) # 0.01 — шум проигнорирован
Благодаря этому «фильтру» важные данные сохраняются в состоянии надолго, а лишняя информация отсекается практически мгновенно.
Почему это работает быстро?
Остается вопрос: если это рекуррентный процесс, почему он не тормозит при обучении? Секрет — в ассоциативности операций. Длинную последовательность преобразований состояния можно разбивать на независимые блоки, вычислять их параллельно на GPU, а затем объединять результаты.
import functools
def combine(L, R):
aL, bL = L
aR, bR = R
return (aR aL, aR bL + bR) # параллельно объединяем части
steps = [(0.9, 1.0), (0.8, 0.0), (0.5, 2.0), (0.2, 0.0)]
Можно разбить на (steps[:2]) и (steps[2:]) и обработать одновременно
Mamba-2 довела эту технику до совершенства, превратив рекуррентность из «бутылочного горлышка» в эффективный алгоритм, оптимизированный под параллельные вычисления.
Где Mamba все еще уступает
У фиксированного размера состояния есть и оборотная сторона — потеря «сырых» деталей. В сжатом векторе невозможно хранить каждый токен в первозданном виде. В задачах, требующих точного цитирования, поиска конкретных идентификаторов или работы с дословным копированием фрагментов из огромных документов, трансформеры все еще точнее — за счет хранения всех токенов «на виду».
Вердикт: эволюция, а не революция
Mamba не «убила» трансформеры, но стала мощным дополнением. Индустрия пришла к оптимальному гибридному решению: в архитектуре моделей теперь сочетаются слои Mamba (для эффективности и длинного контекста) и классические слои Attention (для точечной точности).
Золотой стандарт текущего момента — соотношение примерно 7:1 в пользу Mamba. Это позволяет минимизировать раздувание KV-кэша, сохраняя при этом все возможности современных LLM. Вполне вероятно, что нейросеть, с которой вы взаимодействуете сегодня, уже использует эту синергию «под капотом».

