TL;DR
DSAS (Dual-Stage Adaptive Sharpening) — метод оптимизации attention механизма в LLM, который работает на уровне внутренних слоёв модели. Исследователи модифицируют матрицы внимания в два этапа: сначала взвешивают параграфы по релевантности (с учётом позиции), затем подавляют информационный обмен между ключевыми и нерелевантными частями текста.
Главная находка: модели теряют фокус при работе с множественными документами из-за двух проблем. Первая — слабое моделирование связей на больших расстояниях: модель видит 20 параграфов, но не может выделить 2-3 ключевых и игнорировать остальные 17. Второ��— "lost-in-the-middle": информация в середине длинного текста обрабатывается хуже, чем в начале или конце. Анализ attention scores показал, что даже когда модель даёт правильный ответ, информационные потоки от нерелевантных параграфов создают шум. А когда ответ неверный — ключевые параграфы получают недостаточно внимания.
Метод работает так: CGW-модуль отслеживает attention scores в выбранных слоях, вычисляет релевантность каждого параграфа и применяет позиционные веса (усиливает фокус на середине). RAS-модуль определяет ключевые параграфы через пороговое значение и блокирует информационный обмен между важными и неважными частями. Всё это происходит внутри модели через модификацию attention матриц — plug-and-play решение без переобучения.
Схема метода
ВАЖНО: DSAS работает на уровне архитектуры модели, требует доступа к весам через Python/PyTorch.
ШАГ 1 (CGW): Анализ attention scores → веса релевантности для каждого параграфа
├─ Вычисление information flow от параграфов к вопросу и целевой позиции
├─ Z-нормализация и sigmoid для получения базовых весов (v_m)
└─ Применение позиционных весов (g_m) через Gaussian distribution
ШАГ 2 (RAS): Классификация параграфов → подавление шума
├─ Разделение на ключевые (вес > среднего) и нерелевантные (вес < среднего)
└─ Подавление attention между ключевыми и нерелевантными группами
Применяется к последним 50% слоёв модели при каждом inference.
Инсайты для применения в промптах
Хотя DSAS требует программирования для полной реализации, исследование раскрывает принципы работы с множественными документами, которые можно применить через структурирование промптов:
1. Позиционирование важной информации
Инсайт: Модели хуже обрабатывают информацию в середине длинного контекста (U-shaped attention bias).
Как применить:
НЕПРАВИЛЬНО:
[10 нерелевантных документов]
[2 ключевых документа] ← потеряются в середине
[8 нерелевантных документов]
ПРАВИЛЬНО:
[2 ключевых документа] ← в начале
[18 остальных документов]
ИЛИ:
[18 остальных документов]
[2 ключевых документа] ← в конце
2. Явное выделение релевантности
Инсайт: Даже когда модель различает релевантные и нерелевантные параграфы, информационные потоки от "шума" мешают генерации ответа.
Как применить:
Контекст состоит из следующих документов:
🔑 КЛЮЧЕВЫЕ ДОКУМЕНТЫ (используй для ответа):
Документ А: [текст]
Документ Б: [текст]
📚 СПРАВОЧНЫЕ ДОКУМЕНТЫ (для контекста):
Документ В: [текст]
Документ Г: [текст]
...
Вопрос: [вопрос]
Инструкция: Сосредоточься на ключевых документах.
Используй справочные только если прямо связаны с вопросом.
3. Двухэтапное рассуждение
Инсайт: DSAS работает в два этапа — сначала определяет релевантность, потом работает с отфильтрованной информацией.
Как применить:
Вот 15 документов о разных компаниях.
Этап 1: Определи какие 2-3 документа релевантны вопросу:
"Какая компания первой запустила электромобиль в России?"
Этап 2: Используя ТОЛЬКО релевантные документы из Этапа 1,
дай развёрнутый ответ с цитатами.
4. Минимизация шума в контексте
Инсайт: Чем больше нерелевантных параграфов, тем слабее фокус на ключевых.
Как применить:
- Не загружай все документы сразу — предварительно отфильтруй
- Используй retrieval в два прохода: грубый отбор → точный анализ
- Структурируй длинный текст на явные блоки с метками релевантности
Пример применения принципов
Задача: Ты готовишь инвест-меморандум по новому ритейл-проекту. Загрузил 12 документов: финмодели конкурентов, отраслевые отчёты, кейсы аналогичных запусков, макроэкономические обзоры. Нужен синтез по теме "барьеры входа в онлайн-продукты в России 2024".
Промпт (с применением принципов DSAS):
Контекст разделён по релевантности:
🔑 КЛЮЧЕВЫЕ ДОКУМЕНТЫ (фокус внимания):
1. [Отчёт "Барьеры входа e-commerce РФ 2024" - Яндекс.Маркет]
2. [Кейс запуска "СберМаркет": первый год]
3. [Финмодель Wildberries: структура капзатрат на старте]
📚 СПРАВОЧНЫЕ ДОКУМЕНТЫ (используй для контекста):
4. [Макроэкономический обзор ЦБ РФ Q3 2024]
5. [Статистика онлайн-ритейла 2023-2024]
6-12. [Остальные документы]
Задача в два этапа:
ЭТАП 1: Проанализируй ключевые документы (1-3) и выдели:
- Топ-5 барьеров, которые называют все источники
- Специфику для России vs глобальный рынок
ЭТАП 2: Синтезируй выводы в структуру:
- Барьер → Как проявляется → Кейс из документов → Оценка критичности
Работай СТРОГО с ключевыми документами. Справочные используй только
если нужно уточнить цифры или макроконтекст.
Результат: Модель сфокусируется на документах 1-3 (они в начале + явно помечены), проигнорирует шум от остальных 9 документов, выдаст структурированный анализ с конкретными цитатами из релевантных источников.
Почему принципы работают
Слабость LLM: При обработке множественных документов модель "размазывает" внимание по всему контексту. Attention scores распределяются между всеми токенами, включая нерелевантные. Это создаёт два эффекта: (1) ключевая информация получает недостаточно "веса" в механизме внимания, (2) информация в середине последовательности вообще теряется из-за U-shaped bias.
Сильная сторона LLM: Модель отлично работает со структурированными инструкциями и может следовать явным указаниям о приоритетах. Если разметить документы по важности, модель это учтёт. Если дать двухэтапную инструкцию (сначала фильтр, потом анализ), модель выполнит.
Как принципы используют сильную сторону: Мы переносим логику DSAS на уровень промпта. Вместо автоматической оптимизации attention матриц (как в DSAS) мы делаем ручную "оптимизацию" через:
- Позиционирование (начало/конец вместо середины) → обходим U-shaped bias
- Явную разметку (ключевые vs справочные) → даём модели "веса" на уровне инструкций
- Двухэтапность (фильтр → анализ) → имитируем CGW+RAS логику
- Минимизацию шума → уменьшаем "конкуренцию" за attention
Это не даст +4.2% F1-score как в исследовании, но даст ощутимое улучшение качества на задачах с 5+ документами.
Ограничения
⚠️ Требует код для полной реализации: DSAS работает на уровне модификации attention механизма внутри модели. Для этого нужен Python, PyTorch, доступ к весам модели. Обычный пользователь ChatGPT/Claude не может применить сам метод напрямую.
⚠️ Принципы — частичная адаптация: Описанные выше техники используют инсайты из исследования, но не дают полного эффекта DSAS. Улучшение будет меньше чем +4.2% F1-score.
⚠️ Работает хуже на простых задачах: Если документов 2-3 и вопрос очевидный — структурирование не нужно, модель и так справится. DSAS (и производные принципы) нужны для сложных multi-hop задач с 10+ документами.
⚠️ Зависит от модели: Исследование показало, что средние модели (7-14B параметров) получают максимальный прирост. Маленькие (3B) не хватает способностей, большие (32B+) уже близки к потолку. Применяя принципы вручную, эта зависимость сохранится.
Как исследовали
Команда взяла 6 популярных LLM (от Llama-3.2-3B до Qwen2.5-32B) и 4 бенчмарка для multi-document QA: HotpotQA, 2WikiMultiHopQA, MuSiQue, LongBench. Сначала провели анализ информационных потоков — отследили attention scores между параграфами, вопросом и позицией генерации ответа по всем слоям модели.
Ключевое открытие: В shallow layers информационные потоки от всех параграфов почти одинаковые — модель строит базовое понимание. В deep layers появляется чёткое расхождение: ключевые параграфы получают резко больше внимания чем нерелевантные. Но даже в правильных ответах остаётся "шум" от неважных параграфов.
Затем разделили результаты на GOOD (точное совпадение с референсом) и BAD (нет ни одного общего слова). У good reasoning информационные потоки от ключевых параграфов выше на 15-20%, от нерелевантных — ниже на 10-15%. Это подтвердило гипотезу: модель УМЕЕТ различать важное и шум, но делает это недостаточно резко.
На основе этого создали DSAS — двухэтапный plug-in, который усиливает различия. CGW вычисляет веса через Top-K attention scores, применяет Z-нормализацию и sigmoid, добавляет коррекцию через Gaussian PDF для борьбы с "lost-in-the-middle". RAS делит параграфы по порогу (средний вес) и блокирует cross-attention между группами.
Протестировали на всех 6 моделях и 4 бенчмарках с greedy decoding (temperature=0, чтобы убрать случайность). Средний прирост F1-score: +4.2% на Llama-3.1-8B и Qwen2.5-14B. Максимальный эффект на MuSiQue (сложные multi-hop задачи) — до +6.6%. Провели ablation: убрали CGW — метрики упали, убрали RAS — тоже упали. Оба модуля критичны.
Интересный нюанс: модели среднего размера (7-14B) дают максимальный прирост. Маленькие (3B) недостаточно умны, большие (32B) уже близки к потолку производительности на этих задачах.
Ресурсы
DSAS: A Universal Plug-and-Play Framework for Attention Optimization in Multi-Document Question Answering
Jiakai Li, Rongzheng Wang, Yizhuo Ma, Shuang Liang, Guangchun Luo, Ke Qin
University of Electronic Science and Technology of China
NeurIPS 2025
