Перейти к содержанию
Публикация AiManual

Mamba против Трансформеров: полный разбор архитектуры State Space Models для длинных контекстов

Технический разбор Mamba и State Space Models: почему эта архитектура быстрее Transformers для работы с миллионом токенов и как устроен механизм селективного вн

Коротко

Что будет в материале

  1. 01

    Трансформеры устали. Пора их заменить?

  2. 02

    Как работает эта штука? Простыми словами

  3. 03

    Цифры, которые заставят вас задуматься

  4. 04

    Где Mamba реально выигрывает?

Трансформеры устали. Пора их заменить?

Представьте, что вам нужно обработать книгу в 500 страниц. GPT-4 справится с парой глав. Claude 3 - может, с тремя. Mamba проглотит всю книгу целиком и попросит добавки. Это не преувеличение - архитектура State Space Models действительно работает с последовательностями до миллиона токенов, не сжигая при этом серверный кластер.

Пока все пляшут вокруг оптимизации внимания в трансформерах - sparse attention, sliding window, линейные аппроксимации - Mamba предлагает радикально другой подход. Вместо того чтобы латать квадратичную сложность, она её просто не имеет.

State Space Models (SSM) - это математические модели, изначально разработанные для контроля систем в инженерии. В 2021 году их адаптировали для глубокого обучения, а в 2023 году Mamba добавила туда селективность и взорвала индустрию.

Как работает эта штука? Простыми словами

Забудьте про механизм внимания. Совсем. Вместо того чтобы вычислять попарные взаимодействия между всеми токенами (это O(n²)), Mamba использует скрытое состояние, которое эволюционирует во времени.

1 Входной токен обновляет скрытое состояние

Каждый новый токен последовательности не сравнивается со всеми предыдущими. Вместо этого он модифицирует внутреннее представление модели. Это как беседа с человеком, который помнит весь разговор, а не перечитывает его заново перед каждым ответом.

2 Селективность - главный трюк Mamba

Ранние SSM были статичны - параметры не зависели от входных данных. Mamba сделала их динамическими. Параметры матриц A, B, C теперь вычисляются на основе входного токена. Это позволяет модели решать, какую информацию запомнить, а какую - проигнорировать.

💡
Селективность - это то, что отличает Mamba от предыдущих SSM. Без неё модель не могла бы фильтровать информацию и работала бы как плохая RNN.

3 Параллельное обучение, последовательный инференс

Во время обучения Mamba использует хитрый трюк с параллельным сканированием (parallel scan), что позволяет обучаться на GPU эффективно. Во время инференса она работает как рекуррентная сеть - каждый новый токен требует фиксированного количества вычислений, независимо от длины контекста.

Цифры, которые заставят вас задуматься

АрхитектураСложность инференсаМакс. контекст (практически)Память на 100к токенов
Transformer (полное внимание)O(n²)8-32к токеновГигабайты
Transformer (sliding window)O(n*w), w=окно100-200кСотни МБ
Mamba (SSM)O(n)1M+ токеновДесятки МБ

Разница в памяти - это не просто техническая деталь. Это разница между "запустить на A100" и "запустить на ноутбуке". Если вы работаете с длинными документами, кодом или аудио - Mamba меняет правила игры.

Но не всё так радужно. Mamba проигрывает трансформерам в задачах, где нужно точное точечное внимание - например, в некоторых типах математических рассуждений или когда нужно найти конкретную цитату в тексте.

Где Mamba реально выигрывает?

  • Обработка геномов - последовательности длиной в миллионы нуклеотидов. Трансформеры тут просто физически не влезают в память.
  • Аудио и видео - высокочастотные сигналы создают огромные последовательности. SSM обрабатывают их без потери качества.
  • Длинные документы - юридические контракты, научные статьи, книги. Mamba может анализировать документ целиком, а не по кускам.
  • Временные ряды - финансовые данные, показания сенсоров. Линейная сложность позволяет обрабатывать годы данных за разумное время.

Интересно, что подходы вроде Grafted Titans пытаются решить проблему длинных контекстов в трансформерах хирургическими методами, в то время как Mamba предлагает фундаментально новую архитектуру.

А что с альтернативами?

Mamba - не единственная попытка уйти от квадратичной сложности. Есть ещё:

  • Linear Transformers - используют kernel trick для аппроксимации внимания. Быстрее, но точность страдает.
  • Performers - случайные проекции для оценки внимания. Хитро, но добавляет шум.
  • RWKV - гибрид RNN и трансформера. Хорош для инференса, но сложен в обучении.
  • Hyena - использует длинные свёртки. Конкурирует с Mamba по производительности.

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

Проблемы, о которых не говорят в статьях

Всё звучит прекрасно, пока не попробуешь использовать Mamba в продакшене. Вот что бесит на практике:

  • Нестабильность обучения - SSM чувствительны к инициализации. Иногда модель просто не сходится, и непонятно почему.
  • Плохая поддержка в библиотеках - попробуйте найти готовую реализацию Mamba в Hugging Face. Их в разы меньше, чем трансформеров.
  • Сложность отладки - когда трансформер ошибается, можно посмотреть attention maps. В Mamba такого нет - чёрный ящик стал ещё чернее.
  • Проблемы с quantization - рекуррентные вычисления накапливают ошибки. После квантизации Mamba может работать заметно хуже.

И да, инструменты вроде T-Scan для визуализации внутренних активаций тут бесполезны. Архитектура другая - инструменты тоже нужны другие.

Кому стоит смотреть в сторону Mamba?

Если вы:

  • Работаете с последовательностями длиннее 100к токенов
  • Имеете ограничения по памяти (мобильные устройства, edge computing)
  • Занимаетесь аудио, видео или геномикой
  • Готовы разбираться с сырой технологией, а не использовать готовые модели

Тогда Mamba - ваш выбор. Если же вам нужна стабильность, поддержка сообщества и предобученные модели на каждый случай жизни - оставайтесь с трансформерами.

Кстати, если интересно, как разные архитектуры справляются с композиционными задачами, посмотрите статью про бикамеральную архитектуру TOPAS-DSPL. Там тоже интересные подходы к обработке информации.

Что будет дальше?

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

Ещё одно направление - специализированные SSM для разных типов данных. Сейчас Mamba в основном тестируют на тексте, но её потенциал в мультимодальных задачах огромен.

💡
Совет: если экспериментируете с Mamba, начните с небольших последовательностей. Проблемы масштабирования проявляются не сразу, и лучше их отловить на ранней стадии.

Лично я ставлю на то, что через 2-3 года мы увидим модели, которые будут использовать SSM как первый слой для обработки длинного контекста, а потом передавать сжатое представление в трансформер для тонкой работы. Что-то похожее на подход в mHC от DeepSeek, но для масштабирования контекста.

А пока - если у вас есть задача, где длина контекста измеряется не в тысячах, а в сотнях тысяч токенов, присмотритесь к Mamba. Это боль, это сыро, это требует глубокого понимания. Но когда это работает - это выглядит как магия.