3,583 papers
arXiv:2512.08082 74 8 дек. 2025 г. FREE

Short-Context Dominance: LLM используют последние 32-96 токенов даже при доступе к длинному контексту

КЛЮЧЕВАЯ СУТЬ
Парадокс: Даёшь модели документ на 7000 токенов, она опирается на последние 96. Это не баг памяти - это следствие обучения. Метод позволяет структурировать длинные документы так, чтобы модель учитывала информацию из начала, а не только из локального хвоста. Помещай ключевые факты ближе к вопросу или явно напоминай о них - модель имеет short-context bias (склонность к короткому контексту). Измерения на 6 датасетах показали: 75-80% последовательностей требуют только 32-96 токенов для точного предсказания, даже в отчётах на 6-7k.
Адаптировать под запрос

TL;DR

Исследователи измерили, какую часть контекста LLM реально используют для предсказания следующего токена. На документах длиной 1-7k токенов из шести датасетов (Reddit, новости CNN, правительственные отчёты, расшифровки встреч, книги) они обнаружили: 75-80% последовательностей требуют только последние 32-96 токенов для точного предсказания. Это работает даже на "длинно-контекстных" данных типа отчётов на 6-7k токенов — модель всё равно опирается преимущественно на локальный хвост.

LLM демонстрируют short-context bias — склонность полагаться на ближайшую информацию даже когда нужен long-range reasoning. Причина: в обучающих данных большинство токенов действительно предсказуемы из локального контекста (это свойство естественного языка), и модель усваивает этот паттерн. Результат: она завышает вероятности "безопасных" токенов-заполнителей, которые звучат локально связно, но игнорируют информацию из начала документа.

Исследователи разработали метрику LSDS (Long-Short Distribution Shift) — разницу между распределениями вероятностей модели при доступе к последним 32 токенам versus полному контексту. Если LSDS > 0.6 — последовательность требует длинного контекста, если < 0.4 — короткого достаточно. Также создали алгоритм TaBoo, который детектирует long-context последовательности и бустит токены, вероятность которых растёт при доступе к полному контексту. На QA-задачах это улучшает точность.


📌

Схема эффекта

ДОКУМЕНТ (7000 токенов):
[Токены 1-6900: ранний контекст] → [Токены 6901-6968: последние 32-96] → [?]
                                           ↑
                                    LLM смотрит сюда
                                    в 75-80% случаев

ПРОБЛЕМА:
Информация в токенах 1-6900 → часто игнорируется
Модель предсказывает → локально связный, но глобально неточный токен

ДЕТЕКЦИЯ (LSDS):
1. Сгенерируй распределение P_short (последние 32 токена)
2. Сгенерируй распределение P_full (весь контекст)
3. Измерь JSD(P_short, P_full)
   • JSD < 0.4 → short-context, локальной инфо хватает
   • JSD > 0.6 → long-context, нужна инфо из начала

📌

Применимые принципы

📌

Принцип 1: Размещай ключевую информацию ближе к концу

Инсайт: Модель работает как человек, читающий с концентрацией на последнем абзаце. Информация из начала документа имеет меньше шансов повлиять на ответ.

Применение:

❌ Слабая структура:
Контекст: [5000 токенов про компанию]
Вопрос: "Какую должность занимал Иванов в 2020 году?"
(Инфо про Иванова — в токенах 500-600)

✅ Сильная структура:
Вопрос: "Какую должность занимал Иванов в 2020 году?"
Релевантный контекст: [выдержка про Иванова из токенов 500-600]
Дополнительно: [остальной контекст, если нужен]

Практика: В длинных документах (отчёты, расшифровки, обзоры) сначала формулируй задачу, затем давай контекст. Или явно напоминай о ключевых фактах из начала перед вопросом.


⚖️

Принцип 2: Проверяй long-context reasoning через сравнение

Инсайт: Если модель даёт одинаковый ответ на полный и короткий контекст — она использует только короткий. Если ответы различаются — полный контекст что-то меняет.

Техника — "Short-vs-Full Test":

Задача: Проверить, использует ли модель информацию из всего контекста или только из конца.

Промпт 1 (короткий контекст):

Прочитай последние 200 слов документа:
[последние 200 слов]

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

Ответь кратко.

Промпт 2 (полный контекст):

Прочитай весь документ:
[полный документ]

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

Ответь кратко.

Анализ: - Ответы идентичны → модель опирается на локальный контекст, ранняя информация не влияет - Ответы различаются → полный контекст добавляет нюансы, модель учитывает раннюю информацию - Если различаются, но короткий контекст "звучит увереннее" → это short-context bias в действии

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

Допустим, ты анализируешь расшифровку встречи на 10 страниц. В начале обсуждали риски проекта, в конце — план запуска. Спрашиваешь: "Стоит ли запускать проект?"

  1. Запроси ответ на основе последних 2 страниц → получишь оптимистичный ответ про план
  2. Запроси ответ на весь документ → если модель использует начало, упомянет риски

Разница показывает: учитывает ли модель ранний контекст или "забывает" его.


📌

Принцип 3: Явно ссылайся на ранний контекст

Инсайт: Если информация критична и находится в начале документа — заставь модель вспомнить её через явную инструкцию.

Применение:

❌ Надежда на автоматическое внимание:
[Документ 5000 токенов, ключевая метрика в токене 300]
Вопрос: "Какой вывод?"

✅ Явное напоминание:
Вопрос: "В начале документа (раздел 2) упоминалась метрика X = 45%. 
Учитывая эту метрику и остальной контекст, какой вывод?"

✅ Якорная структура (для очень длинных документов):
Прочитай документ и выдели 5 ключевых фактов, включая информацию из начала.

[Документ]

Теперь, опираясь на эти факты, ответь: {вопрос}

📌

Принцип 4: Создавай "контекстные якоря"

Инсайт: В длинных диалогах или документах периодически напоминай модели о ключевой информации из начала.

Техника — "Промежуточные саммари":

Для длинного диалога (>20 сообщений):

Каждые 10-15 сообщений:

Подытожим, что мы выяснили до сих пор:
1. [Ключевой пункт из начала диалога]
2. [Ключевой пункт из середины]
3. [Текущее положение]

Теперь продолжим: {следующий вопрос}

Для анализа длинного документа:

Документ разбит на 3 части. Анализируй последовательно:

Часть 1 (токены 1-2000): Выдели 3 ключевых факта.
Часть 2 (токены 2001-4000): Выдели 3 ключевых факта.
Часть 3 (токены 4001-6000): Выдели 3 ключевых факта.

Теперь, используя все 9 фактов, ответь на вопрос: {вопрос}

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

Ты работаешь над стратегией продукта, обсуждаешь с Claude 30 сообщений. В начале диалога определили целевую аудиторию — предприниматели 25-35 лет. Сейчас обсуждаете каналы продвижения.

Вместо:

Какие каналы лучше?

Пиши:

Напомню: наша ЦА — предприниматели 25-35 лет, которые ценят скорость и автоматизацию (обсудили в начале). 
Какие каналы продвижения подойдут именно этой аудитории?

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


🧠

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

LLM устроены так, что каждый токен может "смотреть" на все предыдущие через механизм attention. Но вес внимания распределяется неравномерно — механизм attention учится во время обучения, на каких токенах фокусироваться. А в обучающих данных (книги, статьи, диалоги) большинство токенов предсказуемы из ближайших 32-96 токенов — это свойство естественного языка. Мы пишем связно, локальная когерентность важнее глобальной структуры.

Результат: модель усваивает паттерн "короткого контекста достаточно" и применяет его по умолчанию. Когда встречается задача, требующая long-range reasoning (например, "сопоставь факт из токена 500 с фактом из токена 5000"), модель склонна генерировать локально связный, но глобально неточный ответ — тот, который "звучит правдоподобно" исходя из последних 100 токенов.

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

Практический вывод: Если ты хочешь, чтобы модель учла информацию из начала документа/диалога — не полагайся на автоматическое внимание. Либо помести информацию ближе к концу (принцип 1), либо явно укажи на неё (принцип 3), либо создай промежуточный саммари (принцип 4). Модель не "забывает" начало, но её attention-веса естественным образом склоняются к ближайшим токенам.


⚠️

Ограничения принципов

⚠️ Не универсальная проблема: В некоторых задачах (например, суммаризация, где нужно охватить весь документ) модели обучены лучше использовать полный контекст. Short-context bias сильнее проявляется в генерации следующего токена и ответах на вопросы, где можно "выкрутиться" локально связным текстом.

⚠️ Зависит от модели и обучения: Модели, специально обученные на long-context задачах (например, с контекстом 32k+ токенов), демонстрируют меньший bias. Но даже они склонны опираться на локальный контекст для большинства токенов.

⚠️ Техника сравнения требует двух запросов: "Short-vs-Full Test" удваивает количество токенов и время. Применяй выборочно — для критичных решений или проверки гипотез, не для каждого промпта.

⚠️ Явные напоминания могут перегрузить промпт: Если документ 10k токенов и ключевых фактов 20 — не пытайся впихнуть все в финальный промпт. Используй промежуточные саммари (принцип 4) или chain-of-thought с явным извлечением фактов из разных частей.


🔍

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

Команда из University of British Columbia и Google DeepMind проверила гипотезу simple: "А действительно ли LLM используют весь доступный контекст?" Взяли 6 датасетов: короткие документы (Reddit, новости CNN, Wikipedia 1k токенов) и длинные (правительственные отчёты, расшифровки встреч, книги 6-7k токенов). Для каждого датасета сэмплировали 10,000 уникальных последовательностей и их ground-truth следующих токенов.

Методология: постепенное усечение контекста. Для каждой последовательности они давали модели сначала последние 32 токена, потом 48, 64... до полного контекста, пока модель не предскажет правильный токен с уверенностью >0.2 (разница вероятностей между топ-1 и топ-2 токеном). Это назвали Minimal Context Length (MCL) — минимальная длина префикса для точного предсказания.

Результат: распределение MCL оказалось heavy-tailed (длинный хвост в логарифмической шкале). 75-80% последовательностей имеют MCL ≤ 32-96 токенов. Даже на "длинно-контекстных" данных типа Government Reports на 6-7k токенов паттерн сохраняется — большинство токенов предсказуемы из локального хвоста. Power-law экспонента b ∈ [-2.5, -1.5] подтверждает сильное затухание — чем длиннее контекст требуется, тем экспоненциально реже такие случаи.

Удивительный факт: даже на специально отобранных long-context датасетах (книги, многостраничные отчёты) — где по идее нужно отслеживать сюжет, персонажей, раннюю информацию — модель всё равно в 75-80% случаев опирается на последние 100 токенов. Это говорит не о слабости моделей, а о свойстве естественного языка: локальная связность доминирует над глобальной структурой в генерации текста токен-за-токеном.

Дальше они разработали DaMCL (Distribution-aware MCL) — версию метрики, которая не требует знания ground-truth токена. Вместо "правильный/неправильный токен" они сравнивали распределения вероятностей при коротком и полном контексте через Jensen-Shannon Distance (JSD). Если JSD < 0.2 — распределения близки, короткого контекста хватает. Результаты DaMCL подтвердили паттерн MCL: short-context dominance сохраняется.

Финальный шаг: детектор long-context последовательностей. Метрика LSDS (Long-Short Distribution Shift) = JSD между распределениями при 32 токенах vs полном контексте. Проверили на контролируемом эксперименте "needle-in-haystack" (ответ либо в последних 32 токенах, либо глубже) — чёткое разделение: short-context последовательности имеют LSDS < 0.4, long-context > 0.6. На реальных данных сравнили с оракулами (которые знают ground-truth токен) — 80-90% long-context последовательностей корректно детектируются при пороге 0.6, ложные срабатывания < 5-10%.

Инсайт для практики: standard training objectives (next-token prediction) и метрики (perplexity) inherently biased в сторону short-range dependencies — потому что это доминирующий паттерн в данных. Это объясняет, почему модели "плохо работают на long-context" — они не плохо обучены, они оптимизированы под реальное распределение, где long-context редок.


💡

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

📌

🔧 Техника: Forced Long-Context Reasoning

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

Документ ниже содержит важную информацию в разных разделах.

Шаг 1: Прочитай Раздел 1 (первая треть) и выдели 2-3 ключевых факта.
Шаг 2: Прочитай Раздел 2 (средняя треть) и выдели 2-3 ключевых факта.
Шаг 3: Прочитай Раздел 3 (последняя треть) и выдели 2-3 ключевых факта.

[Документ]

Шаг 4: Используя факты из всех трёх разделов, ответь на вопрос:
{вопрос}

Эффект: Модель не может "соскользнуть" на локально связный ответ из последней трети — она уже зафиксировала факты из начала и середины в рабочей памяти (своём выводе на шагах 1-2).


📌

🔧 Техника: Explicit Dependency Mapping

Для анализа, где нужно сопоставить информацию из разных мест (например, сравнить упоминания персонажа в начале и конце книги, или сопоставить метрики из разных кварталов).

Задача: {твоя задача, требующая сопоставления информации}

Шаг 1: Найди в документе все упоминания/данные о {топик А}.
Шаг 2: Найди в документе все упоминания/данные о {топик Б}.
Шаг 3: Сопоставь найденное и выяви изменения/связи/противоречия.

[Документ]

Теперь выполни все три шага.

Пример: Анализируешь бизнес-план. В начале документа — целевая аудитория "SMB компании". В середине — описание продукта для enterprise. В конце — ценообразование для массового рынка.

Промпт:

Задача: Проверь согласованность целевой аудитории в бизнес-плане.

Шаг 1: Найди все упоминания целевой аудитории в документе.
Шаг 2: Выпиши, какая аудитория указана в каждом разделе (продукт, маркетинг, ценообразование).
Шаг 3: Есть ли противоречия? Если да — какие и как их исправить?

[Бизнес-план]

Выполни все три шага.

Модель вынуждена пройтись по всему документу и явно извлечь информацию, вместо того чтобы ответить на основе последнего раздела.


🔗

Ресурсы

Short-Context Dominance: How Much Local Context Natural Language Actually Needs?

Vala Vakilian, Zimeng Wang (University of British Columbia), Ankit Singh Rawat (Google DeepMind), Christos Thrampoulidis (University of British Columbia)

Код: github.com/vala-vakilian/ShortContextDominance


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

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

Парадокс: Даёшь модели документ на 7000 токенов, она опирается на последние 96. Это не баг памяти - это следствие обучения. Метод позволяет структурировать длинные документы так, чтобы модель учитывала информацию из начала, а не только из локального хвоста. Помещай ключевые факты ближе к вопросу или явно напоминай о них - модель имеет short-context bias (склонность к короткому контексту). Измерения на 6 датасетах показали: 75-80% последовательностей требуют только 32-96 токенов для точного предсказания, даже в отчётах на 6-7k.

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

Не "длинный контекст = лучше", а "локальный контекст = по умолчанию". Модель смотрит на весь документ через attention, но веса склоняются к последним 32-96 токенам - так она обучалась на естественном языке. Хочешь чтобы учла факт из начала? Вынеси его в конец перед вопросом. Или напомни явно: "В разделе 2 упоминалась метрика X=45% - учитывая её, ответь...". Модель не "забывает" начало, но её attention естественным образом фокусируется на ближайших токенах.

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

В обучающих данных (книги, статьи, диалоги) большинство токенов предсказуемы из ближайшего контекста - это свойство естественного языка. Мы пишем связно, локальная когерентность важнее глобальной структуры. Модель усвоила паттерн "короткого достаточно" и применяет по умолчанию. Когда встречается задача требующая информацию из токена 500 и токена 5000 одновременно, модель склонна генерировать локально связный, но глобально неточный ответ - тот что "звучит правдоподобно" из последних 100 токенов. Это не ограничение архитектуры (attention технически может "дотянуться" до любого токена), а следствие обучения на данных где дальние токены редко критичны.

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

Длинные документы (отчёты, расшифровки встреч, обзоры на 5k+ токенов) → конкретно для QA-задач когда ключевая информация в начале документа, а вопрос задаёшь в конце. Особенно когда модель может "выкрутиться" локально связным ответом игнорируя ранний контекст. НЕ подходит для задач где модель специально обучена использовать полный контекст (например, суммаризация целого документа на одну страницу).

Мини-рецепт

1. Размести ключевое в конец: Перед вопросом напомни факты из начала: Напомню из раздела 2: метрика X=45%. Учитывая это, ответь: {вопрос}
2. Проверь через сравнение: Задай вопрос на последние 200 слов VS весь документ. Ответы идентичны? Модель игнорирует начало
3. Создай якоря в длинных диалогах: Каждые 10-15 сообщений суммируй: Подытожим что выяснили: 1) [факт из начала] 2) [факт из середины] 3) [текущее]. Теперь продолжим...
4. Разбей на части с промежуточными фактами: Для документов 5k+ токенов: Часть 1: выдели 3 ключевых факта. Часть 2: ещё 3. Теперь используя все 6 фактов ответь на {вопрос}

Примеры

[ПЛОХО] : Прочитай расшифровку встречи [7000 токенов, обсуждение рисков в начале, план запуска в конце]. Вопрос: стоит ли запускать проект? (модель ответит на основе оптимистичного плана из конца, проигнорирует риски из начала)
[ХОРОШО] : Вопрос: стоит ли запускать проект? Напомню ключевые моменты из расшифровки: в начале встречи обсуждался риск бюджета (превышение на 40%), в середине - технический долг, в конце - план запуска на 3 месяца. Контекст: [релевантные выдержки из всех частей]. Учитывая ВСЕ эти факторы, дай рекомендацию. (явно форсируешь модель учесть информацию из разных частей документа)
Источник: Short-Context Dominance: How Much Local Context Natural Language Actually Needs?
ArXiv ID: 2512.08082 | Сгенерировано: 2026-01-08 23:36

Проблемы LLM

ПроблемаСутьКак обойти
LLM игнорирует раннюю информацию в длинных документах — опирается на последние 32-96 токеновДокумент 7k токенов, ключевой факт в токене 500 — модель предсказывает следующий токен на основе последних 32-96; в 75-80% последовательностей вес внимания на локальном хвосте; это следствие обучения (в training data большинство токенов предсказуемы из ближайшего контекста); модель генерирует "звучит связно" вместо "глобально точно"Размещай ключевую информацию ближе к концу промпта; или напоминай о ней явно: "В начале документа упомянут факт X. Учитывая X, ответь: {вопрос}"

Тезисы

ТезисКомментарий
LLM опирается преимущественно на последние 32-96 токенов даже при доступе к длинному контексту75-80% последовательностей на документах 1-7k токенов; это свойство обучения — в training data большинство токенов предсказуемы локально, модель усвоила этот паттерн; механизм attention может "дотянуться" до начала, но веса естественно склоняются к ближайшим токенам (позиционное затухание). Применяй: размещай ключевую информацию ближе к концу промпта или создавай "якоря" — напоминай о фактах из начала явно перед вопросом
📖 Простыми словами

Short-Context Dominance: LLM используют последние 32-96 токенов даже при доступе к длинному контексту

arXiv: 2512.08082

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

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

Цифры просто беспощадны: даже в тяжелых правительственных отчетах и книгах, где, казалось бы, важна каждая деталь, доминирует локальный контекст. Исследователи прогнали кучу датасетов от Reddit до CNN и выяснили, что в подавляющем большинстве случаев модель выдает точный ответ, опираясь на крошечный отрезок текста. Если ты думал, что скормив нейронке PDF на 50 страниц, ты получишь глубокий анализ всей структуры, то облом — она просто цепляется за последние абзацы и делает вид, что в курсе дела.

Этот принцип универсален и объясняет, почему чат-боты начинают тупить или противоречить сами себе в длинных диалогах. Тестировали на текстах, но это касается любой работы с AI: от написания кода до анализа юридических договоров. Длинный контекст — это иллюзия контроля. Модель видит буквы, но «слышит» только то, что ей сказали только что. Поэтому если важная инструкция зарыта в середине промпта, она, скорее всего, пролетит мимо кассы.

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

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

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

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