Monodratic: разреженное внимание с хешированием вместо квадратичной сложности
Независимый исследователь показал работающий метод sparse attention для трансформеров: вместо полного перебора токенов используется хеш-таблица с обучаемой маршрутизацией. На синтетике точность ассоциативного вызова 99%, сложность близка к линейной (экспонента 0.99), но реальных бенчмарков на языковых моделях пока нет.
Квадратичная сложность внимания — главный тормоз масштабирования трансформеров на длинных контекстах. Если sparse-методы научатся сохранять качество при линейной сложности, это изменит экономику обучения и инференса больших моделей.
Что произошло
Независимый разработчик выложил Monodratic — архитектуру разреженного каузального внимания с обучаемой хеш-маршрутизацией. Вместо классического O(n²) перебора всех пар токенов система работает так:
- После применения RoPE исходные блоки распределяются по хеш-спискам (posting lists)
- Каждый запрос-токен обращается к нескольким хешам, получает кандидатов, ранжирует их
- Выбирается фиксированное число удалённых блоков + локальные блоки по умолчанию
- Softmax считается только на этом маленьком подмножестве
Результаты на синтетике: - Точность ассоциативного вызова 99.35% при выборе 2 удалённых блоков из 5 возможных (763/768 правильных ответов) - Необученный роутер: 55% (425/768), только локальное внимание: 20% (151/768) - Показатель степени сложности 0.993 (практически линейный рост) на последовательностях 4K–32K токенов на CPU - Максимальная погрешность по сравнению с полным dense-вниманием: 1.43e-6
Реализация на чистом PyTorch, код и воспроизводимость открыты. Автор честно признаёт: это пока proof-of-concept, синтетические эксперименты, нет данных по качеству на естественном языке и скорости в проде.
Автор: Никита Громов · Источник: reddit.com
Разработчикам. Модульная реализация sparse attention с интерфейсом [batch, seq, width], можно интегрировать в любую трансформерную архитектуру без переписывания обучения. Код на PyTorch, открытый, воспроизводимый — годится для экспериментов с длинным контекстом на своих задачах.
Бизнесу. Если подход выстрелит на реальных текстах, это открывает дверь к дешёвым длинным контекстам (документы, чаты, юридические дела) без взрывного роста вычислений. Риск: пока только синтетика, неясно, сохранится ли качество на языке.
Инвесторам. Проблема квадратичной сложности внимания — одно из главных узких мест масштабирования LLM. Если линейные методы докажут качество, это сдвинет экономику инференса и обучения. Но это исследовательская стадия, не продукт — следить за репликациями.
- Интеграция в open-source LLM (LLaMA, Mistral) для длинных контекстов — эксперименты с контекстами 100K+ токенов на потребительском железе
- Специализированные модели для документооборота, юридических и медицинских баз: где нужен длинный контекст, но не критична генерация на уровне GPT-4
- SaaS-сервисы поиска по внутренним базам знаний с натуральным языком — где скорость и масштаб важнее идеального качества
- Оптимизация локальных моделей для edge-устройств (мобилки, IoT) — разреженное внимание снижает нагрузку на память и процессор
- Фреймворк для тестирования sparse-методов: обёртка над Monodratic + бенчмарки — продавать команды, экспериментирующим с архитектурами
- Синтетические тесты — это не естественный язык. Ассоциативный вызов ≠ генерация текста, может развалиться на реальных данных
- Нет сравнения с актуальными sparse-методами (FlashAttention-3, ring attention, Mamba/SSM) — непонятно, где реальное преимущество
- PyTorch-реализация на CPU: без fused CUDA-ядер практический выигрыш в скорости неочевиден, особенно против оптимизированного dense
- Независимый исследователь без инфраструктуры — риск, что не хватит ресурсов на доведение до production-ready версии
Это тот редкий случай, когда independent researcher делает всё по уму: чёткая постановка, воспроизводимый код, честная оценка ограничений. Monodratic показывает, что обучаемая хеш-маршрутизация может работать — на синтетических тестах. Но дьявол в деталях: ассоциативный вызов — это не perplexity на естественном языке, и пока непонятно, сохранится ли магия на реальных задачах.
Что интересно: экспонента сложности 0.993 — это практически линейный рост, что для внимания трансформеров было бы прорывом. Но это замеры на CPU в PyTorch, без сравнения с FlashAttention или другими актуальными методами. Если кто-то из крупных лабораторий возьмёт идею и допилит до fused CUDA-ядер + прогонит на языковых бенчмарках — вот тогда станет ясно, есть ли тут реальная ценность или это красивая математика, которая не переживёт столкновения с энтропией естественного языка. Пока что — отличный proof-of-concept для тех, кто экспериментирует с длинными контекстами.
Комментарии