Kontextové okno
Kontextové okno ve velkých jazykových modelech (VJM) je maximální objem textových informací (v tokenech), který je model schopen zohledňovat při formování odpovědi[1]. Jinými slovy, jde o jakoukoliv „pracovní paměť" modelu, která určuje, kolik textu (včetně původního dotazu uživatele i dříve vygenerovaných frází modelu) může model držet v kontextu současně[1]. Velikost kontextového okna se měří v tokenech — konvenčních jednotkách textu (slova, jejich části nebo znaky), na které se vstup rozděluje pro zpracování modelem[1]. Na délce kontextového okna přímo závisí soudržnost a aktuálnost generovaných odpovědí: velký objem kontextu umožňuje modelu lépe zohledňovat předchozí informace, udržovat detaily dlouhých dialogů a neztrácet smysl při práci s rozsáhlými dokumenty[1].
Evoluce velikostí kontextového okna
První transformerové jazykové modely měly relativně malé kontextové okno. Například v letech 2018–2019 dosahovala maximální délka kontextu přibližně 512–1024 tokenů[2]. Model GPT-3 (2020) zpracovával již až 2048 tokenů najednou[2]. Na začátku provozu ChatGPT (2022) byl limit kontextu přibližně 4000 tokenů (přibližně 3000 slov), což omezovalo délku konverzace — při překročení ~3000 slov se chatbot začínal „ztrácet" a halucinovat mimo téma[1].
Soudobé vlajkové modely tento práh výrazně zvýšily: GPT-4 je dostupný ve verzích s oknem 8192 a 32 768 tokenů[1], model Claude od společnosti Anthropic získal v roce 2023 okno 100 000 tokenů (přibližně 75 tisíc slov, tedy několik set stránek textu)[3]. Do roku 2024 se objevily modely s kontextem přibližně 128 tisíc tokenů (například LLaMA 3.1 od Meta)[2] a dokonce až 1 milion tokenů (Google Gemini 1.5 Pro)[2]. V roce 2025 byl oznámen LLAMA 4 Scout s rekordním kontextovým oknem až 10 milionů tokenů[4], což odpovídá textu o rozsahu desítek tisíc stránek[5]. Takto extrémní hodnoty jsou však z velké části teoretické: omezení paměti a trénovacích dat neumožňuje modelu v praxi plně využít celý 10milionový kontext[5]. Přesto se závod o rozšiřování kontextového okna stal novou etapou vývoje VJM, srovnatelnou svým významem s růstem počtu parametrů modelů[1].
Níže jsou uvedeny příklady maximální délky kontextu u vybraných modelů:
- GPT-3 – až ~2048 tokenů[2]
- GPT-4 – 8192 tokenů (standardní verze) a až 32 768 v rozšířené verzi[1]
- Anthropic Claude – až 100 000 tokenů[3]
- LLaMA 3.1 – až 128 000 tokenů[2]
- Google Gemini 1.5 Pro – až 1 000 000 tokenů[2]
- Meta LLAMA 4 Scout – deklarováno až 10 000 000 tokenů[4]
Růst kontextového okna radikálně rozšiřuje možnosti modelů[3]. Pokud 32 tisíc tokenů odpovídá přibližně 50 stránkám textu, pak 100 tisíc tokenů představuje přibližně 75 tisíc slov[3]. Model je přitom schopen zpracovat takový objem během několika sekund — například analyzovat celý román nebo technickou zprávu a odhalit potřebné detaily[3]. Modely s dlouhým kontextem tak mohou uchovávat v paměti celé knihy, velké soubory dokumentů nebo rozsáhlé dialogy, což otevírá nové scénáře použití — od podrobné sumarizace a kros-dokumentní analýzy otázek a odpovědí až po práci s rozsáhlými fragmenty zdrojového kódu.
Omezení a problémy dlouhého kontextu
Rozšiřování kontextového okna je spojeno s vážnými technickými a praktickými výzvami[1]. Hlavní z nich je kombinatorický růst výpočetní složitosti[1]. V transformerech má mechanismus self-attention kvadratickou složitost vzhledem k délce sekvence: při zdvojnásobení délky kontextu se požadovaný objem paměti a výpočtů přibližně čtyřnásobí[1]. Například přechod z kontextu 1024 tokenů na 4096 tokenů teoreticky zvyšuje nároky na zdroje přibližně ~16násobně[1]. To klade omezení jak na fázi trénování (kde je obtížné používat příliš dlouhé sekvence kvůli omezením paměti GPU a délky trénování), tak na fázi použití modelu — dlouhé dotazy výrazně zpomalují generování odpovědí a prodražují je při využívání komerčních API[2]. Za zpracování vstupních tokenů se zpravidla účtuje poplatek, takže rozsáhlé texty předkládané modelům přímo proporcionálně zvyšují cenu odpovědi[2].
Informační přetížení je dalším důležitým faktorem[2]. Ačkoli velké okno umožňuje modelu přijímat více dat, přebytek detailů může způsobit, že model nevyčlení hlavní informace ze „šumu"[2]. Výzkumy ukazují, že současné VJM vnímají relevantní informace nerovnoměrně: mají tendenci věnovat větší pozornost faktům umístěným na začátku nebo na konci dlouhého kontextového vstupu (efekty primacy a recency) a podstatně hůře získávají znalosti ze středu rozsáhlého dokumentu[6]. Přetížení promptu nadbytečnými detaily může snížit přesnost odpovědi[6]. Po určité hranici tak může další rozšiřování objemu kontextu přinést opačný efekt[2]. Praktickým důsledkem je doporučení zahrnovat do dlouhého dotazu pouze skutečně nezbytné informace a strukturovat kontext tak, aby klíčové informace byly co nejblíže začátku (nebo konci) zprávy[1].
V praxi se navíc ukázal nesoulad mezi nominální délkou okna a tou, kterou model efektivně využívá[7]. Mnohé modely nedokážou rovnoměrně pracovat s celou dostupnou délkou — jejich efektivní hloubka kontextu je podstatně menší než maximální[7]. Například u modelu LLaMA 3.1 s trénovaným kontextem 128k informace nacházející se za ~64k tokeny od začátku prakticky neovlivňovaly odpovědi v testech[7]. Obecně bylo u většiny otevřených VJM zaznamenáno, že jejich skutečná efektivní paměť tvoří méně než polovinu předpokládané délky kontextu[7]. Výzkumníci to spojují se zvláštnostmi trénování: i když je model formálně trénován na dlouhých sekvencích, velmi vzdálené pozice se v datech vyskytují mnohem méně než počáteční, takže model je nedostatečně natrénován na konci okna[7]. V typických korpusech četnost výskytu velmi dlouhých sekvencí klesá exponenciálně[7]. Toto „levostranně posunuté" rozdělení pozic způsobuje, že model asimiluje bližší kontext podstatně lépe než vzdálený[7]. Řešením může být jak pečlivější výběr a anotace trénovacích dat, tak speciální metody kompenzující nedostatečně natrénované pozice[7]. Celkově je překonání tohoto omezení aktivní oblastí výzkumu[7].
Metody rozšiřování kontextového okna
Rozšiřování kontextového okna VJM vyžaduje kombinaci architektonických a algoritmických vylepšení. Hlavní směry používané v moderních pracích zahrnují:
- Trénování na dlouhých sekvencích[2]. Zřejmý přístup — poskytnout modelu trénovací příklady srovnatelné s požadovanou délkou kontextu. Praktikuje se curriculum learning podle délky: postupné zvyšování velikosti textů v průběhu trénování[2]. Používají se také techniky jako akumulace gradientu a speciální předzpracování dat[2].
- Optimalizace mechanismu attention[2]. Protože standardní self-attention má kvadratické náklady, jsou aktivně zkoumány alternativy: řídká attention (sparse attention), posuvné okno (sliding window), vícerozměrné dělení kontextu a další[2]. Například Ring Attention — metoda optimalizace attention navržená IBM — snižuje výpočetní zátěž při dlouhých sekvencích[1]. Přidání ring attention do modelu IBM Granite umožnilo výrazně rozšířit kontext[1].
- Vylepšení pozičního kódování[2]. Klíčovou součástí transformeru je způsob kódování pozic tokenů[2]. Klasické absolutní poziční enkodéry špatně extrapolují za hranici délky, na níž byly trénovány[2]. Pro dlouhý kontext se proto používají relativní pozice a jiné metody[2]. Model Granite ve verzi s kontextem 128k přešel od absolutní pozice ke kódování tokenů podle relativní polohy[1]. Hojně se využívá rotary poziční kódování (RoPE)[2], které lépe zachovává vzájemnou polohu vzdálených tokenů a umožňuje škálování kontextu[2]. Dalším přístupem je Attention with Linear Biases (ALiBi), který do mechanismu attention zavádí lineárně narůstající posun pro velké vzdálenosti[2]. Kombinace těchto postupů — například škálování základní frekvence RoPE (jak je implementováno v LLaMA 3) — se dnes používá, aby modely mohly podporovat okna 100k+ tokenů[7].
- Paměť a komprese kontextu[1]. Alternativní cesta — nezvyšovat přímo délku okna, ale kompaktně reprezentovat dlouhý vstup[1]. Například jedna z technologií IBM spočívá v tom, že model generuje komprimovanou reprezentaci (souhrn) dlouhého textu pomocí jiného VJM[5]. Dalším přístupem je připojení externí dlouhodobé paměti nebo znalostních bází: model ukládá důležité fakty mimo své kontextové okno a podle potřeby je načítá[5]. Poslední varianta se rozvinula v podobě metod známých jako retrieval-augmented generation (RAG)[5].
Je důležité poznamenat, že každá z uvedených strategií má svou cenu[2]. Trénování na dlouhých kontextech vyžaduje kolosální výpočetní zdroje a pečlivě vybraná data[2]. Nové mechanismy attention a pozic komplikují architekturu modelu a někdy snižují kvalitu na krátkých textech[2]. Inženýři proto musí pečlivě vyvažovat velikost okna, stabilitu trénování a výsledný výkon modelu[2].
Velké kontexty vs. získávání informací (RAG)
Růst maximálního kontextu VJM na stovky tisíc a více tokenů vyvolal diskusi o tom, zda jsou při takových možnostech modelu potřeba externí znalostní báze a vyhledávací algoritmy[1]. Pokud se všechny relevantní informace vejdou přímo do kontextového okna, může model teoreticky odpovědět bez obrácení se na externí zdroje[1]. Někteří výzkumníci předpokládají, že s rozšiřováním okna mohou metody typu retrieval-augmented generation (RAG), kdy model předem obdrží texty získané z databáze, ztratit na aktuálnosti[1]. Svědčí o tom například informační ztráty ve fázi získávání: vyhledávání vrací jen několik nejlepších dokumentů, zatímco „prompt-stuffing" (přímé zahrnutí dat do dotazu) umožňuje modelu přijmout veškeré kontextové informace jako celek[1]. Výzkumník IBM Pin-Yu Chen poznamenává, že nikdo nebude chtít řešit nastavení RAG, pokud lze do modelu jednoduše nahrát všechny potřebné knihy a dokumenty najednou[1].
Protichůdný pohled však spočívá v tom, že ani velmi velké okno neodstraňuje potřebu RAG[1]. Zástupci IBM a další odborníci zdůrazňují, že aktuálnost dat a jejich kontrola zůstávají závažným problémem[5]. Model s obrovským kontextem stejně nezná to, co nebylo v jeho trénovacích datech — například dnešní zprávy[5]. Pro operativní zahrnutí čerstvých informací na vyžádání je mechanismus retrieveru nezbytný[5]. Navíc v podnikových aplikacích umožňuje RAG selektivně načítat fakta z chráněných úložišť, dodržovat přístupová práva a neprozrazovat zbytečné důvěrné informace[5]. V neposlední řadě jsou důležité také ekonomické důvody: zpracování milionů tokenů „naprázdno" je nákladná záležitost a často je rozumnější nejprve vyhledat několik skutečně relevantních pasáží (zmenšit kontext), než nutit model pokaždé číst vstup o délce tisíce stránek[1]. Z těchto důvodů zůstává RAG prozatím důležitou součástí AI aplikací[5] a velká kontextová okna se doporučuje používat obezřetně[5]. Pravděpodobně se optimální architekturou stanou hybridní přístupy — kombinace rozšířeného kontextu (pro ukládání často používaných dat ve formě cache, Cache-Augmented Generation) a selektivního získávání nových znalostí z externích zdrojů[8][8].
Využití a perspektivy
Rozšiřování dostupného kontextu výrazně rozšiřuje okruh úloh řešitelných jazykovými modely. Sumarizace a analýza rozsáhlých dokumentů jsou jedním z bezprostředních využití[3]. Model s oknem 100k tokenů je schopen v jednom dotazu přečíst objemnou zprávu, knihu nebo technickou dokumentaci a podat jejich souhrn nebo odpovědět na otázky[3]. Uplatnění nachází v právu (rozbor a výpisky ze smluv), vědě (automatický přehled literatury) a obchodní analytice. Například Claude úspěšně zpracovával celý román „Velký Gatsby" (~72 000 tokenů) a dokázal během několika sekund odhalit v textu dílčí úpravy[3].
Podpora dlouhodobých dialogů[2]. Pro chatboty znamená velký kontext schopnost pamatovat si desítky a stovky replik[2]. Rozšířené okno také umožňuje integrovat do konverzace rozsáhlá referenční data[2].
Programování a práce s kódem[8]. V úlohách spojených s analýzou zdrojového kódu se ukázal dlouhý kontext jako zvláště cenný[8]. Kód je často rozložen do mnoha souborů; aby model poskytl správnou odpověď, musí „vidět" co největší část kódové základny[8]. Výzkumy IBM ukázaly, že rozšíření kontextu výrazně zvyšuje kvalitu modelů při úlohách generování kódu[1]. Model Granite s oknem 128k tokenů je schopen přijmout v dotazu velký objem dokumentace ke knihovnám[1].
Multimodální aplikace[3]. Nejnovější modely (jako již zmíněné LLaMA 4, Gemini) jsou multimodální a mohou přijímat na vstup nejen text, ale i jiné typy dat (audio, obrázky, video)[3]. Velký kontext zde pomáhá například analyzovat dlouhé audio nahrávky (přepisy rozhovorů) nebo videa (sekvence snímků s popisy) v celku[2]. Uvádí se, že model Gemini 1.5 s oknem 1M tokenů je schopen udržet v kontextu až 1 hodinu zvuku nebo 3 hodiny videa bez ztráty důležitých detailů[2]. To otevírá perspektivy pro automatický přepis a sumarizaci vícehodinových porad, filmů apod.[2].
Navzdory působivým výsledkům odborníci zdůrazňují, že velký kontext není všelékem[8], ale nástrojem vyžadujícím odborné použití[8]. Výrazně zvyšuje nároky na infrastrukturu (paměť, výkonnost) a prodražuje nasazení modelů[5]. Proto se při vývoji systémů na bázi VJM doporučuje pečlivě posoudit, jaký objem kontextu je pro danou úlohu skutečně nezbytný, a kombinovat různé přístupy[5]. Trend je nicméně zřejmý: budoucí modely budou usilovat o ještě delší kontext kombinovaný s jeho efektivním využíváním[2]. Řešení současných problémů (škálování attention, trénování na dlouhých sekvencích, odstraňování „zapomínání" středu) umožní VJM nové generace pracovat s ještě většími objemy informací, přičemž zůstanou přesné a konzistentní[7]. To výrazně rozšíří hranice použitelnosti AI — od plnohodnotného asistenta až po složité analytické systémy[7].
Odkazy
- Why larger LLM context windows are all the rage - IBM Research
- Context Length in LLMs: What Is It and Why It Is Important - DataNorth
- Understanding the Impact of Increasing LLM Context Windows - Meibel
- Introducing 100K Context Windows - Anthropic
- Lost in the Middle: How Language Models Use Long Contexts (arXiv)
- Why Does the Effective Context Length of LLMs Fall Short? (arXiv)
- RAG in the Era of LLMs with 10 Million Token Context Windows - F5 Labs
Poznámky
- ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 1.25 1.26 «Why larger LLM context windows are all the rage». IBM Research Blog. [1]
- ↑ 2.00 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21 2.22 2.23 2.24 2.25 2.26 2.27 2.28 2.29 2.30 2.31 2.32 2.33 2.34 «Context Length in LLMs: What Is It and Why It Is Important». DataNorth Blog. [2]
- ↑ 3.00 3.01 3.02 3.03 3.04 3.05 3.06 3.07 3.08 3.09 «Introducing 100K Context Windows». Anthropic Blog. [3]
- ↑ 4.0 4.1 «Meta's Llama 4 is now available on Workers AI». Cloudflare Blog. [4]
- ↑ 5.00 5.01 5.02 5.03 5.04 5.05 5.06 5.07 5.08 5.09 5.10 5.11 5.12 «RAG in the Era of LLMs with 10 Million Token Context Windows». F5 Labs Blog. [5]
- ↑ 6.0 6.1 Liu, Shi et al. (2023). «Lost in the Middle: How Language Models Use Long Contexts». arXiv. [6]
- ↑ 7.00 7.01 7.02 7.03 7.04 7.05 7.06 7.07 7.08 7.09 7.10 7.11 Yang, Qingyu et al. (2024). «Why Does the Effective Context Length of LLMs Fall Short?». arXiv. [7]
- ↑ 8.0 8.1 8.2 8.3 8.4 8.5 8.6 «Understanding the Impact of Increasing LLM Context Windows». Meibel Blog. [8]