Co to jest okno kontekstowe (context window) w AI?
Okno kontekstowe (context window) to maksymalna ilość tekstu — mierzona w tokenach — którą model może przetworzyć naraz w jednym zapytaniu. Obejmuje całą rozmowę, dokumenty i instrukcje.
Masz znajomego, który pamięta wszystko. Konwersacje sprzed roku, każdy szczegół, każdą datę. Teraz wyobraź sobie, że ma tę samą pamięć, ale tylko przez czas rozmowy — a potem reset. I może pamiętać tylko ostatnie X stron tej rozmowy naraz. To jest okno kontekstowe modelu AI.
Co "mieści się" w oknie?
Absolutnie wszystko, co model "widzi" podczas generowania odpowiedzi:
- Twoje instrukcje (system prompt)
- Cała historia rozmowy — każde pytanie i każda odpowiedź
- Dokumenty, które wkleiłeś lub przesłałeś
- Twoje aktualne pytanie
- Odpowiedź, którą model właśnie pisze (ona też "zużywa" miejsce)
Im dłuższa rozmowa, tym mniej miejsca na nowe informacje — i tym drożej, jeśli używasz API.
Ile stron mieści popularne modele?
- GPT-4o: 128 000 tokenów — ok. 300 stron A4
- Claude 3.7 Sonnet: 200 000 tokenów — ok. 450 stron
- Gemini 1.5 Pro / 2.0 Flash: 1 000 000 tokenów — ok. 1500 stron
1 milion tokenów to dużo. Możesz wrzucić cały kod produkcyjny firmy albo rocznik dokumentów i jeszcze zostanie miejsce. Ale pamiętaj: więcej tokenów = wyższy koszt i wyższa latencja.
Jeden trick, który warto znać
Modele "pamiętają" lepiej to, co jest na początku i końcu kontekstu — środek ma tendencję do "gubienia się". To zjawisko nazywa się "lost in the middle". Jeśli wklejasz długi dokument i chcesz żeby model skupił się na konkretnym fragmencie — daj mu to co najważniejsze na samym początku.
Często zadawane pytania
Co się dzieje gdy skończy się okno kontekstowe?
Dwa scenariusze: albo API zwraca błąd (musisz skrócić prompt), albo aplikacja po cichu odcina najstarsze wiadomości. Dlatego ChatGPT "zapomina" o czym rozmawialiście na początku długiej sesji — odcinanie następuje automatycznie.
Czy większe okno kontekstowe = lepszy model?
Nie bezpośrednio. Duże okno to możliwość, nie gwarancja jakości. Modele z milionem tokenów wciąż mogą mieć problem z "needle in a haystack" — znalezieniem kluczowej informacji ukrytej gdzieś w środku długiego dokumentu.
Czym jest "context caching"?
Funkcja Anthropic i Google pozwalająca "zamrozić" część kontekstu (np. długi system prompt lub dokument) i wielokrotnie z niego korzystać bez płacenia pełnej ceny tokenów przy każdym zapytaniu. Przy intensywnym użyciu tych samych dokumentów oszczędności sięgają 90%.
Context window (okno kontekstowe) to maksymalna długość sekwencji wejście + wyjście w tokenach, jaką model może przetworzyć w jednym wywołaniu. Ograniczenie wynika z kwadratowej złożoności mechanizmu attention (O(n²) względem długości sekwencji w standardowym transformerze).
Architektura a długość kontekstu
- Standard attention: pełna macierz attention O(n²) — praktyczny limit ~128k tokenów przy rozsądnych kosztach
- Flash Attention 2/3: IO-aware attention zmniejsza memory footprint, umożliwia dłuższe sekwencje
- Sliding window attention (Mistral): local window + global tokens; efektywny przy długich sekwencjach, ale ograniczony recall z odległych tokenów
- Ring Attention / Sequence Parallelism: dystrybucja sekwencji na wiele GPU; używany przez Gemini 1.5 dla 1M context
Lost in the middle
Liu et al. (2023): modele osiągają najgorszą accuracy przy recall zadań gdy kluczowa informacja jest umieszczona w środku długiego kontekstu — nawet gdy całkowita długość jest w granicach okna. Implikacje projektowe: najważniejsze instrukcje na początku systemprompta, kluczowe dokumenty na początku lub końcu kontekstu.
Context caching
Anthropic Prompt Caching i Google Context Caching umożliwiają cache'owanie KV (key-value) stanu dla statycznych prefixów. Cache hit rate 80%+ przy wielokrotnym użyciu tych samych dokumentów → redukcja kosztów 50–90% i latencji first token. Wymagania: cache-able prefix ≥ 1024 tokenów (Anthropic), min. TTL 5 minut.
Często zadawane pytania
Jak RoPE i ALiBi wpływają na ekstrapolację długości kontekstu?
RoPE (Rotary Position Embedding) z odpowiednim skalowaniem (YaRN, LongRoPE) umożliwia ekstrapolację ponad długość treningową. ALiBi (Attention with Linear Biases) naturalnie ekstrapoluje bez fine-tuningu. Llama używa RoPE, kilka starszych modeli ALiBi. Bez odpowiedniego skalowania RoPE modele degradują się przy tokenach poza oknem treningowym.