Zobrazit stránkuStarší verzeZpětné odkazyNahoru Tato stránka je pouze pro čtení. Můžete si pouze prohlédnout zdrojový kód, ale ne ho měnit. Zeptejte se správce, pokud si myslíte, že něco není v pořádku. ====== 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: <code> 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 </code> ==== 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. ===== Zdroje ===== * [[https://aicarma.com/blog/context-window-optimization/#the-u-shaped-attention-curve|AI Carma – Context Window Optimization: Writing for the U-Shaped Attention Curve]] ai/zaklady/kontextove-okno.txt Poslední úprava: 2026/03/14 06:44autor: Petr Nosek