Особенности длинного контекста
Особенности длинного контекста
Современные модели имеют контекстные окна от 32 000 до 200 000+ токенов — это десятки и сотни страниц текста. Казалось бы, можно загрузить целый роман и попросить модель проанализировать его. Но на практике качество ответа падает с ростом объёма данных. В этом уроке разберём, почему и что с этим делать.
Проблема «потерянного в середине»
Модели неравномерно распределяют внимание по длинному тексту. Эксперименты показывают:
Внимание модели
↑
│ ╲
│ ╲
│ ╲______________
│
└──────────────────→ Позиция в тексте
начало середина конец
Модель лучше всего «видит» начало и конец текста. Середина — «слепое пятно». Если важная инструкция оказалась в середине длинного промпта — модель может её пропустить.
Что это значит для тебя: ключевые инструкции — в начало промпта. Важные данные — в начало или в самый конец (перед запросом).
Проблема «размывания инструкций»
Когда данных в промпте намного больше, чем инструкций, модель «тонет» в данных. Инструкция из 50 слов теряется на фоне документа из 5 000 слов.
Плохо:
Проанализируй документ. Найди все упоминания сроков, сумм и ответственных лиц.
[50 страниц текста]
Инструкция — 12 слов. Документ — 5 000+ слов. Модель может забыть, что нужно искать.
Хорошо:
<instruction>
## ЗАДАЧА
Найди в документе ниже ВСЕ упоминания:
1. Сроков (даты, периоды).
2. Денежных сумм (числа с валютой).
3. Ответственных лиц (имена + должность).
## ФОРМАТ ОТВЕТА
Для каждого найденного элемента укажи:
- Тип (срок/сумма/лицо).
- Значение.
- Контекст (предложение, в котором встретилось).
## ПРОВЕРЬ СЕБЯ
Перед ответом убедись, что ты проверил ВЕСЬ документ, а не только начало.
</instruction>
<document>
[50 страниц текста]
</document>
Инструкция стала заметнее за счёт структуры и расположения ДО данных.
Проблема «забывания начала»
В длинном диалоге старые сообщения постепенно «вытесняются» из контекстного окна. Инструкции, которые ты дал в первом сообщении, через 20 реплик могут исчезнуть.
Решение: периодически напоминай модели ключевые инструкции. Или начни новый чат с теми же инструкциями, но без истории.
Когда длинный контекст работает хорошо
Длинный контекст НЕ всегда проблема. Он отлично работает для:
- Поиск конкретного факта: «В каком году был подписан этот договор?» — модель найдёт дату даже в 100-страничном документе.
- Суммаризация: «Сделай краткое содержание этого документа» — модель справляется, потому что задача простая.
- Ответы на вопросы по тексту: если вопрос конкретный, модель найдёт ответ.
Длинный контекст начинает подводить, когда задача требует УДЕРЖАНИЯ и СРАВНЕНИЯ информации из разных частей текста. Например: «Сравни арендную плату из раздела 3 и дополнительные платежи из раздела 7».
Стратегии работы с длинным контекстом
| Стратегия | Суть | Когда применять |
|---|---|---|
| Структурировать | Разбить документ на секции с заголовками | Всегда, когда можешь редактировать промпт |
| Приоритезировать | Ключевое — в начало и конец | Инструкции и важнейшие данные |
| Декомпозировать | Разбить документ на части, анализировать по очереди | Документ > 50% контекстного окна |
| Перезапустить диалог | Новый чат с инструкциями, но без истории | Длинный диалог, модель «забыла» начало |
Проверь себя
Ты даёшь модели трудовой договор на 30 страниц и просишь проверить 10 условий. Как организуешь промпт?
Ответ: инструкцию с 10 условиями — в начало, перед документом. Каждое условие — отдельный пункт списка. Документ — после инструкции с XML-тегом <document>. Если 30 страниц близко к лимиту контекстного окна — разбить на разделы и проверять по 3–4 условия за раз.
Итог
- Модель лучше видит начало и конец текста; середина — слепое пятно.
- Инструкции размещай ДО данных — так модель их не «забудет».
- Структурируй промпт: заголовки, теги, секции — чтобы инструкции были заметнее данных.
- Длинный контекст хорош для поиска и суммаризации, плох для сравнения информации из разных частей.
- Если данные не помещаются — декомпозируй: разбей документ на части.
Что дальше
Теперь ты знаешь особенности длинного контекста. В следующем уроке — конкретные приёмы размещения данных в промпте: что ставить в начало, что в конец, а что — в XML-теги.