Kontekstowe zapominanie

From Systems analysis Wiki
Jump to navigation Jump to search

Kontekstowe zapominanie w dużych modelach językowych — to wielowymiarowe zjawisko, w którym duży model językowy (LLM) traci, ignoruje lub nieefektywnie wykorzystuje wcześniej dostarczone mu informacje w ramach jednej sesji interakcji[1]. W odróżnieniu od ludzkiej pamięci, LLM nie posiadają długoterminowego magazynu stanów i opierają się wyłącznie na oknie kontekstowym — ograniczonej ilości tekstu (w tokenach), którą model może przetworzyć jednorazowo. Okno to pełni rolę pamięci krótkotrwałej lub roboczej modelu[2].

Najbardziej znanym przejawem tego ograniczenia jest problem „zaginięcia w środku" (Lost in the Middle) — tendencja modeli do lepszego przetwarzania informacji znajdujących się na początku i na końcu długiego kontekstu, a gorszego — w środku[2]. Zjawisko to nie jest błędem, lecz fundamentalną właściwością wynikającą z architektury transformerów i zasad ich trenowania.

Dwa typy zapominania: Kontekstowe i Katastroficzne

Ważne jest rozróżnienie dwóch zasadniczo różnych typów „zapominania" w LLM: wewnątrzkontek­stowego i katastroficznego.

Wewnątrzkontekstowe zapominanie (Zaginięcie w środku)

Ten typ zapominania zachodzi podczas jednej sesji interakcji (inferencji) z już wytrenowanym modelem. Związany jest z ograniczeniami okna kontekstowego. Gdy objętość dialogu lub dokumentu przekracza rozmiar okna, model „zapomina" najstarsze fragmenty, aby zwolnić miejsce na nowe. Nawet w obrębie okna informacje ze środka kontekstu mogą być wykorzystywane mniej efektywnie. Jest to ograniczenie pamięci roboczej modelu[3]. W publicystyce zjawisko to nazywane jest również „syndromem degradacji kontekstu" (Context Degradation Syndrome, CDS)[1].

Katastroficzne zapominanie (Dryfowanie modelu)

Ten typ zapominania, znany również jako „dryfowanie modelu" (model drift), zachodzi w procesie dostrajania (fine-tuning) modelu na nowych danych. Gdy model wstępnie wytrenowany na ogromnym korpusie wiedzy ogólnej jest dostrajany na wąskospecjalistycznym zbiorze danych (np. na tekstach medycznych), jego wagi ulegają zmianie. Może to prowadzić do degradacji lub „wymazania" wcześniej przyswojonych wiedzy i umiejętności niezwiązanych z nowym zadaniem[4].

Przyczyny i mechanizmy

Kontekstowe zapominanie jest bezpośrednią konsekwencją architektury transformerów oraz geometrii przestrzeni wektorowych.

Efekt „Zaginięcia w środku" (Lost in the Middle)

Badanie Uniwersytetu Stanforda z 2023 roku pod tytułem „Lost in the Middle" wyraźnie wykazało, że wydajność LLM przy wydobywaniu informacji z długiego kontekstu ma kształt krzywej U[2]. Dokładność odpowiedzi jest najwyższa, gdy istotna informacja znajduje się na samym początku (efekt pierwszeństwa) lub na samym końcu (efekt świeżości) kontekstu, i znacząco spada, gdy jest „ukryta" w środku. Przyczyny tego zjawiska:

  • Mechanizm uwagi: Architektura transformera z natury poświęca nieproporcjonalnie dużo uwagi początkowym tokenom (tzw. „kotwice uwagi" lub attention sinks) dla zachowania globalnej spójności, a także lokalnemu kontekstowi, co prowadzi do osłabienia „skupienia" na środku[5].
  • Dane do wstępnego trenowania: Modele najczęściej trenowane są na stosunkowo krótkich tekstach, w których ważne informacje rzadko znajdują się w odległości dziesiątek tysięcy tokenów od początku, co utrudnia im efektywne korzystanie z bardzo długich kontekstów[6].

Przejawy i konsekwencje

  • Syndrom degradacji kontekstu: W trakcie długich dialogów model zaczyna „gubić wątek rozmowy", powtarzać odpowiedzi, zaprzeczać wcześniej ustalonym faktom i udzielać coraz bardziej ogólnych i niejasnych odpowiedzi[1].
  • Błędy w zadaniach wieloetapowych: W zadaniach, w których warunki są doprecyzowywane w toku kilku wypowiedzi, model może „uchwycić się" błędnego wstępnego założenia i ignorować kolejne uściślenia, co prowadzi do całkowitej niezdolności do rozwiązania zadania[7].
  • Zawodność analizy dokumentów: Przy analizie długich raportów lub dokumentów prawnych LLM może przeoczyć kluczowe fakty znajdujące się w centralnych sekcjach, co czyni go zawodnym narzędziem do takich zadań.

Strategie łagodzenia i zapobiegania

Badacze i programiści stosują kilka podejść w celu rozwiązania problemu kontekstowego zapominania.

Zwiększanie okna kontekstowego

Najbardziej bezpośrednie podejście — zwiększenie rozmiaru okna kontekstowego. Nowoczesne modele, takie jak Claude 3 (200 tys. tokenów) i Gemini 1.5 Pro (do 2 mln tokenów), znacznie poszerzyły ten limit[8][9]. Jednak badania pokazują, że samo zwiększenie okna nie gwarantuje jego efektywnego wykorzystania, a problem „zaginięcia w środku" pozostaje[2].

Zaawansowana inżynieria promptów

Umiejętne strukturyzowanie promptów może znacznie poprawić wydajność. Firma Anthropic proponuje następujące praktyki[10]:

  • Umieszczanie dokumentów na początku: Wstawianie długich tekstów na sam początek promptu, przed instrukcjami i pytaniem.
  • Używanie tagów XML: Opakowywanie dokumentów w tagi `<document>` dla wyraźnego rozdzielenia.
  • Uzasadnianie odpowiedzi cytatami: Danie modelowi instrukcji, by najpierw wyodrębnił istotne cytaty, a następnie na ich podstawie formułował odpowiedź.

Eksternalizacja pamięci: Retrieval-Augmented Generation (RAG)

Zasadniczo odmienne podejście — nie umieszczać wszystkich informacji w oknie kontekstowym, lecz przenieść je do zewnętrznego systemu (wektorowej bazy danych) i udostępniać na żądanie.

  1. Wyszukiwanie (Retrieve): Gdy napływa zapytanie, system poszukuje istotnych informacji w zewnętrznej bazie.
  2. Uzupełnianie (Augment): Znalezione fragmenty są dodawane do pierwotnego zapytania.
  3. Generowanie (Generate): LLM generuje odpowiedź na podstawie dostarczonego kontekstu.

RAG umożliwia pracę z praktycznie nieograniczonymi wolumenami danych i zapewnia dostęp do aktualnych i zweryfikowanych informacji, co zmniejsza ryzyko halucynacji i jest najbardziej niezawodnym rozwiązaniem na dzień dzisiejszy[11].

Odnośniki

  • Lost in the Middle: How Language Models Use Long Contexts — oryginalne badanie Uniwersytetu Stanforda.
  • Ogłoszenie Claude z oknem kontekstowym wynoszącym 100 tys. tokenów firmy Anthropic.

Literatura

  • 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.

Przypisy

  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]