Czym jest Okno kontekstu (Context window)?
Okno kontekstu to określona, maksymalna liczba kolejnych tokenów – czyli najczęściej fragmentów słów – które model językowy bierze pod uwagę podczas generowania odpowiedzi lub kontynuacji tekstu. Termin stał się powszechny wraz z popularyzacją architektury Transformer (Vaswani i in., 2017), lecz jego korzenie sięgają wcześniejszych badań nad sieciami rekurencyjnymi, gdzie liczba zapamiętywanych kroków czasowych pełniła analogiczną rolę. W praktyce okno kontekstu można przyrównać do wirtualnej kartki o ograniczonej długości: wszystko, co się na niej mieści, jest widoczne dla modelu, natomiast starsze zapiski znikają, gdy zabraknie miejsca.
Jak dokładnie działa Okno kontekstu (Context window)
Podstawy tokenizacji i pozycjonowania
Każdy tekst wejściowy zostaje podzielony na tokeny zgodnie ze słownikiem opracowanym podczas trenowania modelu. Tokeny otrzymują pozycje, które są następnie przetwarzane przez mechanizm uwagi. Liczba możliwych pozycji jest ograniczona parametrem długości sekwencji; to właśnie on wyznacza rozmiar okna kontekstu. Jeśli użytkownik przekaże więcej tokenów, model musi je uciąć lub zastosować strategię dookładkowania, co w praktyce wpływa na jakość odpowiedzi.
Przesuwanie okna
Podczas długich interakcji dochodzi do przesuwania okna. Model „zapomina” najstarsze tokeny, żeby zwolnić miejsce na nowe. Zjawisko to przypomina tradycyjny bufor przesuwny w statystyce sygnałów, ale w ujęciu językowym decyduje o tym, które fragmenty kontekstu pozostaną dostępne dla kolejnych obliczeń.
Zastosowania w praktyce
Rozmiar okna kontekstu odgrywa kluczową rolę w czatach konwersacyjnych, automatycznym podsumowywaniu dokumentów oraz generowaniu kodu źródłowego. Przykładowo, w projekcie GPT-3.5 model wykorzystuje okno liczące kilka tysięcy tokenów, co pozwala mu odpowiadać na pytania dotyczące długich fragmentów instrukcji obsługi. Z kolei w systemach uzupełniania kodu, takich jak Copilot, większe okno umożliwia analizę wielu plików jednocześnie, co poprawia spójność podpowiedzi.
Zalety i ograniczenia
Duże okno kontekstu poszerza horyzont modelu, ograniczając liczbę przeoczonych zależności między odległymi elementami tekstu. Jednocześnie zwiększa zużycie pamięci GPU i wydłuża czas obliczeń, gdyż mechanizm uwagi musi porównać każdą parę tokenów wewnątrz okna. W modelach z małym oknem ryzyko utraty istotnych danych rośnie, lecz koszty operacyjne maleją. W klasycznych n-gramach zależności również były ograniczone do kilku słów, jednak w transformerach zakres ten można znacznie poszerzyć, choć nadal pozostaje skończony.
Na co uważać?
Projektując aplikację, warto monitorować liczbę tokenów jeszcze przed wysłaniem zapytania do modelu. Przekroczenie limitu prowadzi do ucięcia części danych, a to może zmienić sens wypowiedzi. Należy także pamiętać, że tokeny nie odpowiadają jeden do jednego literom ani słowom, dlatego ręczne szacowanie bywa zawodne. W praktyce pomocne okazują się biblioteki klienta, które raportują aktualny bilans tokenów.
Dodatkowe źródła
Szczegółowe wyjaśnienie mechanizmu uwagi można znaleźć w artykule „Attention Is All You Need”. Definicję tokenu oraz kontekstu w ujęciu historycznym prezentuje Wikipedia, natomiast analizę wpływu długości okna na pamięć GPU opisuje praca „Longformer: The Long-Document Transformer”. Aktualne limity kontekstowe poszczególnych modeli można śledzić w bazie Hugging Face.


