Kontextové zapomínání

From Systems analysis Wiki
Jump to navigation Jump to search

Kontextové zapomínání ve velkých jazykových modelech — je mnohostranný jev, při němž velký jazykový model (LLM) ztrácí, ignoruje nebo neefektivně využívá dříve poskytnuté informace v rámci jedné interakce[1]. Na rozdíl od lidské paměti nemají LLM dlouhodobé úložiště stavů a spoléhají pouze na kontextové okno — omezený objem textu (v tokenech), který model dokáže zpracovat najednou. Toto okno plní funkci krátkodobé nebo pracovní paměti modelu[2].

Nejznámějším projevem tohoto omezení je problém „ztráty uprostřed" (Lost in the Middle) — tendence modelů lépe zpracovávat informace umístěné na začátku a na konci dlouhého kontextu a hůře ty, které se nacházejí uprostřed[2]. Tento jev není chybou, ale fundamentální vlastností vyplývající z architektury transformerů a principů jejich trénování.

Dva typy zapomínání: Kontextové a Katastrofické

Je důležité rozlišovat dva zásadně odlišné typy „zapomínání" v LLM: vnitrokontextové a katastrofické.

Vnitrokontextové zapomínání (Ztráta uprostřed)

Tento typ zapomínání nastává během jedné relace interakce (inference) s již natrénovaným modelem. Souvisí s omezeními kontextového okna. Když objem dialogu nebo dokumentu překročí velikost okna, model „zapomene" nejstarší fragmenty, aby uvolnil místo pro nové. Dokonce i v rámci okna může být informace z prostřední části kontextu využívána méně efektivně. Jde o omezení pracovní paměti modelu[3]. V publicistice se tento jev také nazývá „syndrom degradace kontextu" (Context Degradation Syndrome, CDS)[1].

Katastrofické zapomínání (Drift modelu)

Tento typ zapomínání, známý také jako „drift modelu" (model drift), nastává v průběhu dolaďování (fine-tuning) modelu na nových datech. Když je model předtrénovaný na obrovském korpusu obecných znalostí dolaďován na úzce specializovaném datovém souboru (například na lékařských textech), mění se jeho váhy. To může vést k degradaci nebo „vymazání" dříve získaných znalostí a dovedností nesouvisejících s novou úlohou[4].

Příčiny a mechanismy

Kontextové zapomínání je přímým důsledkem architektury transformerů a geometrie vektorových prostorů.

Efekt „Ztráty uprostřed" (Lost in the Middle)

Výzkum Stanfordské univerzity z roku 2023 nazvaný „Lost in the Middle" názorně prokázal, že výkonnost LLM při extrakci informací z dlouhého kontextu vykazuje U-tvarovou křivku[2]. Přesnost odpovědí je nejvyšší, když se relevantní informace nachází úplně na začátku (efekt primárnosti) nebo úplně na konci (efekt novosti) kontextu, a výrazně klesá, je-li „skryta" uprostřed. Příčiny tohoto jevu:

  • Mechanismus pozornosti: Architektura transformeru ze své podstaty věnuje nepřiměřeně velkou pozornost počátečním tokenům (tzv. „kotvy pozornosti" neboli attention sinks) pro udržení globální koherence, jakož i lokálnímu kontextu, což vede k oslabení „zaměření" na střední část[5].
  • Data pro předtrénování: Modely jsou nejčastěji trénovány na relativně krátkých textech, kde se důležité informace jen zřídka nacházejí desítky tisíc tokenů od začátku, což jim brání efektivně využívat velmi dlouhé kontexty[6].

Projevy a důsledky

  • Syndrom degradace kontextu: V průběhu dlouhých dialogů začíná model „ztrácet nit rozhovoru", opakovat odpovědi, vyvracet dříve stanovená fakta a podávat stále obecnější a vágní odpovědi[1].
  • Selhání ve vícekrokových úlohách: V úlohách, kde jsou podmínky upřesňovány v průběhu několika replik, může model „uvíznout" na nesprávném počátečním předpokladu a ignorovat následná upřesnění, což vede k naprosté neschopnosti úlohu vyřešit[7].
  • Nespolehlivost analýzy dokumentů: Při analýze dlouhých zpráv nebo právních dokumentů může LLM přehlédnout klíčová fakta umístěná v centrálních oddílech, což z něj činí nespolehlivý nástroj pro takovéto úlohy.

Strategie zmírnění a prevence

Výzkumníci a vývojáři používají několik přístupů k řešení problému kontextového zapomínání.

Rozšíření kontextového okna

Nejpřímočařejší přístup — zvětšení velikosti kontextového okna. Moderní modely jako Claude 3 (200 tis. tokenů) a Gemini 1.5 Pro (až 2 mil. tokenů) tento limit výrazně rozšířily[8][9]. Výzkumy však ukazují, že pouhé zvětšení okna nezaručuje jeho efektivní využití a problém „ztráty uprostřed" přetrvává[2].

Pokročilá inženýrie promptů

Vhodné strukturování promptů může výkonnost výrazně zlepšit. Společnost Anthropic doporučuje následující postupy[10]:

  • Umístění dokumentů na začátek: Vkládat dlouhé texty úplně na začátek promptu, před instrukce a dotaz.
  • Použití XML tagů: Obalovat dokumenty tagy `<document>` pro jasné oddělení.
  • Podkládání odpovědí citacemi: Dát modelu instrukci nejprve extrahovat relevantní citace a teprve na jejich základě formulovat odpověď.

Externalizace paměti: Retrieval-Augmented Generation (RAG)

Zásadně odlišný přístup — neumisťovat veškeré informace do kontextového okna, ale přenést je do externího systému (vektorové databáze) a poskytovat je na vyžádání.

  1. Extrakce (Retrieve): Když přijde dotaz, systém vyhledá relevantní informace v externí databázi.
  2. Doplnění (Augment): Nalezené fragmenty jsou přidány k původnímu dotazu.
  3. Generování (Generate): LLM vygeneruje odpověď na základě poskytnutého kontextu.

RAG umožňuje pracovat s prakticky neomezeným objemem dat a zajišťuje přístup k čerstvým a ověřeným informacím, což snižuje riziko halucinací a představuje v současnosti nejspolehlivější řešení[11].

Odkazy

  • Lost in the Middle: How Language Models Use Long Contexts — původní výzkum Stanfordské univerzity.
  • Oznámení Claude s kontextovým oknem 100K tokenů od 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.

Poznámky

  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]