3,583 papers
arXiv:2601.17532 77 24 янв. 2026 г. FREE

IGP (Information Gain Pruning): фильтрация документов в RAG по влиянию на уверенность модели

КЛЮЧЕВАЯ СУТЬ
Парадокс: Добавляешь релевантные документы в RAG — качество ответа падает. Исследование показало: при 5 документах корреляция релевантности и точности ответа становится отрицательной (Spearman = -0.54). Причина: документы противоречат друг другу ("рынок 500 млрд" vs "300 млрд") → модель размазывает вероятность между версиями → ответ плывёт. IGP решает это через измерение уверенности: модель генерирует ответ без документа → меряет энтропию (неопределённость), потом с каждым документом → снова меряет. Information Gain = насколько снизилась энтропия. Документы с нулевым или негативным IG отсекаются — остаются только те что реально снижают неопределённость. Результат: +12-20% точности при сокращении контекста на 76-79%.
Адаптировать под запрос

TL;DR

IGP — метод отбора документов для RAG (когда LLM генерирует ответ на основе найденных документов), который оценивает их полезность для генерации ответа, а не релевантность запросу. Механика: модель генерирует ответ без документа → измеряет неопределённость (энтропию распределения токенов). Затем генерирует с каждым документом → снова измеряет неопределённость. Information Gain (IG) = насколько снизилась неопределённость. Документы сортируются по IG, те что не снижают или повышают неопределённость — фильтруются. Остаётся стандартный truncate (ограничение по количеству документов или токенов).

Релевантность документа не гарантирует качество ответа. Исследователи показали: метрики релевантности (NDCG) слабо коррелируют с качеством итогового ответа (F1-score), а при добавлении нескольких документов корреляция может стать отрицательной (Spearman = -0.54 при TopM=5). Причина: релевантные документы могут быть избыточными (повторяют друг друга), противоречивыми (содержат конфликтующие утверждения) или неоднозначными (содержат параллельные версии фактов). Это размывает вероятностное распределение модели на ключевых токенах → ответ становится менее стабильным и точным.

IGP решает это через порог отсечения (_Tp_): документы с IG ниже порога не попадают в контекст, даже если есть свободное место в бюджете. Это admission control — явный контроль допуска документов до этапа обрезки. Результат: +12–20% качества ответов (F1) при сокращении итогового контекста на 76–79% в multi-evidence сценариях. Метод не требует обучения, разметки или доступа к параметрам — только step-wise logits или TopK log-probabilities из API.


🔬

Схема метода

Классический RAG:

Retrieve → Rerank (по релевантности) → Truncate (TopM) → Generate

IGP:

Retrieve → IGP (rerank + prune по IG) → Truncate (TopM) → Generate

Внутри IGP (для каждого документа):

ШАГ 1: Сгенерируй ответ БЕЗ документа (greedy) 
        → измерь normalized uncertainty (NU₀)

ШАГ 2: Сгенерируй ответ С документом dᵢ (greedy)
        → измерь normalized uncertainty (NUᵢ)

ШАГ 3: Вычисли Information Gain: IG(dᵢ) = NU₀ - NUᵢ
        (положительный IG = документ снижает неопределённость)

ШАГ 4: Сортируй документы по IG (↓)

ШАГ 5: Фильтруй: оставь только IG(dᵢ) ≥ Tp (порог)

ШАГ 6: Передай отфильтрованный список в Truncate (применяет TopM)

NU (Normalized Uncertainty) — усреднённая энтропия топ-K токенов по всем шагам генерации, нормализованная на [0, 1].


🚀

Пример применения

Задача: Ты готовишь питч для инвесторов про свой маркетплейс локальных продуктов. Нашёл 8 источников с данными о рынке: 3 отчёта про e-grocery в России, 2 статьи про фермерские кооперативы, аналитику Ozon про категорию "продукты", кейс Вкусвилла, исследование McKinsey про онлайн-продажи еды. Все релевантны, но контекст ограничен — нужно выбрать 2-3 самых убедительных источника, которые не создадут путаницу разными цифрами.

Промпт (адаптация под чат):

Помоги выбрать самые полезные источники для питча.

Вопрос: "Какой размер рынка онлайн-продуктов в России и какой средний чек?"

Сначала дай свой ответ БЕЗ источников. Оцени уверенность: 0-10.

Потом проверим каждый источник:
1. Отчёт X → дай ответ → оцени уверенность
2. Статья Y → дай ответ → оцени уверенность
...

Для каждого источника покажи:
- Стал ли ответ увереннее? (да/нет, насколько)
- Изменились ли ключевые цифры?
- Появились ли противоречия с предыдущими источниками?

В конце: ранжируй источники по полезности. Отметь те, которые НЕ стоит включать (создают шум/противоречия).

Результат:

Модель выдаст для каждого источника оценку уверенности (грубый аналог NU) и пометит изменения. Ты увидишь: - Отчёт Ozon: уверенность выросла 3→7, добавил конкретику по сегменту - Статья про фермеров: уверенность 7→6, цифры про кооперативы не про маркетплейсы — вносит путаницу - McKinsey: уверенность 7→8, добавил макротренд - Кейс Вкусвилла: уверенность 8→7, хороший кейс но другая модель (офлайн+онлайн) — создаёт альтернативную гипотезу

Финальный ранжир: Ozon, McKinsey → включить. Фермеры, Вкусвилл → исключить (размывают фокус).


🧠

Почему это работает

Слабость LLM: Модель не умеет явно фильтровать "полезные vs шумные" документы — она пытается учесть ВСЁ из контекста. При добавлении нескольких документов вероятностная масса распределяется между параллельными версиями фактов (одно исследование говорит "рынок 500 млрд", другое "300 млрд с учётом X"). Это увеличивает энтропию на ключевых токенах (модель менее уверена какое число назвать) → ответ становится размытым ("от 300 до 500 млрд, в зависимости от методологии...") или выбирает случайный вариант.

Сильная сторона LLM: Модель хорошо генерирует вероятностное распределение на каждом шаге — чем увереннее ответ, тем выше вероятность нужного токена, тем ниже энтропия. Полезный документ сужает распределение (даёт конкретику, подтверждает гипотезу) → энтропия падает. Шумный документ расширяет распределение (добавляет альтернативы, противоречия) → энтропия растёт.

IGP использует это напрямую: меряет энтропию до и после добавления документа. Information Gain = снижение энтропии — сигнал что документ делает модель увереннее. Порог отсечения (_Tp_) — барьер входа: если документ не снижает неопределённость (или повышает), он не попадает в контекст, даже если формально релевантен.

Рычаги управления:

  • Порог _Tp_ — занижен (0.0) → пропускает все документы с IG≥0, строгая фильтрация только негативных. Завышен (0.05) → жёсткий барьер, только документы с сильным снижением неопределённости. Настраивай под задачу: высокий порог для precision (точность важнее), низкий для recall (охват важнее).

  • TopM (бюджет) — количество финальных документов после truncate. IGP фильтрует ДО truncate, поэтому если IGP пропустил 3 документа, а TopM=5 → в контекст попадут все 3 (бюджет не заполнен). Это норма — IGP экономит контекст, не заполняя его "лишь бы заполнить".

  • TopK (для NU) — сколько топ-токенов учитывать при расчёте энтропии. Меньше K → чувствительность к изменениям в топовых токенах. Больше K → учёт длинного хвоста распределения. В исследовании K=5–10 работает стабильно.


📋

Шаблон промпта

Задача: выбрать самые полезные документы из {N} для ответа на вопрос.

Вопрос: {твой_вопрос}

Шаг 1: Базовый ответ
Дай ответ БЕЗ документов. Оцени свою уверенность: 0 (гадаю) → 10 (полностью уверен).

Шаг 2: Проверка каждого документа
Для каждого документа [{doc_1}, {doc_2}, ..., {doc_N}]:
- Дай ответ С УЧЁТОМ этого документа
- Оцени уверенность: 0-10
- Укажи дельту уверенности: +/- от базовой
- Отметь: появились ли противоречия/альтернативы с базовым ответом?

Шаг 3: Ранжирование
Ранжируй документы по "информационной ценности":
1. Документы с максимальным ростом уверенности
2. Документы с нулевым изменением (нейтральные)
3. Документы со СНИЖЕНИЕМ уверенности (создают шум/противоречия)

Рекомендация: какие {top_M} документов включить? Какие исключить?

Что подставлять: - {N} — количество документов у тебя - {твой_вопрос} — вопрос для анализа - {doc_1}, {doc_2}, ... — список названий/кратких описаний документов - {top_M} — сколько документов ты хочешь в финале (например, 2-3 для питча)


🚀 Быстрый старт — вставь в чат:

Вот методика IGP для фильтрации документов. Адаптируй под мою задачу: [опиши задачу].

[вставить шаблон выше]

Модель спросит: какой у тебя вопрос, сколько документов, какой желаемый топ. Она возьмёт логику "проверка через изменение уверенности" и адаптирует под твой контекст.


📄

Оригинал из исследования

Полный алгоритм IGP (как его реализовали авторы):

Вход:
- Запрос q
- Кандидаты D = {d₁, d₂, ..., dₙ}
- Генератор φ (LLM с доступом к logits)
- Гиперпараметры: K (TopK для энтропии), Tp (порог фильтрации), M (бюджет документов)

Алгоритм:

1. NU₀ ← normalized_uncertainty(q; φ, K)
   // Генерация БЕЗ документов, расчёт энтропии топ-K токенов

2. Для каждого dᵢ в D (параллельно):
   NUᵢ ← normalized_uncertainty(q | dᵢ; φ, K)
   IGᵢ ← NU₀ - NUᵢ
   // Генерация С документом, информационный выигрыш

3. Сортировка: π ← argsort(IG; ↓)
   D' ← упорядочить D по π

4. Фильтрация: D'' ← {d ∈ D' : IG(d) ≥ Tp}
   // Пороговое отсечение

5. Truncate: D_final ← top_M(D'')
   // Применение бюджета TopM

Выход: D_final (финальный набор документов для контекста)

Normalized Uncertainty (NU): - Для каждого шага генерации t: вычисляется энтропия топ-K токенов - Нормализуется на log(K) → значение в [0, 1] - Усредняется по всем шагам генерации (до EOS или макс. длины)

Детали: - Генерация в режиме greedy (temperature=0) для reproducibility - K обычно 5-10 (баланс чувствительности и стабильности) - Tp = 0.0 (фильтрует только негативные IG) или 0.05 (строже)


⚠️

Ограничения

⚠️ Требует API с logits: Полная автоматизация IGP требует доступа к step-wise logits или TopK log-probabilities. ChatGPT/Claude через веб-интерфейс этого не дают — нужен API. Обходной путь: ручная адаптация через "оценку уверенности словами", но это грубый прокси, не точный расчёт энтропии.

⚠️ Greedy decoding для оценки: Метод использует greedy (temperature=0) для измерения NU/IG (чтобы убрать variance между прогонами). Это не финальная генерация — это проба для ранжирования. Финальный ответ можно генерировать с обычными настройками (temperature>0). Но это значит: нужно 1+N прогонов для N документов → затратно по токенам.

⚠️ Не для одного документа: Метод наиболее полезен когда есть несколько кандидатов (5-10+) и нужно выбрать 2-3. Если документ один — IGP просто скажет "включить или не включить", но сравнения нет. Оверкилл для простых сценариев.

⚠️ Корреляция, не каузальность: IG — прокси-метрика. Снижение энтропии обычно коррелирует с улучшением ответа, но не гарантирует. Иногда модель становится увереннее в неправильном ответе (если документ содержит убедительную, но фактически неверную информацию).

⚠️ Не подходит для субъективных задач: IGP ориентирован на factual QA, где есть "правильный ответ". Для креативных/субъективных задач (написание эссе, брейншторм) снижение энтропии не равно "лучший результат" — разнообразие может быть ценно.


🔗

Ресурсы

Исследование: _Less is More for RAG: Information Gain Pruning for Generator-Aligned Reranking and Evidence Selection_

Авторы: Zhipeng Song, Yizhi Zhou, Xiangyu Kong, Jiulong Jiao, Xinrui Bao, Xu You, Xueqing Shi, Yuhang Zhou, Heng Qi

Организации: Dalian University of Technology, Dalian Ocean University, Liaodong University, Qinghai University, Liaoning Technical University, Tencent

Ключевые отсылки из работы: - RAG framework: Lewis et al. (2020) - DPR (Dense Passage Retrieval): Karpukhin et al. (2020) - FiD (Fusion-in-Decoder): Izacard & Grave (2021) - Cross-encoder reranking: Nogueira & Cho (2019) - Semantic entropy: Farquhar et al. (2024)


📋 Дайджест исследования

Ключевая суть

Парадокс: Добавляешь релевантные документы в RAG — качество ответа падает. Исследование показало: при 5 документах корреляция релевантности и точности ответа становится отрицательной (Spearman = -0.54). Причина: документы противоречат друг другу ("рынок 500 млрд" vs "300 млрд") → модель размазывает вероятность между версиями → ответ плывёт. IGP решает это через измерение уверенности: модель генерирует ответ без документа → меряет энтропию (неопределённость), потом с каждым документом → снова меряет. Information Gain = насколько снизилась энтропия. Документы с нулевым или негативным IG отсекаются — остаются только те что реально снижают неопределённость. Результат: +12-20% точности при сокращении контекста на 76-79%.

Принцип работы

Не суди по релевантности — меряй изменение неопределённости. Для каждого документа: сгенерируй ответ БЕЗ него (greedy) → вычисли нормализованную энтропию топ-K токенов по всем шагам (NU₀). Потом сгенерируй С документом → снова вычисли энтропию (NUᵢ). Information Gain = NU₀ - NUᵢ — положительный IG значит документ сузил распределение, модель стала увереннее. Сортируешь по IG (↓), ставишь порог отсечения Tp (например 0.01) — документы с IG ниже порога не попадают в контекст, даже если есть место в бюджете. Это admission control — явный барьер входа до стандартного truncate (обрезка по TopM).

Почему работает

LLM не фильтрует шум — она пытается учесть ВСЁ из контекста. Видит два противоречивых факта ("рынок 500 млрд" и "300 млрд с учётом X") → вероятностная масса распределяется между вариантами → энтропия на ключевых токенах растёт → модель менее уверена какое число назвать. Либо выдаёт размытый ответ ("от 300 до 500 в зависимости от методологии"), либо выбирает случайный вариант. Полезный документ сужает распределение (даёт конкретику) → энтропия падает. Шумный расширяет (добавляет альтернативы) → энтропия растёт. IGP ловит это напрямую через разницу энтропий. Порог Tp отсекает документы которые не снижают или повышают неопределённость — модель видит только то что реально помогает. В multi-evidence сценариях (где несколько источников с разными версиями фактов) это даёт с 67% до 89% F1-score (NarrativeQA, TopM=3).

Когда применять

RAG системы → особенно когда собираешь ответ из нескольких источников (аналитика, исследования, отчёты с разной методологией). Критично для сценариев где документы могут противоречить: оценка рынка из разных отчётов, медицинские данные из разных исследований, юридические прецеденты с разными трактовками. НЕ нужен: если документы заведомо непротиворечивы (FAQ, внутренняя база знаний с выверенным контентом) — там работает обычный rerank по релевантности.

Мини-рецепт

1. Базовый ответ: Дай модели сгенерировать ответ БЕЗ документов (greedy decoding). Запиши logits топ-K токенов на каждом шаге → вычисли нормализованную энтропию (NU₀). Если модель через API — используй TopK log-probabilities.

2. Проверка каждого документа: Для каждого dᵢ из retrieved: сгенерируй ответ С этим документом → вычисли NUᵢ → посчитай IG(dᵢ) = NU₀ - NUᵢ. Положительный IG = документ снижает неопределённость.

3. Фильтрация: Сортируй документы по IG (↓). Поставь порог Tp (начни с 0.01): отбрось все документы где IG < Tp. Оставшиеся передай в обычный truncate (обрезка по бюджету TopM).

4. Настройка порога: Высокий Tp (0.05) → жёсткий барьер, только документы с сильным снижением энтропии (для precision). Низкий Tp (0.0) → фильтрует только негативные IG (для recall). Подбирай под задачу.

Примеры

[ПЛОХО] : Найди топ-5 документов по релевантности запросу "размер рынка онлайн-продуктов" → включи все в контекст. Получишь противоречивые цифры из разных отчётов, модель размажет ответ.
[ХОРОШО] : Сгенерируй ответ на "размер рынка онлайн-продуктов" БЕЗ источников → оцени уверенность 0-10. Потом для каждого из 8 источников (отчёты Ozon, McKinsey, статьи про фермеров, кейс Вкусвилла): дай ответ С учётом источника → оцени уверенность → покажи дельту. Ранжируй по росту уверенности. Исключи те где уверенность упала или не изменилась — они создают шум. Модель отсечёт статью про фермеров (не про маркетплейсы, путает сегмент) и кейс Вкусвилла (другая модель, альтернативная гипотеза), оставит Ozon и McKinsey (конкретика + макротренд).
Источник: Less is More for RAG: Information Gain Pruning for Generator-Aligned Reranking and Evidence Selection
ArXiv ID: 2601.17532 | Сгенерировано: 2026-01-27 05:36

Проблемы LLM

ПроблемаСутьКак обойти
Модель не фильтрует шумные документы из контекстаДаёшь модели 5 документов. Один полезный, четыре шумные (противоречия, повторы). Модель пытается учесть ВСЁ из контекста. Не различает "это помогает" vs "это мешает". Архитектура трансформера обрабатывает все документы одинаково. Результат: размытый ответ, смесь всех версий, модель менее уверенаФильтруй документы ДО подачи в модель. Не полагайся на то что модель сама выберет нужное. Лучше 2 точных документа чем 10 релевантных но противоречивых
📖 Простыми словами

Less is More for RAG: Information Gain Pruning for Generator-Aligned Reranking and Evidence Selection

arXiv: 2601.17532

Суть RAG сегодня в том, что мы скармливаем нейронке кучу документов, надеясь, что она сама разберется. Но проблема в том, что нейронки — это не поисковики, а статистические машины. Когда ты даешь им пять похожих текстов, они пытаются угодить всем сразу, из-за чего ответ превращается в кашу. Метод IGP (Information Gain Pruning) меняет логику: мы оцениваем документ не по тому, насколько он «похож» на вопрос, а по тому, насколько он реально помогает модели заткнуться и выдать четкий ответ. Если документ только добавляет сомнений, он летит в корзину, даже если в нем куча ключевых слов из запроса.

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

Технически это работает через Information Gain и замер энтропии. Сначала модель генерирует ответ «из головы» и считает, насколько она не уверена в каждом слове. Потом ей дают документ, и если неопределенность падает, значит, инфа ценная. Метод отсеивает те куски текста, которые либо дублируют уже известное, либо противоречат основным фактам, размывая вероятность правильного ответа. В итоге вместо огромной простыни данных модель получает только те крупицы, которые реально снижают хаос в ее «мозгах».

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

Короче, пора перестать закидывать нейронку тоннами ссылок в надежде на чудо. IGP доказывает, что качество ответа зависит не от объема памяти, а от жесткой фильтрации на входе. Если документ не делает модель увереннее в себе, он ей не нужен. Либо ты чистишь контекст и получаешь хирургически точный результат, либо продолжаешь кормить модель мусором и удивляться, почему она выдает невнятную фигню вместо нормальных выводов.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с