Context Rot
Context rot (гниение контекста) - это постепенное снижение точности LLM, следования инструкциям и достоверности цитирований по мере удлинения входного контекста. Даже при контекстных окнах, достигающих 1 млн токенов, практически пригодная точность падает задолго до этого предела - разница между 32k, 128k и 1M гораздо меньше, чем подразумевает маркетинг.
Context rot (гниение контекста) - это постепенное снижение точности LLM, следования инструкциям и достоверности цитирований по мере удлинения входного контекста. Даже при контекстных окнах, достигающих 1 млн токенов, практически пригодная точность падает задолго до этого предела - разница между 32k, 128k и 1M гораздо меньше, чем подразумевает маркетинг.
Почему это важно
Бенчмарки рекламируют окна в миллион токенов, но эмпирические исследования начиная с 2025 года рисуют иную картину - оценки от Chroma, Anthropic и Databricks последовательно показывают, что одна и та же модель падает с 95% точности на 8k до примерно 60% на 64k в идентичных задачах. В генерации с дополнением извлечением (RAG) сброс сразу 30 фрагментов обычно задействует только первые и последние несколько, игнорируя середину (lost-in-the-middle), а модель может даже утверждать, что "сверилась" с контентом, который на самом деле никогда не использовала. Context rot - крупнейшая скрытая ловушка в дизайне систем GEO и RAG, и она прямо противоречит интуиции, что "больше контекста = лучше ответы".
Симптомы
Игнорирование информации из середины: критически важные факты, помещённые в середину контекста, не попадают в ответ, тогда как контент в начале и конце сохраняется.
Дрейф инструкций: директивы системного промпта начинают игнорироваться после длинного сообщения пользователя - тон, формат и запреты все утекают.
Галлюцинация цитирований: модель говорит "согласно пятому абзацу выше...", но такого абзаца не существует, или контент взят из другого документа.
Обвал удержания: в многоходовых диалогах ранний контекст фактически забывается. После 4-5 ходов модель теряет нить предыдущих договорённостей.
Выпадение вызовов инструментов: инструменты, определённые в длинных контекстах, используются реже или вызываются с неверными аргументами.
Почему это происходит
Разбавление внимания: каждый токен должен внимать каждому другому токену, поэтому сигнал на токен слабеет по мере удлинения последовательности.
Ограничения позиционного кодирования: за пределами обученной длины позиционная информация теряет смысл. RoPE и ALiBi помогают, но не решают проблему полностью.
Распределение обучающих данных: большинство документов, увиденных в ходе обучения, короткие. Окно в 1 млн токенов не означает, что модель обучалась на документах в 1 млн токенов.
Ограничения "иголки в стоге сена": простые задачи поиска проходят даже на длинном контексте, но рассуждения, синтез и интеграция множества фактов деградируют гораздо быстрее.
Значение для GEO
Answer engine извлекают, разбивают на фрагменты и синтезируют, складывая извлечённые фрагменты в контекст LLM для генерации ответа. Context rot означает:
Доминируют фрагменты с верхних позиций: если ваш фрагмент не попадает в топ-1-3 после переранжирования, он фактически не цитируется, хотя и "находится в контексте".
Побеждают короткие, самодостаточные фрагменты: более длинные фрагменты разбавляют внимание. Оптимум - 100-300 слов.
Важны прямые ответы в начале: первый абзац, отвечающий на вопрос, сохраняется независимо от того, где он находится в контексте.
Достоверность цитирований требует проверки: ответы могут галлюцинировать цитирования, выглядящие обоснованными; необходимы постобработочные проверки.
Стратегии смягчения
Сжатие контекста: не сбрасывайте сырые документы в контекст - используйте суммаризацию с учётом запроса, чтобы извлечь только релевантные части.
Агрессивное переранжирование: извлеките 30-50 кандидатов, переранжируйте до топ-5-10, затем поместите их в контекст.
Размещайте критическую информацию осознанно: помещайте самые важные фрагменты в начало или конец (избегайте середины).
Иерархический синтез: в стиле map-reduce - синтезируйте подгруппы фрагментов, затем синтезируйте сводки.
Установите бюджет контекста: осознанно ограничьте контекст, скажем, 8k токенами и оптимизируйте в его рамках.
Автоматизированная оценка RAG: проверяйте фактическое соответствие между ответами и исходными фрагментами через LLM-as-judge или сходство эмбеддингов.
Распространённые заблуждения
"Больше контекста всегда лучше": рекламируемое окно ≠ пригодное окно. Надёжный практический предел - примерно 10-30% от заявленной ёмкости.
"Прохождение теста с иголкой в стоге сена означает, что длинный контекст работает": поиск одного факта прост. Рассуждения по множеству фактов рушатся гораздо раньше.
"Дообучение это исправит": дообучение несколько помогает, но структурные ограничения остаются. Дизайн системы - более эффективный обходной путь.
"Новые модели это решили": по состоянию на 2026 год даже передовые модели всё ещё измеримо деградируют после 32k-64k токенов.
Типичные ошибки
Сброс всех результатов извлечения в контекст: вставка топ-30 фрагментов в сыром виде гарантирует lost-in-the-middle.
Размещение системного промпта в конце: системные инструкции, помещённые после длинного сообщения пользователя, игнорируются. Помещайте их в начало.
Доверие маркетингу контекстного окна: реклама 1 млн токенов не означает 1 млн пригодных токенов.
Пропуск валидации RAG: если планка - "выглядит обоснованно", галлюцинации накапливаются.
Единообразные размеры фрагментов: нарезка всех документов на одинаковую длину ломает смысл. Используйте семантическое разбиение.
Источники: