Skip to main content

Okno kontekstowe (Context Window)

DLA AGENTÓW AIChatGPTClaude

Maksymalna liczba tokenów, którą model językowy jest w stanie jednoczesnie utrzymywać w mechanizmie Self-Attention oraz pamięci KV-cache podczas przetwarzania pojedynczego zapytania inferencyjnego.

1. Przegląd koncepcji i problem systemowy

Początkujący deweloperzy często postrzegają okno kontekstowe jako analogię dysku twardego: miejsce, do którego można wrzucić dowolną ilość dokumentacji, aby model „po prostu ją znał”.

Jednak w rzeczywistej fizyce sieci neuronowych okno kontekstowe to pamięć operacyjna procesora graficznego (GPU VRAM), zaangażowana w intensywną obliczeniowość macierzową:

  1. Kwadratowa złożoność mechanizmu uwagi: W klasycznym mechanizmie Attention relacje są obliczane między każdą parą tokenów ($O(N^2)$). Dziesięciokrotne zwiększenie długości wejścia wymaga stukrotnego wzrostu zasobów obliczeniowych na etapie prefillu (Prefill).
  2. Ograniczenia sprzętowe pamięci: Gdy długość dialogu osiąga setki tysięcy tokenów, rozmiar KV-cache przekracza pojemność pamięci wideo karty graficznej (Out of Memory - OOM).
  3. Limit ekstrapolacji pozycji: Model nie jest w stanie adekwatnie interpretować pozycji tokenów wykraczających poza zakres jego treningu bez specjalnych metod interpolacji (RoPE / YaRN).

Okno kontekstowe (Context Window) definiuje horyzont aktywnej pamięci roboczej systemu: wszystko, co znajduje się wewnątrz okna, bierze udział w kalkulacji prawdopodobieństw; wszystko, co pozostaje poza nim, dla modelu fizycznie nie istnieje.

2. Taksonomia architektoniczna i model mentalny

Praca z oknem kontekstowym dzieli się na dwie fazy obliczeń oraz odpowiadające im optymalizacje:

  • 1. Faza prefillu (Prefill Phase): Równoległe przetwarzanie całego zapytania użytkownika. Faza ograniczona mocą obliczeniową (Compute-bound), optymalizowana przez technologie takie jak FlashAttention-2/3, które eliminują zbędne odwołania do globalnej pamięci GPU.
  • 2. Faza dekodowania (Decode Phase): Sekwencyjna generacja nowych tokenów, pojedynczo w każdym kroku. Faza ograniczona przepustowością pamięci (Memory-bandwidth bound), gdzie prędkość zależy od pobierania wektorów z KV-cache.
  • 3. Architektury długiego kontekstu:
    • RoPE (Rotary Position Embeddings): rotacyjne osadzenia pozycyjne, umożliwiające skalowanie okna z 8K do 1M tokenów poprzez skalowanie częstotliwości.
    • Ring Attention: rozproszenie obliczeń mechanizmu uwagi po pierścieniu składającym się z dziesiątek serwerów GPU w celu przetwarzania sekwencji liczących miliony tokenów.
  • 4. Struktura budżetu okna: Total Window = System Prompt + Long-term Memory + Ingestion Files + History + Tools Output + Max Generation Tokens.

3. Techniczny pipeline i mechanika wewnętrzna

Cykl życia kontekstu przechodzącego przez transformera:

  1. Tokenization & BPE Mapping (Tokienizacja): Surowy ciąg kodu lub tekstu jest tłumaczony na wektor liczbowy ID tokenów za pośrednictwem słownika BPE/Tiktoken.
  2. Positional Encoding Injection (Wstrzykiwanie współrzędnych): Każdy token otrzymuje wektor pozycji w sekwencji (poprzez macierze rotacji RoPE).
  3. Multi-Head Self-Attention & KV Cache Allocation (Obliczanie uwagi): Obliczane są macierze Query, Key, Value. Wektory $K$ oraz $V$ są zapisywane w buforze KV-cache w pamięci VRAM, aby zapobiec powtórnym obliczeniom w kolejnych krokach.
  4. Context Length Enforcement (Egzekwowanie limitów): Jeśli łączna liczba tokenów przekracza max_context_length, runtime albo zwraca błąd 400 BadRequest: context_length_exceeded, albo automatycznie przycina najstarsze wiadomości (Sliding Window Truncation).

4. Praktyczne scenariusze inżynieryjne w środowisku produkcyjnym

01. In-Context Learning nad całym repozytorium projektu

Załadowanie 200 000 tokenów bazy kodowej bezpośrednio do okna modelu (Cursor / Claude Code). Model widzi wszystkie typy, importy i wzorce architektoniczne jednocześnie, generując nowy moduł z idealnym zachowaniem konwencji projektowych.

02. Analiza pakietów prawnych M&A i audytów

Przekazanie 500-stronicowego pakietu kontraktów do okna Gemini 2.5/3 Pro (1M tokenów) w celu wykrycia wzajemnych sprzeczności, niespójnych warunków finansowych oraz ukrytych zobowiązań bez utraty kontekstu między dokumentami.

03. Optymalizacja ekonomiczna poprzez Prompt Caching

W długotrwałych asystentach prompt systemowy oraz dokumentacja API (np. 40 000 tokenów) są cache’owane przez dostawcę (Anthropic/OpenAI). Dzięki temu każde kolejne zapytanie jest przetwarzane czterokrotnie szybciej i kosztuje o 90% mniej.

5. Pułapki, typowe błędy i bezpieczeństwo

  • Ciche przycinanie kontekstu (Silent Truncation): Niektóre naiwne klienty automatycznie odrzucają początek dialogu przy zbliżaniu się do limitu. Jeśli zawierał on ważne reguły bezpieczeństwa systemu, model staje się niezabezpieczony.
  • Out of Memory (OOM) na serwerach self-hosted: Uruchomienie Llama 3 70B na własnym węźle z 80GB VRAM działa świetnie podczas krótkich testów, ale upada z krytycznym błędem pamięci, gdy użytkownik wysyła zapytanie o długości 64K tokenów wskutek rozrostu KV-cache. Zawsze ograniczaj max_model_len w vLLM.
  • Wykładniczy wzrost rachunku: Niekontrolowane wysyłanie historii z każdą wiadomością prowadzi do sytuacji, w której prosty czat składający się z 20 replik generuje setki tysięcy płatnych tokenów wejściowych.
/ Najczęściej zadawane pytaniaSchema.org FAQPage

FAQ: Okno kontekstowe (Context Window)

Podczas generowania model przechowuje wektory kluczy (Keys) i wartości (Values) dla każdego poprzedniego tokenu w specjalnym buforze – KV Cache. Dla modelu o 70 miliardach parametrów przetworzenie 100 000 tokenów kontekstu wymaga ponad 40–80 GB dedykowanej, wysokoprzepustowej pamięci HBM wyłącznie na cache uwagi, nie licząc wag samej sieci neuronowej.
/ Linki wewnętrzne
Wszystkie hasła