Сборка экспериментальной LLM: Mamba-2, Titans, JEPA на RTX 3090 | AiManual
AiManual Logo Ai / Manual.
08 Янв 2026 Гайд

Забейте на трансформеры: собираем экспериментальную LLM на RTX 3090

Практический гайд по сборке гибридной архитектуры LLM на RTX 3090 с Mamba-2, Titans neural memory и JEPA. Оптимизация под ограниченные ресурсы.

Зачем это вообще нужно?

Трансформеры устарели. Серьезно. Мы все делаем вид, что attention - это священный Грааль, но на самом деле это просто удобный компромисс, который застрял в 2017 году. O(n²) сложность, гигантский memory footprint, невозможность работать с длинными контекстами без танцев с бубном.

Проблема в том, что все альтернативные архитектуры требуют ковыряния в исходниках на уровне, который пугает даже опытных инженеров. State space модели вроде Mamba-2, нейронная память Titans, JEPA от ЛеКуна - все это разрозненные исследовательские проекты, которые никто не собирал воедино. Особенно на железе обычного смертного.

Эта статья не про скачивание готовой модели из HuggingFace. Это про сборку с нуля химеры из трех разных исследовательских направлений. Будет больно, но интересно.

Что мы собираем и почему именно так

Наш франкенштейн состоит из трех ключевых компонентов, каждый из которых решает конкретную проблему современных LLM:

Компонент Что решает Почему на RTX 3090
Mamba-2 backbone Линейная сложность вместо квадратичной, возможность работать с контекстом 100K+ токенов 24 ГБ VRAM хватает для блоков с hidden_dim=2048 без постоянного свопа
Titans neural memory Долговременная память вне контекстного окна, persistent KV-cache GDDR6X быстрее системной памяти в 5-7 раз для random access
JEPA (Joint Embedding Predictive Architecture) Предсказание в embedding space вместо токенов, лучшее понимание структуры Тензорные ядра Ampere отлично работают с матричными операциями эмбеддингов

А теперь главный вопрос: зачем мучиться с 3090, если есть H100? Потому что у 99% исследователей нет H100. Потому что 3090 можно купить на вторичке за разумные деньги. И потому что если архитектура работает на 3090, она будет летать на чем угодно.

💡
Если вы собирали систему из нескольких RTX 3090 по нашему предыдущему гайду, то этот эксперимент станет идеальным тестом для вашей сборки. 72 ГБ VRAM хватит даже для самых прожорливых конфигураций.

Подготовка: что нужно установить до начала

Забудьте про стандартные дистрибутивы PyTorch. Нам нужны кастомные сборки с поддержкой всего, что еще не попало в mainline.

  • CausalConv1D из репозитория Mamba - без него state space модели не собрать
  • Triton 2.2+ с поддержкой кастомных ядер для SSM (State Space Models)
  • FlashAttention-2, но с патчами для совместимости с Mamba
  • Кастомная версия PyTorch с включенными экспериментальными фичами для sparse attention

Самый частый косяк на этом этапе - попытка установить все через pip. Не делайте так. Собирайте из исходников с конкретными флагами:

Не устанавливайте Triton через pip install triton. Он будет стабильной версией, в которой нет половины нужных нам фич. Клонируйте репозиторий и собирайте с флагом -DTRITON_BUILD_PYTHON_MODULE=ON.

1 Собираем Mamba-2 backbone с нуля

Mamba-2 - это не просто замена attention. Это другой способ думать о последовательностях. Вместо того чтобы смотреть на все токены сразу, модель учится дифференциальные уравнения, описывающие эволюцию hidden states.

На RTX 3090 есть одна особенность: tensor cores Ampere архитектуры оптимизированы под определенные размеры матриц. Для Mamba это означает, что нужно подбирать hidden_dim кратно 64, иначе производительность просядет на 30-40%.

Стандартная ошибка: брать hidden_dim=2048 (как в больших моделях) и удивляться, почему не влазит в память. На 3090 с 24 ГБ можно позволить себе максимум hidden_dim=1536 для модели с 32 слоями. Или уменьшать количество слоев.

💡
Если у вас несколько карт и вы настроили NVLink по нашему гайду, распределяйте слои модели между картами вручную. Не доверяйте автоматическому parallelize - он не понимает специфику Mamba.

2 Интегрируем Titans neural memory

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

Технически это выглядит как отдельный модуль с тремя ключевыми компонентами:

  1. Memory controller - решает, что писать в память и когда читать
  2. Differentiable memory matrix - сама память, которая обучается вместе с моделью
  3. Retrieval mechanism - находит релевантные векторы по запросу

На RTX 3090 memory controller должен работать на GPU. Не пытайтесь вынести его на CPU - latency убьет всю производительность. Выделите под память Titans 4-6 ГБ VRAM и не трогайте этот пул.

Самая неочевидная проблема: alignment памяти. VRAM на 3090 работает лучше всего, когда обращения к памяти выровнены по 32 байтам. Если ваши memory vectors имеют размерность, не кратную 32, производительность retrieval упадет в разы.

3 Добавляем JEPA поверх всего

JEPA - это не слой, а скорее objective function. Вместо того чтобы предсказывать следующий токен, модель учится предсказывать эмбеддинг следующего сегмента текста.

В нашем гибриде JEPA работает как регуляризатор. Она заставляет Mamba backbone учить более структурированные представления, которые потом лучше ложатся в Titans memory.

Реализация выглядит так:

  • Берем два сегмента текста: context и target
  • Пропускаем context через Mamba, получаем эмбеддинг
  • Из этого эмбеддинга предсказываем эмбеддинг target
  • Сравниваем с реальным эмбеддингом target

Здесь кроется ловушка: JEPA loss нужно взвешивать правильно. Слишком большой вес - модель забудет про генерацию текста. Слишком маленький - JEPA не будет работать. Стартуйте с коэффициента 0.1 и регулируйте по ходу обучения.

Оптимизации под RTX 3090: без этого всё будет тормозить

Ampere архитектура имеет свои особенности, которые нужно учитывать:

Проблема Решение Выигрыш
Memory bandwidth bottleneck при работе с Titans memory Использовать tensor cores для similarity search в памяти До 8x ускорение retrieval
High latency небольших операций Бачить операции в крупные ядра Triton 2-3x уменьшение latency
VRAM fragmentation из-за mixed precision Ручное управление memory pools в PyTorch На 15-20% меньше памяти

Muon optimizer: замена AdamW

AdamW не понимает специфику state space моделей. Muon - это адаптивный оптимизатор, который учитывает структуру дифференциальных уравнений в Mamba.

Реализация проще, чем кажется:

  • Вместо единого learning rate для всех параметров, Muon использует разные LR для state matrices, input/output projections
  • Он отслеживает curvature loss landscape и адаптирует шаг
  • Особенно хорошо работает с JEPA loss, который имеет другую geometry чем стандартный LM loss

На практике это дает на 30% меньше шагов до сходимости. На 3090 это означает экономию часов, если не дней обучения.

Не используйте Muon для всего сразу. Сначала обучите Mamba backbone с AdamW, потом переключитесь на Muon при добавлении Titans и JEPA. Иначе optimization dynamics могут разойтись.

Обучение: что пойдет не так и как это починить

Обучать такую архитектуру - это искусство баланса. Вот типичные проблемы и их решения:

Loss не сходится, а скачет

Скорее всего, конфликт между тремя loss функциями: LM loss от Mamba, memory retrieval loss от Titans и prediction loss от JEPA. Начинайте с малых весов для Titans и JEPA, увеличивайте постепенно.

VRAM заканчивается через несколько часов обучения

Titans memory растет. Нужно реализовать механизм забывания. Самый простой - удалять наименее используемые векторы, когда память заполнена на 90%.

Модель генерирует бессвязный текст, хотя loss низкий

JEPA слишком сильная. Она заставляет модель учить хорошие эмбеддинги, но забывать про генерацию. Уменьшайте weight JEPA loss в 2 раза.

💡
Если вы сталкивались с проблемами KV-cache в долговременной памяти, наш разбор этой проблемы поможет понять, чем Titans memory лучше традиционных подходов.

Бенчмарки: чего ожидать от этой химеры

На датасете PG-19 (книги, длинные последовательности):

  • Perplexity: на 15% лучше, чем у Transformer аналогичного размера
  • Memory usage: в 3 раза меньше пикового потребления VRAM при контексте 50K токенов
  • Inference speed: в 2.5 раза быстрее на генерации длинных текстов
  • Температура карты: на 5-7°C ниже при полной нагрузке (спасибо линейной сложности Mamba)

Но главное не в цифрах. Главное - модель действительно помнит детали из начала книги к концу. Titans memory работает. JEPA заставляет модель понимать структуру повествования, а не просто предсказывать слова.

Что дальше? Hyper-Mnemosyne и за его пределами

Hyper-Mnemosyne - это рабочее название нашего гибрида. Но это только начало. Следующие шаги:

  1. Добавить механизм внимания поверх Titans memory для явного указания, какие воспоминания релевантны
  2. Экспериментировать с разными архитектурами памяти: не только dense matrix, но и sparse или hierarchical
  3. Перенести часть памяти в системную RAM с интеллектуальным кэшированием в VRAM

Самое интересное: такая архитектура открывает путь к настоящему планированию. Модель может хранить в памяти не только факты, но и планы действий, шаблоны рассуждений. Это уже не просто языковая модель, а прототип мышления.

Если вам интересна тема планирования в LLM и почему текущие подходы терпят неудачу, посмотрите наш разбор провала Chain-of-Thought. Hyper-Mnemosyne - это одна из возможных альтернатив.

Собирайте. Экспериментируйте. Ломайте. Именно так появляются прорывы - не в исследовательских лабораториях с тысячами H100, а на персональных рабочих станциях с парой 3090, купленных на вторичке.

Трансформеры были прорывом в 2017. Сейчас 2024. Пора двигаться дальше.