3,583 papers
arXiv:2608.03297 73 4 авг. 2026 г. FREE

Distractor-Aware Truncation: почему "сократи текст" может испортить ответ, даже если ты выбросил только лишнее

КЛЮЧЕВАЯ СУТЬ
Удалили 75% текста — и в 99% случаев вместе с ним выбросили сам ответ. Это не эффект длинного контекста. Это эффект — ты выбросил факт, который искал. Метод Distractor-Aware Truncation позволяет сокращать текст без потери критической информации, даже если оставить всего 25% объёма. Механика простая: сначала находишь фрагменты, критичные для ответа на вопрос, потом режешь всё остальное — не глядя на позицию в тексте, а по важности содержания.
Адаптировать под запрос

TL;DR

Когда вы просите модель работать с длинным текстом и хотите его сократить, важно не сколько текста вы убрали, а что именно вы убрали. Исследование показало: если резать текст механически — просто выкидывать середину — модель теряет качество ответов катастрофически. Но если убирать только то, что реально не нужно для ответа, а важные факты оставлять — качество не падает, а иногда даже растёт.

Главная боль: все привыкли думать "чем короче контекст — тем модели проще, меньше шума, меньше путаницы". Но проверка показала обратное — падение точности при сокращении текста происходит не потому что контекст короче, а потому что вместе с шумом обрезается сам ответ. В одном из тестов при удалении 75% текста нужный факт выживал всего в 1% случаев — модель не "путалась в длинном контексте", ей просто нечем было отвечать.

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


🔬

Схема метода

ШАГ 1: Определить, какие фрагменты текста критически нужны для ответа на вопрос → список ключевых фрагментов
ШАГ 2: Удалить всё остальное, оставив ключевые фрагменты + минимальную связку между ними → сокращённый текст
ШАГ 3 (проверка): Сверить, что сокращённый текст всё ещё содержит ответ → да/нет

Все три шага можно сделать в одном запросе к модели — просто попросить её сначала выделить важное, потом сократить.


🚀

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

Задача: Вам нужно закинуть в чат длинную переписку в WhatsApp с клиентом (на 40 страниц) и спросить модель: "На каком этапе клиент согласился на цену и какую сумму назвал?" Лимит контекста или желание сэкономить токены заставляет вас сократить текст.

Промпт:

Вот переписка с клиентом (40 страниц). Мне нужен ответ на вопрос: 
"На каком этапе клиент согласился на цену и какую сумму назвал?"

Сократи переписку до 25% от объёма, но сначала найди все сообщения, 
где обсуждается цена, согласие или суммы — и сохрани их полностью. 
Остальное можешь сжать или удалить. 
Не удаляй просто середину переписки — удаляй то, что не относится 
к вопросу про цену.

[вставить переписку]

Результат: Модель сначала мысленно (или явно, если попросить показать) выделит сообщения про цену и согласие, затем выдаст короткую версию переписки, где эти сообщения сохранены полностью, а обсуждение погоды, логистики и прочего — сжато или убрано. В отличие от механического "оставь начало и конец", вы получите текст, где нужный ответ гарантированно на месте.


🧠

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

Модель не "теряет мысль" от длины сама по себе — она физически не может ответить на вопрос, если факт, который нужен для ответа, вырезан из текста. Это не эффект "context window", это эффект "вы удалили ответ".

Сильная сторона LLM — она неплохо определяет релевантность текста к вопросу, если попросить её явно. Она может сказать: "вот эти 5 абзацев касаются цены, остальные 35 — нет".

Метод использует эту способность как фильтр перед сокращением, а не полагается на позицию текста (начало/середина/конец). Раньше "правило" было "убирай середину, потому что модели там читают хуже" (эффект lost-in-the-middle) — но это не значит, что середина бесполезна, просто модели там сложнее выцепить смысл. Убрать её — не решение, а потеря информации.

Рычаг управления: процент сокращения (100/75/50/25%) — чем агрессивнее сокращаете, тем важнее точно определить сигнал заранее. На небольших сокращениях (75-90%) ошибка в выборе "что важно" почти не заметна, на сильных (25%) — критична.


📋

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

Вот текст: {текст}

Мне нужно сократить его до {процент}% от объёма, но сохранить 
всю информацию, нужную для ответа на вопрос: {вопрос_или_задача}

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

Выведи финальную сокращённую версию.

Что подставлять: {текст} — ваш длинный документ, {процент} — насколько сократить (например, до 30%), {вопрос_или_задача} — что вы хотите узнать или сделать с этим текстом дальше.

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

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

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

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


⚠️

Ограничения

⚠️ Не работает для задач подсчёта и агрегации. Если вам нужно посчитать, сколько раз что-то упомянуто, или собрать статистику по всему документу — тут нет "лишнего", каждый кусок текста важен. Сокращение любым способом искажает результат.

⚠️ Требует правильного определения "что важно". Если вы (или модель) ошибётесь и не заметите важный фрагмент — потеряете информацию так же, как при случайном обрезании. Метод не спасает от ошибки в понимании задачи.

⚠️ На топовых моделях эффект слабее. Самые мощные модели и так неплохо держат полный длинный контекст без потерь — выигрыш от аккуратного сокращения для них почти нулевой. Метод даёт максимальный эффект на более простых/дешёвых моделях.


🔍

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

Исследователи взяли два теста на длинный контекст: один — вопросы по фактам, зашитым в длинный рассказ, другой — поиск пути в графе, описанном текстом. Каждый пример прогнали через четыре модели (три версии Claude и GPT) при разной степени сокращения — от полного текста до четверти — двумя способами: механически обрезая середину, и "умно", убирая только то, что не относится к вопросу.

Результат был резким: при механической обрезке все модели теряли точность — иногда падение доходило до 60 процентных пунктов. При умной обрезке те же модели на тех же примерах либо сохраняли качество, либо даже улучшали результат (потому что убирался мешающий шум). Разницу проверили строгой статистикой на одних и тех же примерах, чтобы исключить случайность — вывод держится железно.

Самое неожиданное: у двух моделей (Claude Haiku и Sonnet) сокращённый до 25% текст дал результат лучше, чем полный текст — то есть шум реально мешал, и его удаление помогло. Вывод для практики: миф "чем короче — тем хуже, если не выбросить нужное" неверен наполовину — короче не хуже и не лучше сам по себе, всё зависит только от того, что вы выбросили.


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

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

Удалили 75% текста — и в 99% случаев вместе с ним выбросили сам ответ. Это не эффект длинного контекста. Это эффект — ты выбросил факт, который искал. Метод Distractor-Aware Truncation позволяет сокращать текст без потери критической информации, даже если оставить всего 25% объёма. Механика простая: сначала находишь фрагменты, критичные для ответа на вопрос, потом режешь всё остальное — не глядя на позицию в тексте, а по важности содержания.

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

Старое правило — резать середину, потому что там модели путаются (эффект «потеряно в середине», lost-in-the-middle). Новое правило другое: режь не по позиции, а по содержанию. Сначала найди, что отвечает на вопрос — это оставь целиком. Остальное сжимай или убирай. Модель неплохо находит нужные куски текста, если её явно попросить. Это как выделять маркером важные абзацы перед экзаменом, а не вырывать случайные страницы из учебника.

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

Падение точности при сокращении текста — не про путаницу в контексте. Дело в банальной потере факта: вместе с шумом обрезается сам ответ. В тесте при удалении 75% текста нужный факт выживал всего в 1% случаев. Модель не тупила — ей просто нечем было отвечать. Короткий контекст работает лучше не потому что он короткий. А потому что сигнал сохранён.

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

Работа с длинными документами → для сжатия переписок, контрактов, логов перед отправкой в модель. Особенно когда лимит контекста или цена токенов заставляют резать текст агрессивно, до 25-30% от объёма. НЕ подходит для задач подсчёта и агрегации — там каждый кусок текста важен, любое сокращение искажает результат.

Мини-рецепт

1. Задай вопрос: сформулируй, что именно хочешь узнать из текста, ДО сокращения
2. Найди сигнал: попроси модель процитировать фрагменты, критичные для ответа на этот вопрос
3. Режь по важности: оставь эти фрагменты целиком, остальное сожми или удали — не трогай позицию текста в документе
4. Проверь результат: убедись, что сокращённый текст всё ещё содержит ответ на вопрос

Примеры

[ПЛОХО] : Сократи этот документ на 75%, оставь начало и конец
[ХОРОШО] : Сократи текст до 25% от объёма. Сначала найди все фрагменты про [тема вопроса], процитируй их и сохрани полностью. Остальное сжимай
Источник: Distractor-Aware Truncation: Disentangling Context-Length Effects from Signal Loss in Long-Context LLM Benchmarks
ArXiv ID: 2608.03297 | Сгенерировано: 2026-08-05 04:22

Методы

МетодСуть
Сначала найди важное, потом сокращайНе режь текст по позиции (начало/середина/конец). Сначала попроси модель выделить фрагменты, критически важные для ответа на вопрос — с цитатами. Потом сократи текст: важные фрагменты оставь целиком, остальное сожми или убери. Почему работает: модель хорошо определяет релевантность текста к конкретному вопросу, если спросить её явно. Это работает как фильтр перед сокращением, а не полагается на то, где кусок текста стоит. Когда да: нужно сжать длинный документ под конкретный вопрос, важна экономия токенов, чем сильнее сокращение — тем важнее точный отбор. Когда нет: задачи подсчёта и агрегации по всему тексту — там нет "лишнего", каждый кусок важен, любое сокращение искажает результат
📖 Простыми словами

Distractor-Aware Truncation: Disentangling Context-Length Effects from Signal Loss in Long-ContextLLMBenchmarks

arXiv: 2608.03297

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

Это как пытаться собрать шкаф по инструкции, из которой какой-то умник вырвал страницы со схемой сборки, оставив только введение и гарантийные обязательства. Ты можешь быть гениальным мастером, но без конкретной схемы ты просто будешь стоять над кучей досок и гадать на кофейной гуще. Проблема не в твоих мозгах, а в том, что критически важный сигнал заменили на белый шум.

Авторы предлагают метод Distractor-Aware Truncation, который работает хирургически точно. Вместо того чтобы тупо резать текст посередине или оставлять только начало и конец, нужно вычищать «дистракторы» — мусорные куски, которые не относятся к делу. Если ты ищешь в переписке на 40 страниц конкретную сумму сделки, тебе не нужны обсуждения погоды или смайлики. Когда ты убираешь лишнее, оставляя якорные факты, качество ответов не просто сохраняется, а порой становится выше, чем в исходном гигантском полотне.

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

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

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

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

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