Контекстно забравяне

From Systems analysis wiki
Jump to navigation Jump to search

Контекстното забравяне в големите езикови модели — това е многостранно явление, при което голям езиков модел (LLM) губи, игнорира или неефективно използва предварително предоставената му информация в рамките на едно взаимодействие[1]. За разлика от човешката памет, LLM нямат дългосрочно хранилище на състоянията и разчитат единствено на контекстния прозорец — ограничен обем текст (в token-и), който моделът може да обработи едновременно. Този прозорец играе ролята на краткосрочна или работна памет на модела[2].

Най-известната проява на това ограничение е проблемът „загуба в средата" (Lost in the Middle) — тенденцията на моделите да обработват по-добре информацията, намираща се в началото и края на дълъг контекст, и по-зле — тази в средата[2]. Това явление не е дефект, а фундаментално свойство, произтичащо от архитектурата на transformer-ите и принципите на тяхното обучение.

Два типа забравяне: Контекстно и Катастрофично

Важно е да се разграничат два принципно различни типа „забравяне" в LLM: вътреконтекстно и катастрофично.

Вътреконтекстно забравяне (Загуба в средата)

Този тип забравяне се случва по време на една сесия на взаимодействие (inference) с вече обучен модел. Той е свързан с ограниченията на контекстния прозорец. Когато обемът на диалога или документа надвишава размера на прозореца, моделът „забравя" най-старите фрагменти, за да освободи място за нови. Дори в рамките на прозореца информацията от средата на контекста може да се използва по-малко ефективно. Това е ограничение на работната памет на модела[3]. В публицистиката това явление се нарича още „синдром на деградация на контекста" (Context Degradation Syndrome, CDS)[1].

Катастрофично забравяне (Дрейф на модела)

Този тип забравяне, известен също като „дрейф на модела" (model drift), се случва в процеса на fine-tuning на модела върху нови данни. Когато модел, предварително обучен върху огромен корпус от общи знания, се дообучава върху тясноспециализиран набор от данни (например медицински текстове), неговите тегла се променят. Това може да доведе до деградация или „изтриване" на предварително усвоени знания и умения, несвързани с новата задача[4].

Причини и механизми

Контекстното забравяне е пряко следствие от архитектурата на transformer-ите и геометрията на векторните пространства.

Ефектът „Загуба в средата" (Lost in the Middle)

Изследване на Станфордския университет от 2023 година, озаглавено „Lost in the Middle", нагледно демонстрира, че производителността на LLM при извличане на информация от дълъг контекст има U-образна крива[2]. Точността на отговорите е най-висока, когато релевантната информация се намира в самото начало (ефект на първичността) или в самия край (ефект на новостта) на контекста, и значително намалява, ако тя е „скрита" в средата. Причините за това явление:

  • Механизмът на attention: Архитектурата на transformer-а по своята природа отделя непропорционално голямо внимание на началните token-и (така наречените „котви на вниманието" или attention sinks) за поддържане на глобалната кохерентност, а също и на локалния контекст, което води до отслабване на „фокуса" върху средата[5].
  • Данни за предобучение: Моделите най-често се обучават върху сравнително кратки текстове, където важната информация рядко се намира на разстояние десетки хиляди token-и от началото, което им пречи да използват ефективно много дълги контексти[6].

Прояви и последствия

  • Синдром на деградация на контекста: По време на продължителни диалози моделът започва да „губи нишката на разговора", да повтаря отговори, да противоречи на предварително установени факти и да дава все по-общи и разплути отговори[1].
  • Грешки в многоетапни задачи: В задачи, при които условията се уточняват в хода на няколко реплики, моделът може да се „закачи" за грешното първоначално предположение и да игнорира последващите уточнения, което води до пълна неспособност за решаване на задачата[7].
  • Ненадеждност при анализ на документи: При анализ на дълги доклади или правни документи LLM може да пропусне ключови факти, намиращи се в централните раздели, което я прави ненадежден инструмент за подобни задачи.

Стратегии за смекчаване и предотвратяване

Изследователите и разработчиците прилагат няколко подхода за решаване на проблема с контекстното забравяне.

Увеличаване на контекстния прозорец

Най-прекият подход е увеличаването на размера на контекстния прозорец. Съвременни модели като Claude 3 (200 хил. token-а) и Gemini 1.5 Pro (до 2 млн. token-а) значително разшириха тази граница[8][9]. Въпреки това изследванията показват, че простото увеличаване на прозореца не гарантира ефективното му използване и проблемът „загуба в средата" се запазва[2].

Усъвършенствано инженерство на prompt-и

Грамотното структуриране на prompt-ите може значително да подобри производителността. Компанията Anthropic предлага следните практики[10]:

  • Поставяне на документите в началото: Да се поставят дългите текстове в самото начало на prompt-а, преди инструкциите и въпроса.
  • Използване на XML тагове: Да се обвиват документите в тагове `<document>` за ясно разграничаване.
  • Обосноваване на отговорите с цитати: Да се даде на модела инструкция първо да извлече релевантни цитати, а след това на тяхна основа да формулира отговора.

Екстернализация на паметта: Retrieval-Augmented Generation (RAG)

Фундаментално различен подход — да не се поставя цялата информация в контекстния прозорец, а да се изнесе във външна система (векторна база данни) и да се предоставя при поискване.

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

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

Връзки

  • Lost in the Middle: How Language Models Use Long Contexts — оригинално изследване на Станфордския университет.
  • Обявяване на Claude с контекстен прозорец от 100K token-а от 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. 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]