3,583 papers
arXiv:2607.02509 73 2 июля 2026 г. FREE

ReContext: рекурсивное воспроизведение улик — почему LLM «теряет» нужный абзац в длинном документе

КЛЮЧЕВАЯ СУТЬ
Парадокс: нужный абзац в документе есть — модель его видела при чтении. Но в момент генерации ответа он тонет среди 128 тысяч токенов, и модель отвечает по «общему впечатлению», а не по конкретному факту. ReContext позволяет вытащить нужные фрагменты до ответа и положить их буквально рядом с вопросом. Фишка: не убираем лишнее, а дублируем важное — полный документ остаётся, но 128 «золотых токенов» (в которых 50–80% ответа) стоят прямо перед вопросом в момент генерации. Два прохода вместо одного — +24.6% точности.
Адаптировать под запрос

TL;DR

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

Конкретная находка: всего 128 токенов из 128 000 содержат 50–80% релевантности для ответа на вопрос. Проблема не в том, что нужный абзац отсутствует — он есть. Проблема в том, что при генерации модель не умеет стабильно «зацепиться» за него среди огромного шума.

Метод работает за R раундов (обычно 2–4). Каждый раунд: читаем контекст с учётом уже найденных отрывков → находим новые релевантные фрагменты → добавляем в «пул улик» → после последнего раунда генерируем ответ из полного текста + пул улик + вопрос. Каждый следующий раунд видит то, что нашли предыдущие — поэтому находки становятся глубже.


🔬

Схема метода

ИСХОДНЫЕ ДАННЫЕ: Длинный документ + Вопрос

РАУНД 1:
  Читаем: [Документ] + [Вопрос]
  Сигнал: Внутренние веса внимания → ТОП-K токенов по релевантности
  Результат: Находим предложения вокруг выбранных токенов → Пул улик [E1]

РАУНД 2 (рекурсия):
  Читаем: [Документ] + [Пул улик E1] + [Вопрос]
  Сигнал: Веса переключились — теперь видят связанные фрагменты
  Результат: Новые предложения → Пул улик [E1 + E2]

...N раундов...

ФИНАЛЬНАЯ ГЕНЕРАЦИЯ:
  Промпт: [Документ] + [Пул улик EN] + [Вопрос]
  Ответ: Генерируется из полного контекста + явно выделенных улик

⚠️ Техническое ограничение: Оригинальный метод работает через внутренние веса внимания модели — к ним нет доступа в ChatGPT/Claude интерфейсе. Ниже — ручная адаптация принципа, применимая в любом чате.


🚀

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

Задача: Основатель стартапа получил от инвестора 80-страничный отчёт по due diligence. ChatGPT отвечает на вопросы общо — явно «плывёт» по деталям. Нужно выяснить: какие конкретно риски отмечены по юридической структуре?

Промпт (Шаг 1 — поиск улик):

Я загружу большой документ. Твоя задача сейчас — только поиск, 
не анализ.

Найди в тексте ниже ВСЕ фрагменты, которые прямо относятся к теме: 
«юридические риски и структура владения». 

Процитируй найденные отрывки дословно — именно текст из документа, 
без пересказа. Пронумеруй каждый.

[Вставить полный текст отчёта]

Промпт (Шаг 2 — финальный ответ):

Вот оригинальный отчёт:
[Вставить полный текст]

А вот ключевые фрагменты по юридическим рискам, которые ты 
нашёл ранее:
[Вставить цитаты из Шага 1]

Теперь вопрос: какие конкретные юридические риски критичны 
перед закрытием сделки? Используй и оригинал, и выделенные отрывки.

Результат: Шаг 1 даст пронумерованные дословные цитаты из документа — без интерпретации, только текст. Шаг 2 сгенерирует ответ, опираясь одновременно на полный контекст и выделенные улики рядом с вопросом. Это снижает вероятность «потери» нужного абзаца при ответе — потому что он буквально стоит рядом с вопросом в момент генерации.


🧠

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

Слабость LLM при длинных текстах. У моделей есть эффект «иголки в стоге сена»: нужный абзац физически присутствует, но в момент генерации внимание «размазывается» по тысячам токенов. Чем длиннее контекст — тем сильнее эффект. Модель отвечает не на основе конкретного факта, а на основе «общего впечатления» от документа.

Что модель умеет хорошо. Модель отлично работает с компактным, структурированным контекстом. Когда нужная информация стоит рядом с вопросом — точность резко растёт. Это то, что делает классический RAG (retrieval-augmented generation): сначала найди, потом ответь. ReContext делает то же самое — но не через внешнюю базу данных, а через собственные сигналы внимания модели.

Принцип «воспроизведения» (replay). Ключевая идея: найденные улики не заменяют оригинал, а повторяются рядом с вопросом. Полный документ остаётся. Это важно: простая обрезка контекста теряет детали, а здесь модель может обратиться к оригиналу если потребуется, но «стартовать» при генерации с улик в руках.

Рычаги управления в ручной версии: - Количество шагов — 2 достаточно для большинства задач; для сложных многоскачковых вопросов (где ответ связывает 3+ фрагмента) попробуй 3 прохода - Точность инструкции поиска — чем конкретнее формулировка темы в Шаге 1, тем точнее улики - Дословное цитирование — просить именно цитату, не пересказ: так при воспроизведении в Шаге 2 нет сломанного телефона


📋

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

Шаг 1 — Поиск улик:

Я дам тебе большой документ. Сейчас только находи, не анализируй.

Найди в тексте ниже ВСЕ фрагменты, которые прямо относятся к теме: 
«{тема_поиска}».

Требования:
- Цитируй дословно, без пересказа
- Если фрагмент короткий — включи соседние предложения для контекста  
- Пронумеруй каждый найденный отрывок
- Не добавляй оценок и выводов — только текст из документа

{длинный_документ}

Шаг 2 — Финальный ответ:

Вот исходный документ:
{длинный_документ}

Вот ключевые фрагменты по теме «{тема_поиска}», найденные ранее:
{цитаты_из_шага_1}

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

Отвечай, опираясь как на оригинальный документ, так и на 
выделенные фрагменты.

Плейсхолдеры: - {тема_поиска} — конкретная тема, не вопрос: «финансовые риски», «условия расторжения», «технические требования к интеграции» - {длинный_документ} — полный текст: договор, отчёт, транскрипт, книга - {твой_вопрос} — финальный вопрос, на который нужен ответ


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

Вот шаблон двухшагового метода поиска улик в длинных документах. 
Адаптируй под мою задачу: {твоя задача с документом}. 
Задавай вопросы, чтобы заполнить поля.

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

LLM спросит какой документ анализируем и что ищем — потому что точность темы в Шаге 1 определяет качество улик, которые попадут в Шаг 2.


🧠

Почему это работает (теоретически)

Авторы доказали математически: каждый раунд воспроизведения улик монотонно приближает скрытое представление ответа модели к правильному вектору. То есть не «иногда помогает» — а каждый раунд гарантированно улучшает, хотя и с убывающей отдачей.

Интуиция простая: когда в Шаге 2 нужный абзац стоит рядом с вопросом, задача модели упрощается — не «найди в 128К токенах», а «применти это к вопросу». Именно это объясняет 24.6% прирост точности в экспериментах.


⚠️

Ограничения

⚠️ Закрытые API: Оригинальный метод требует доступа к весам внимания (attention weights). ChatGPT, Claude, Gemini эти данные не отдают. Ручная адаптация — приближение, не точный метод.

⚠️ Латентность: Метод добавляет R дополнительных чтений документа перед финальным ответом. В ручной версии — это дополнительный запрос и копирование. Для быстрых вопросов не нужен.

⚠️ Размер контекстного окна: Ручная версия «склеивает» документ + улики + вопрос в один промпт. При очень большом документе это может упереться в лимит токенов модели.

⚠️ Не панацея: Метод лучше всего работает на фактических вопросах с опорой на конкретный текст (QA, юридический анализ, технический due diligence). Для творческих или оценочных задач («напиши в стиле документа» / «оцени качество аргументов») — слабее.


🔍

Как исследовали

Команда взяла три модели — Qwen3-4B, Qwen3-8B и Llama3.1-8B — и прогнала их через восемь бенчмарков с контекстом 128К токенов: от простых фактических вопросов (NarrativeQA) до многоскачкового рассуждения (HotpotQA) и верификации утверждений по книгам (CLIPPER). Каждый метод получал одинаковый входной контекст — честное сравнение.

Любопытная деталь дизайна: исследователи сначала построили рейтинговую кривую — отсортировали все токены по релевантности и посмотрели, сколько накопленной значимости покрывают топ 0.1% токенов. Оказалось: 128 токенов из 128К = 50–80% всей релевантности. Это и стало главным аргументом — не нужно сжимать контекст, нужно просто подвинуть нужное ближе к вопросу.

Сравнивали с пятью конкурентами: прямая генерация (Vanilla), методы усиления внимания (AttnSharp, DySCO), внешняя агентная память (A-MEM) и компрессия контекста (DAC). ReContext занял лучшее среднее место на всех трёх моделях. Средняя точность выросла с 0.24 до 0.30 — +24.6% относительного прироста. На 64К контексте — ещё лучше, +35%. Что особенно убеждает: прирост стабилен, когда включён режим «думающей» модели (chain-of-thought внутри модели) — значит, принцип работает независимо от того, «думает» ли модель сама по себе.


💡

Адаптации и экстраполяции

🔧 Рекурсия вручную через два раунда поиска

Если Шаг 1 дал общие улики, а вопрос многосоставной — сделай ещё один промежуточный шаг: «Вот улики из первого поиска: [цитаты]. Каких деталей не хватает для полного ответа на вопрос [Х]? Найди в документе дополнительные фрагменты — только новые, не повторяй уже найденное.» Потом Шаг 2 с расширенным пулом.

🔧 Для переговоров и деловой переписки

Принцип «улик» работает не только с документами. Перед тем как попросить ChatGPT написать ответное письмо на жёсткое письмо клиента — сначала попроси: «Найди в этой переписке все места, где клиент явно или неявно обозначил свою позицию и ожидания. Процитируй дословно.» Потом пиши ответ, опираясь на найденное. Риск «промахнуться мимо претензии» резко падает.


🔗

Ресурсы

Статья: ReContext: Recursive Evidence Replay as LLM Harness for Long-Context Reasoning

Код: https://github.com/Yanjun-Zhao/ReContext

Авторы: Yanjun Zhao, Ruizhong Qiu, Tianxin Wei, Yuanchen Bei, Zhining Liu, Lingjie Chen, Ismini Lourentzou, Hanghang Tong, Jingrui He — University of Illinois Urbana-Champaign


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

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

Парадокс: нужный абзац в документе есть — модель его видела при чтении. Но в момент генерации ответа он тонет среди 128 тысяч токенов, и модель отвечает по «общему впечатлению», а не по конкретному факту. ReContext позволяет вытащить нужные фрагменты до ответа и положить их буквально рядом с вопросом. Фишка: не убираем лишнее, а дублируем важное — полный документ остаётся, но 128 «золотых токенов» (в которых 50–80% ответа) стоят прямо перед вопросом в момент генерации. Два прохода вместо одного — +24.6% точности.

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

Первый проход — только охота. Не анализ, не выводы — дословные цитаты по теме. Второй проход: полный документ + найденные цитаты + вопрос. Задача разбивается: сначала найди иголку, потом применяй её к вопросу — вместо попытки сделать оба шага разом. Модель больше не ищет нужный абзац среди тысяч страниц — он лежит рядом.

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

Когда задача — «найди ответ в 128К токенов» — внимание модели размазывается по всему тексту, и нужный абзац конкурирует с тысячами нерелевантных. Когда задача — «применти вот этот абзац к вопросу» — фокус сужается до конкретного фрагмента. Авторы доказали математически: каждый раунд воспроизведения улик монотонно улучшает результат. Не «иногда помогает» — каждый шаг гарантированно приближает к правильному ответу, хотя с убывающей отдачей. Именно поэтому 2–3 прохода дают основной прирост, а дальше — закон уменьшающейся отдачи.

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

Длинные документы с конкретными фактическими вопросами: юридический анализ договоров и соглашений, технический осмотр перед инвестицией, разбор многостраничных отчётов, транскрипты переговоров. Особенно когда модель отвечает расплывчато и без деталей — верный симптом что нужный абзац «потерялся». НЕ подходит для творческих и оценочных задач («напиши в стиле документа», «оцени качество аргументов»): там нет конкретных «улик» для извлечения.

Мини-рецепт

1. Дай задание — только искать, не отвечать: Передай полный документ и конкретную тему поиска. Важно: не вопрос, а тему — «юридические риски», «технические требования к интеграции», «условия расторжения». Попроси пронумерованные дословные цитаты без пересказа и без выводов.
2. Собери пул улик: Возьми пронумерованные цитаты из первого прохода — это твои улики. Если вопрос многоскачковый (ответ связывает несколько разных частей документа) — сделай ещё один проход поиска, передав найденные цитаты как контекст.
3. Финальный ответ со всем на руках: Второй запрос строится так — полный документ + цитаты из шага 1 + твой вопрос. Попроси опираться и на оригинал, и на выделенные фрагменты.

Примеры

[ПЛОХО] : Вот отчёт по проверке перед инвестицией [80 страниц]. Какие юридические риски критичны перед закрытием сделки?
[ХОРОШО] : Шаг 1: Сейчас только ищи, не анализируй. Найди в тексте ниже ВСЕ фрагменты по теме «юридические риски и структура владения». Цитируй дословно, без пересказа. Пронумеруй каждый отрывок. [полный текст отчёта] Шаг 2: Вот оригинальный отчёт: [полный текст]. Вот ключевые фрагменты по юридическим рискам, найденные ранее: [цитаты из шага 1]. Вопрос: какие риски критичны перед закрытием сделки? Опирайся и на оригинал, и на выделенные фрагменты.
Источник: ReContext: Recursive Evidence Replay as LLM Harness for Long-Context Reasoning
ArXiv ID: 2607.02509 | Сгенерировано: 2026-07-03 06:25

Проблемы LLM

ПроблемаСутьКак обойти
Модель теряет нужный абзац в длинном документеДаёшь модели 80-страничный документ и задаёшь вопрос. Нужный абзац там есть. Но при генерации ответа внимание модели размазывается по всем токенам. Она отвечает из «общего впечатления» — не из конкретного факта. Чем длиннее текст, тем сильнее эффект. Работает против любой задачи с длинным источником: договор, отчёт, транскриптРазбей задачу на два шага. Шаг 1: только извлечение — «найди и процитируй дословно все фрагменты по теме X». Шаг 2: финальный ответ — полный документ + цитаты из шага 1 + вопрос. Нужный абзац стоит рядом с вопросом. Модель не ищет — применяет

Методы

МетодСуть
Разделить поиск и ответ — двухшаговый запрос к длинному документуШаг 1 — только поиск: Найди в тексте ниже ВСЕ фрагменты, которые прямо относятся к теме: «{тема_поиска}». Цитируй дословно, без пересказа. Пронумеруй каждый отрывок. Не добавляй оценок. [документ]. Шаг 2 — финальный ответ: Вот оригинальный документ: [документ]. Вот ключевые фрагменты по теме «{тема_поиска}»: [цитаты из шага 1]. Вопрос: {вопрос}. Почему работает: задача упрощается. Шаг 1 — найти. Шаг 2 — применить уже найденное. В шаге 2 нужные факты стоят рядом с вопросом, а не тонут в токенах. Важно: проси дословную цитату, не пересказ. Пересказ ломает цепочку. Когда применять: фактические вопросы, юридический анализ, технический разбор. Когда не нужен: короткий документ, творческая задача
📖 Простыми словами

ReContext: Recursive Evidence Replay asLLMHarness for Long-Context Reasoning

arXiv: 2607.02509

Проблема длинных контекстов в LLM не в том, что модель «забывает» текст, а в том, что она в нём банально захлёбывается. Когда ты скармливаешь нейронке стопку документов на 100 страниц, её механизмы внимания начинают работать как расфокусированный взгляд: она видит всё сразу, но не замечает ничего конкретного. В итоге вместо точного факта ты получаешь водянистое «общее впечатление», потому что нужные данные просто тонут в информационном шуме. Метод ReContext меняет правила игры, заставляя модель сначала сфокусироваться, а потом уже открывать рот.

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

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

Хотя метод тестировали на сложных задачах вроде анализа огромных отчётов, принцип универсален. Это спасение для любого long-context reasoning: от юридического аудита и анализа медицинских карт до разбора логов разработки. Если раньше ChatGPT «плыл» на деталях 80-страничного договора, то с таким подходом он начинает тыкать носом в конкретные риски. SEO для мозгов нейронки — вот что это такое на самом деле. Мы не меняем саму модель, мы меняем способ, которым она обращается к собственной памяти.

Короче: хватит надеяться, что модель сама разберётся в куче мусора. ReContext доказывает, что даже самая умная LLM нуждается в «шпаргалке», собранной из её же собственных наблюдений. Главный вывод — близость контекста к вопросу решает всё. Если не вытаскивать ключевые факты из глубины текста поближе к выходу, ты всегда будешь получать галлюцинации и общие фразы вместо работы. Кто научится управлять вниманием модели через такие костыли, тот и получит от AI реальную пользу, а не красивое враньё.

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

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

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