Kontextové okno u LLM
Kontextové okno je rozsah vstupu, se kterým model pracuje při generování odpovědi. V praxi určuje, kolik instrukcí, historie chatu, dokumentů nebo dat je model schopný vzít v úvahu najednou. Samotná velikost kontextového okna ale nezaručuje, že model využije všechny části dlouhého vstupu stejně dobře.
Co je kontextové okno
Kontextové okno je aktuální pracovní prostor modelu. Patří do něj například:
- systémové instrukce,
- prompt uživatele,
- předchozí zprávy v konverzaci,
- přiložené dokumenty,
- textové chunky načtené přes RAG.
Když se do kontextového okna něco nevejde, model s tím při generování odpovědi už nepracuje. Ani u textu, který se do okna vejde, ale není jisté, že všechny části dostanou stejnou váhu.
Proto je důležité řešit dvě věci:
- velikost okna - kolik obsahu se do něj vejde,
- strukturu vstupu - jak jsou informace v rámci dlouhého vstupu rozmístěné.
U-křivka pozornosti a ''lost in the middle''
U delších vstupů se u LLM často popisuje jev označovaný jako lost in the middle. Model má tendenci věnovat více pozornosti začátku a konci dlouhého textu než jeho středu. Tento vzorec se často popisuje jako U-křivka pozornosti.
Praktický dopad je jednoduchý:
- informace na začátku lépe nastavují kontext,
- informace na konci častěji ovlivní finální odpověď,
- informace uprostřed mohou mít menší váhu nebo se v odpovědi vůbec neprojeví.
To je důvod, proč model někdy správně respektuje úvodní instrukce a závěrečné shrnutí, ale hůř využije důležitý odstavec schovaný uprostřed dlouhého dokumentu.
Co z toho plyne v praxi
Velké kontextové okno je užitečné, protože umožňuje přiložit víc dat najednou. Samo o sobě ale neřeší problém s tím, že model nemusí všechno v dlouhém vstupu využít rovnoměrně.
Pokud je důležitá informace schovaná uprostřed dlouhého textu, může mít menší šanci, že se promítne do výsledku. Proto dává smysl pracovat nejen s délkou vstupu, ale i s jeho kompozicí.
Prompty
U delších promptů je vhodné dát klíčové zadání hned na začátek. Pokud je prompt složitější, pomáhá důležité podmínky na konci stručně zopakovat.
Osvědčuje se hlavně:
- nejdřív jasně definovat cíl,
- hned na začátku vypsat zásadní omezení nebo pravidla,
- dlouhé zadání rozdělit do bloků,
- na konci přidat krátké shrnutí toho, co je opravdu důležité.
Příklad jednoduché struktury promptu:
Cíl: Vysvětli téma pro začátečníka. Důležité podmínky: stručně, bez marketingu, s praktickými příklady. Doplňující kontext: ... Shrnutí zadání: - vysvětlit princip - uvést praktické dopady - nepřidávat neověřené informace
Dokumenty a články
U delších dokumentů nestačí mít správné informace jen někde v textu. Důležité definice, závěry a hlavní sdělení je vhodné dát na začátek a na konec.
Dobře funguje:
- krátké TL;DR nahoře,
- definice pojmu hned v úvodu,
- důležité body neukrývat doprostřed dlouhého bloku textu,
- na konci přidat stručné shrnutí.
Pokud je text příliš dlouhý, bývá lepší ho rozdělit na více samostatných článků nebo sekcí, které dávají smysl i samy o sobě.
Webový obsah
Stejný princip platí i pro webové stránky. Pokud má stránka vysvětlit produkt, službu nebo konkrétní téma, hlavní informace by měly být viditelné hned na začátku stránky, ne až po delším úvodu.
Prakticky to znamená:
- hlavní odpověď dát do prvních odstavců,
- klíčové definice nebo přehled přidat hned nahoře,
- důležité informace zopakovat v závěru stránky,
- dlouhé texty strukturovat do menších logických celků.
Tento princip pomáhá nejen modelům, ale často i lidem, kteří obsah skenují podobným způsobem.
RAG
U RAG nestačí řešit jen kvalitu retrievalu. Důležité je také to, jak vypadají jednotlivé chunky a co se stane po jejich složení do výsledného kontextu.
Praktické dopady pro RAG:
- chunky mají být samostatně srozumitelné,
- důležitá definice nebo závěr nemá být jen v jiném chunku,
- dlouhé dokumenty je vhodné dělit podle významových celků, ne jen mechanicky podle délky,
- i při větším kontextovém okně se může část informací po složení více chunků ztrácet uprostřed.
Jinými slovy: větší kontextové okno samo o sobě problém neřeší. Pomáhá pojmout více dat, ale neodstraňuje nerovnoměrnou pozornost v rámci dlouhého vstupu.
Doporučené techniky
Pro práci s kontextovým oknem se osvědčují hlavně tyto postupy:
- dát definici nebo hlavní pointu hned na začátek,
- přidat nahoře stručné TL;DR,
- na konci zopakovat klíčové závěry,
- rozdělovat dlouhý obsah do menších celků,
- připravovat pro RAG chunky, které dávají smysl i samostatně.
Nejde o to informace bezmyšlenkovitě opakovat, ale umístit je tak, aby byly pro model snadno dostupné ve chvíli, kdy je potřebuje použít.
Rychlý checklist
Když připravuji delší vstup pro LLM, vyplatí se zkontrolovat:
- Je hlavní cíl nebo pointa hned na začátku?
- Nejsou klíčové instrukce schované až uprostřed?
- Obsahuje závěr stručné zopakování nejdůležitějších bodů?
- Dává každá sekce nebo chunk smysl i samostatně?
- Nebylo by lepší dlouhý obsah rozdělit na více kratších celků?
Shrnutí
Kontextové okno určuje, s jak velkým vstupem model pracuje, ale samo o sobě nezaručuje rovnoměrné zpracování celého textu. U dlouhých vstupů mají LLM obvykle větší citlivost na začátek a konec než na střed.
Z praktického hlediska proto dává smysl psát prompty, články, webový obsah i RAG chunky tak, aby klíčové informace byly viditelné hned na začátku a znovu potvrzené na konci. Pokud je důležitý bod schovaný uprostřed dlouhého obsahu, model ho může využít hůř, i když se do kontextového okna formálně vejde.