Перейти к основному содержимому

Журнал исследований Bean Labs

Найдено посередине: калибровка позиционного смещения внимания улучшает RAG с длинным контекстом

Опубликовано Обновлено 5 мин чтенияMike ThriftMike Thrift
Найдено посередине: калибровка позиционного смещения внимания улучшает RAG с длинным контекстом

Статья: https://arxiv.org/abs/2406.16008

Содержание страницы

Я размышлял о проблеме «потери в середине» (lost-in-the-middle) с тех пор, как написал заметку об оригинальном открытии Лю и соавторов: передайте LLM длинный контекст, и она гарантированно проигнорирует свидетельства, скрытые в середине. Статья «Found in the Middle: Calibrating Positional Attention Bias Improves Long Context Utilization» (Hsieh et al., ACL Findings 2024, arXiv:2406.16008) предлагает самое прямое и практичное решение, которое я когда-либо видел: калибровку на этапе вывода, не требующую обучения, которая вычитает позиционное смещение модели из её весов внимания, восстанавливая до 15 процентных пунктов точности RAG.

Ряд кремовых глиняных блоков с одним зелёным блоком, светящимся посередине.

О статье​

Сье и др. начинают с диагностического наблюдения: LLM — даже те, что обучались на длинных контекстах — демонстрируют устойчивый U-образный паттерн внимания. Токены в начале и в конце входных данных получают непропорционально высокое внимание независимо от их релевантности, в то время как токены в середине систематически недооцениваются. Авторы эмпирически связывают это с падением точности «lost-in-the-middle», а не рассматривают как отдельный феномен.

Их решение элегантно по своей сути. Они разлагают внимание на два аддитивных компонента: релевантность (то, что нам нужно) и позиционное смещение (то, что не нужно). Чтобы изолировать смещение, они пропускают «пустой» (фиктивный) документ — неинформативное наполнение — через тот же контекст в каждой позиции и записывают полученное распределение внимания. Это внимание пустого документа аппроксимирует чистое позиционное априорное распределение. Вычитание его из реальных показателей внимания оставляет остаток, который лучше отражает истинную релевантность:

Calibrated attention = Attn(document, k) − Attn(dummy, k)

Затем пересчитанные показатели используются для ранжирования или перевзвешивания извлеченных документов перед финальным этапом генерации ответа. Важно, что обучение не требуется. Калибровка применяется на этапе вывода к последним 16 слоям декодера и всем головкам внимания. Стоимость составляет O(K) дополнительных проходов вперед, где K — количество извлеченных документов — величина нетривиальная, но предсказуемая.

Ключевые идеи​

  • U-образное позиционное смещение внимания присуще архитектуре модели и сохраняется даже в моделях, специально обученных для работы с длинным контекстом.
  • Пропуск фиктивного (пустого/шумного) документа через тот же контекст извлечения изолирует позиционное априорное распределение; его вычитание удаляет смещение без какой-либо тонкой настройки (finetuning).
  • Recall@3 на NaturalQuestion (K=20, золотой документ помещен в середину) прыгает с 20,52% до 68,32% при калибровке; при K=10 — с 36,38% до 74,27%.
  • Сквозная точность ответов на вопросы (QA) улучшается на 6–15 процентных пунктов, когда золотой документ находится в середине контекста; улучшения сохраняются в 22 из 24 экспериментальных конфигураций.
  • Метод превосходит шесть базовых моделей для сравнения: стандартное внимание, ранжирование на основе генерации запросов, промптинг с генерацией релевантности, сортировку по вниманию (Peysakhovich & Lerer 2023), переупорядочивание промптов и LongLLMLingua-rk.
  • Метод оценивался на NaturalQuestion (2655 реальных запросов по Википедии) и SynthWiki (990 синтетических записей, сгенерированных GPT-4).

Что подтверждается — а что нет​

Основной результат поразителен, и я в него верю. Разрыв в Recall@3 с 20,52% до 68,32% для золотых документов в середине контекста — это не та цифра, которая испаряется при тщательном изучении; она измеряет нечто реальное в распределении внимания. Дизайн без обучения — это подлинное практическое преимущество: вы можете внедрить это поверх любого существующего RAG-конвейера, не касаясь весов модели.

Тем не менее, у меня есть некоторые сомнения. Во-первых, подход с «пустым документом» предполагает, что позиционное смещение примерно позиционно-разделимо и аддитивно — линейное разложение, которое сами авторы помечают как потенциально упрощенное. Реальное смещение внимания может взаимодействовать с контентом нелинейно. Во-вторых, дополнительные O(K) проходов вперед оцениваются как «приемлемые», но никогда не тестировались на предмет задержки или стоимости. В рабочей системе с извлечением K=20 вы запускаете 21 проход вместо одного на запрос. Для агента Beancount, сортирующего сотни транзакций, этот множитель имеет значение.

В-третьих — и это самое интересное ограничение — авторы отмечают, что позиционное смещение может быть полезным для определенных задач. Например, смещение в сторону новизны (recency bias) может заставлять модель правильно отдавать приоритет недавним записям в бухгалтерской книге над старыми. Неизбирательное удаление смещения может повредить задачам, где позиция является валидным сигналом. Это признается, но не изучается.

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

Почему это важно для финансового ИИ​

Прямая связь очевидна: каждая заметка со времен DocFinQA вращается вокруг одной и той же проблемы. Когда агент Beancount извлекает 20 релевантных записей из журнала, чтобы ответить на вопрос типа «сверь март с банковской выпиской», записям из середины окна извлечения будет уделяться систематически меньше внимания по сравнению с записями в начале и конце контекста. Это не провал извлечения — это ошибка на стороне генерации, которую не исправит никакое улучшение ранжирования.

Калибровка «found-in-the-middle» — это правдоподобный способ смягчения проблемы, который не требует переобучения базовой модели и может быть применен непосредственно на этапе генерации в любом QA-конвейере для бухгалтерских книг. Опасения по поводу стоимости O(K) реальны, но управляемы — окно извлечения в 20 документов с моделью среднего размера все еще находится в практических пределах. Что бы я хотел увидеть перед внедрением, так это проверку именно на структурированных данных Beancount: помогает ли позиционная коррекция равномерно или она непреднамеренно подавляет сигнал новизны, который делает недавние транзакции более заслуживающими доверия, чем старые?

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

Что читать дальше​

  • «Mitigate Position Bias in LLMs via Scaling a Single Hidden States Channel» (arXiv:2406.02536, ACL Findings 2025) — предлагает масштабирование одного измерения скрытого состояния вместо вычитания показателей внимания; стоит сравнить с подходом «found-in-the-middle» напрямую.
  • «Large Language Models for Anomaly and Out-of-Distribution Detection: A Survey» (arXiv:2409.01980, NAACL 2025) — следующий в списке для чтения; объединяет идеи AnoLLM, CausalTAD и AD-LLM в единую таксономию.
  • Liu et al., «Lost in the Middle: How Language Models Use Long Contexts» (arXiv:2307.03172, TACL 2023) — оригинальный «диагноз», на который отвечает данная статья; необходимое базовое чтение.

Источник: https://beancount.io/ru/bean-labs/research-logs/2026/07/02/found-in-the-middle-calibrating-positional-attention-bias

Опубликовано: 2 июля 2026 г.

Обновлено: 25 сентября 2026 г.