Контекстное забывание
Контекстное забывание в больших языковых моделях — это многогранное явление, при котором большая языковая модель (LLM) теряет, игнорирует или неэффективно использует ранее предоставленную ей информацию в рамках одного взаимодействия[1]. В отличие от человеческой памяти, LLM не имеют долговременного хранилища состояний и опираются только на контекстное окно — ограниченный объём текста (в токенах), который модель может обработать единовременно. Это окно выступает в роли кратковременной или рабочей памяти модели[2].
Наиболее известным проявлением этого ограничения является проблема «потери в середине» (Lost in the Middle) — тенденция моделей лучше обрабатывать информацию, расположенную в начале и конце длинного контекста, и хуже — в середине[2]. Это явление не является сбоем, а фундаментальным свойством, вытекающим из архитектуры трансформеров и принципов их обучения.
Два типа забывания: Контекстное и Катастрофическое
Важно различать два принципиально разных типа «забывания» в LLM: внутриконтекстное и катастрофическое.
Внутриконтекстное забывание (Потеря в середине)
Этот тип забывания происходит во время одного сеанса взаимодействия (инференса) с уже обученной моделью. Он связан с ограничениями контекстного окна. Когда объём диалога или документа превышает размер окна, модель «забывает» самые старые фрагменты, чтобы освободить место для новых. Даже в пределах окна информация из середины контекста может использоваться менее эффективно. Это ограничение рабочей памяти модели[3]. В публицистике это явление также называют «синдром деградации контекста» (Context Degradation Syndrome, CDS)[1].
Катастрофическое забывание (Дрейф модели)
Этот тип забывания, известный также как «дрейф модели» (model drift), происходит в процессе дообучения (fine-tuning) модели на новых данных. Когда модель, предварительно обученную на огромном корпусе общих знаний, дообучают на узкоспециализированном наборе данных (например, на медицинских текстах), её веса изменяются. Это может привести к деградации или «стиранию» ранее усвоенных знаний и навыков, не связанных с новой задачей[4].
Причины и механизмы
Контекстное забывание является прямым следствием архитектуры трансформеров и геометрии векторных пространств.
Эффект «Потери в середине» (Lost in the Middle)
Исследование Стэнфордского университета 2023 года под названием «Lost in the Middle» наглядно продемонстрировало, что производительность LLM при извлечении информации из длинного контекста имеет U-образную кривую[2]. Точность ответов наивысшая, когда релевантная информация находится в самом начале (эффект первичности) или в самом конце (эффект новизны) контекста, и значительно снижается, если она «спрятана» в середине. Причины этого явления:
- Механизм внимания: Архитектура трансформера по своей природе уделяет непропорционально много внимания начальным токенам (так называемые «якоря внимания» или attention sinks) для поддержания глобальной когерентности, а также локальному контексту, что и приводит к ослаблению «фокуса» на середине[5].
- Данные для предобучения: Модели чаще всего обучаются на относительно коротких текстах, где важная информация редко находится на расстоянии десятков тысяч токенов от начала, что мешает им эффективно использовать очень длинные контексты[6].
Проявления и последствия
- Синдром деградации контекста: В ходе длительных диалогов модель начинает «терять нить разговора», повторять ответы, противоречить ранее установленным фактам и давать всё более общие и расплывчатые ответы[1].
- Сбои в многоэтапных задачах: В задачах, где условия уточняются в ходе нескольких реплик, модель может «зацепиться» за неверное первоначальное предположение и игнорировать последующие уточнения, что приводит к полной неспособности решить задачу[7].
- Ненадёжность анализа документов: При анализе длинных отчётов или юридических документов LLM может упустить ключевые факты, расположенные в центральных разделах, что делает её ненадёжным инструментом для таких задач.
Стратегии смягчения и предотвращения
Исследователи и разработчики применяют несколько подходов для решения проблемы контекстного забывания.
Увеличение окна контекста
Самый прямолинейный подход — увеличение размера контекстного окна. Современные модели, такие как Claude 3 (200 тыс. токенов) и Gemini 1.5 Pro (до 2 млн токенов), значительно расширили этот предел[8][9]. Однако исследования показывают, что простое увеличение окна не гарантирует его эффективного использования, и проблема «потери в середине» сохраняется[2].
Продвинутая инженерия промптов
Грамотное структурирование промптов может значительно улучшить производительность. Компания Anthropic предлагает следующие практики[10]:
- Размещение документов в начале: Помещать длинные тексты в самое начало промпта, перед инструкциями и вопросом.
- Использование XML-тегов: Оборачивать документы в теги `<document>` для чёткого разделения.
- Обоснование ответов цитатами: Дать модели инструкцию сначала извлечь релевантные цитаты, а затем на их основе формулировать ответ.
Экстернализация памяти: Retrieval-Augmented Generation (RAG)
Фундаментально иной подход — не помещать всю информацию в контекстное окно, а вынести её во внешнюю систему (векторную базу данных) и предоставлять по запросу.
- Извлечение (Retrieve): Когда поступает запрос, система ищет релевантную информацию во внешней базе.
- Дополнение (Augment): Найденные фрагменты добавляются к исходному запросу.
- Генерация (Generate): LLM генерирует ответ, основываясь на предоставленном контексте.
RAG позволяет работать с практически неограниченными объёмами данных и обеспечивает доступ к свежей и проверенной информации, что снижает риск галлюцинаций и является наиболее надёжным решением на сегодняшний день[11].
Ссылки
- Lost in the Middle: How Language Models Use Long Contexts — оригинальное исследование Стэнфордского университета.
- Анонс Claude с контекстным окном в 100K токенов от Anthropic.
Литература
- Liu, N. F. et al. (2023). Lost in the Middle: How Language Models Use Long Contexts. arXiv:2307.03172.
- An, C. et al. (2024). Why Does the Effective Context Length of LLMs Fall Short?. arXiv:2410.18745.
- Ding, J. et al. (2023). LongNet: Scaling Transformers to 1,000,000,000 Tokens. arXiv:2307.02486.
- Yang, A. et al. (2024). Context Parallelism for Scalable Million-Token Inference. arXiv:2411.01783.
- Chen, S. et al. (2023). Extending Context Window of Large Language Models via Positional Interpolation. arXiv:2306.15595.
- Ding, Y. et al. (2024). LongRoPE: Extending LLM Context Window Beyond 2 Million Tokens. arXiv:2402.13753.
- Li, S. et al. (2023). Functional Interpolation for Relative Positions Improves Long Context Transformers. arXiv:2310.04418.
- Dong, Z. et al. (2024). Exploring Context Window of Large Language Models via Decomposed Positional Vectors. arXiv:2405.18009.
- Laban, P. et al. (2025). LLMs Get Lost in Multi-Turn Conversation. arXiv:2505.06120.
- Li, R. et al. (2024). Extending Context Window in Large Language Models with Segmented Base Adjustment for Rotary Position Embeddings. Applied Sciences, 14(7), 3076. DOI:10.3390/app14073076.
- Yang, A. & Reizenstein, J. (2024). Exploring Context Window of LLMs via Decomposed Positional Vectors (NeurIPS Poster). NeurIPS 2024.
Примечания
- ↑ 1,0 1,1 1,2 Howard, James. «Context Degradation Syndrome: When Large Language Models Lose the Plot». jameshoward.us. [1]
- ↑ 2,0 2,1 2,2 2,3 Liu, Nelson F.; et al. «Lost in the Middle: How Language Models Use Long Contexts». arXiv. [2]
- ↑ Liu, Nelson F.; et al. «Lost in the Middle: How Language Models Use Long Contexts». ACL Anthology. [3]
- ↑ Greyling, Cobus. «Catastrophic Forgetting In LLMs». Medium. [4]
- ↑ «Exploring Context Window of Large Language Models via Decomposed Positional Vectors». NeurIPS Proceedings. [5]
- ↑ An, Chenxin; et al. «Why Does the Effective Context Length of LLMs Fall Short?». arXiv. [6]
- ↑ «LLMs Get Lost In Multi-Turn Conversation». arXiv. [7]
- ↑ «Introducing the next generation of Claude». Anthropic. [8]
- ↑ «Google's Gemini 1.5 Pro - Revolutionizing AI with a 1M Token Context Window». Medium. [9]
- ↑ «Long context prompting tips». Anthropic Documentation. [10]
- ↑ «What is Retrieval-Augmented Generation (RAG)?». Google Cloud. [11]