Внимание в LLM · часть 8

Dynamic sparse attention

Окно заранее знает расстояние до токена, но ничего не знает о его смысле. Dynamic sparse attention (динамическое разрежённое внимание) добавляет дешёвый поиск: запрос сначала выбирает несколько релевантных блоков, и лишь затем внутри них вычисляется полноценный attention.

Позиция не говорит о релевантности

Локальное окно всегда читает последние блоки. Это надёжно для ближайшего контекста, но важное определение, число или условие может находиться гораздо раньше. Статический паттерн пропустит его независимо от содержания запроса.

Выберите один запрос и сначала найдите в документе нужный ему блок. Сравните последнее окно с динамическим выбором при том же запросе, затем смените вопрос. Какой способ меняет набор читаемых блоков вслед за содержанием запроса?

Какие блоки читать

последнее окно
Запрос к документу
Способ выбора блоков
Окно всегда читает последние блоки — даже если высокая оценка находится в начале документа.
Обзор20%не выбран
Архитектура72%релевантен, но пропущен
Обучение31%не выбран
Память96%релевантен, но пропущен
Бенчмарки18%не выбран
Ограничения42%выбран
Приложение12%выбран
Выводы28%выбран
Найдено 0 из 2 релевантных блоковОграничения, Приложение, Выводы
Выбор блоков по позиции и по содержаниюДинамический набор меняется вместе с запросом; попадание нужного блока зависит от оценки релевантности.

Переключайте вопросы к одному документу. Окно остаётся на месте, а dynamic selection меняет набор блоков вместе с запросом.

Сначала дешёвый поиск, потом дорогой attention

Каждый блок получает компактное представление. Indexer (индексатор) сравнивает запрос с этими представлениями и оставляет top-k кандидатов. Точные попарные оценки токенов вычисляются только внутри выбранного подмножества.

Два этапа поиска и точное чтение выбранных блоков
  1. Indexerбыстрые оценки блоков
  2. Top-kнесколько кандидатов
  3. Attentionточная работа с токенами
rb=sim(q,k¯b),S=TopK(r1,,rB)

Indexer ранжирует B блоков по их сводным ключам k¯b; основной attention читает только S.

Пример из LLMKimi · MoBAЗапрос выбирает top-k KV-блоков; подход используется для длинного контекста Kimi.

Поиск дополняют страховочными маршрутами

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

Три страховочных маршрута dynamic sparse attention
  1. Сжатая ветвьГрубое сжатое представление всего префикса.
  2. Выбранная ветвьТочные токены из наиболее релевантных блоков.
  3. Локальное окноПоследние токены доступны без участия indexer.
Пример архитектурыDeepSeek NSAТри ветви объединяют сжатый обзор, точный выбор дальних токенов и локальное окно. Пример из LLMDeepSeek-V3.2DeepSeek Sparse Attention применяется в модели для эффективной работы с длинным контекстом.

Поиск тоже требует вычислений

Чтобы выбрать лучшие блоки, indexer должен хотя бы грубо оценить весь префикс. Если он слишком тяжёлый, экономия основного attention растворяется в стоимости маршрутизации.

Компромиссы параметров динамического выбора
  1. Размер блокаменьше блок — точнее выбор; больше кандидатов для indexer
  2. Значение kбольше k — выше полнота (recall); дороже основной attention
  3. Качество indexerточнее поиск дальних фактов; сложнее обучение и вывод