Контекстное забывание

Материал из Systems analysis wiki
Перейти к навигации Перейти к поиску

Контекстное забывание в больших языковых моделях — это многогранное явление, при котором большая языковая модель (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)

Фундаментально иной подход — не помещать всю информацию в контекстное окно, а вынести её во внешнюю систему (векторную базу данных) и предоставлять по запросу.

  1. Извлечение (Retrieve): Когда поступает запрос, система ищет релевантную информацию во внешней базе.
  2. Дополнение (Augment): Найденные фрагменты добавляются к исходному запросу.
  3. Генерация (Generate): LLM генерирует ответ, основываясь на предоставленном контексте.

RAG позволяет работать с практически неограниченными объёмами данных и обеспечивает доступ к свежей и проверенной информации, что снижает риск галлюцинаций и является наиболее надёжным решением на сегодняшний день[11].

Ссылки

Литература

  • 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. 1,0 1,1 1,2 Howard, James. «Context Degradation Syndrome: When Large Language Models Lose the Plot». jameshoward.us. [1]
  2. 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]
  3. Liu, Nelson F.; et al. «Lost in the Middle: How Language Models Use Long Contexts». ACL Anthology. [3]
  4. Greyling, Cobus. «Catastrophic Forgetting In LLMs». Medium. [4]
  5. «Exploring Context Window of Large Language Models via Decomposed Positional Vectors». NeurIPS Proceedings. [5]
  6. An, Chenxin; et al. «Why Does the Effective Context Length of LLMs Fall Short?». arXiv. [6]
  7. «LLMs Get Lost In Multi-Turn Conversation». arXiv. [7]
  8. «Introducing the next generation of Claude». Anthropic. [8]
  9. «Google's Gemini 1.5 Pro - Revolutionizing AI with a 1M Token Context Window». Medium. [9]
  10. «Long context prompting tips». Anthropic Documentation. [10]
  11. «What is Retrieval-Augmented Generation (RAG)?». Google Cloud. [11]