Pamięć podręczna KV (Key-Value Cache)
Optymalizacja pamięci w modelach Transformer, która przechowuje wektory kluczy i wartości (Keys and Values) przetworzonych już tokenów w szybkiej pamięci GPU. Umożliwia natychmiastowe generowanie każdego kolejnego słowa, jednak jej rozmiar gwałtownie rośnie wraz z każdym nowym komunikatem w czacie.
1. Przegląd koncepcji i przeznaczenie
Podczas interakcji z modelem językowym zauważasz dwie rzeczy:
- Model generuje słowa ze stabilną prędkością (np. 40 słów na sekundę). Nie zwalnia pod koniec długiej odpowiedzi.
- Jednak jeśli sesja trwa już godzinę, a historia wiadomości stała się bardzo długa, aplikacja nagle zgłasza błąd: «Out of Memory» (brak pamięci VRAM).
Za oba te zjawiska odpowiada jeden mechanizm — KV-Cache (Key-Value Cache).
Z praktycznego punktu widzenia jest to krótkoterminowy notatnik pamięci AI: aby model nie musiał od nowa przetwarzać całej wcześniejszej rozmowy przy każdym nowym słowie, przechowuje wyniki matematyczne już przetworzonych tokenów w ultra-szybkim buforze pamięci wideo.
2. Jak KV-Cache ratuje szybkość generowania
BEZ KV-CACHE (katastrofalne spowolnienie):
Generacja słowa 1 ➔ Obliczamy słowo 1 (1 operacja)
Generacja słowa 2 ➔ Ponowne obliczanie słów 1, 2 (2 operacje)
Generacja słowa 100 ➔ Ponowne obliczanie wszystkich 100 słów od nowa (100 operacji!)
... Prędkość spada niemal do zera!
─────────────────────────────────────────────────────────────
Z KV-CACHE (stała, błyskawiczna prędkość):
Słowa 1..99 zostały już przetworzone i znajdują się w pamięci podręcznej KV (pamięć wideo)!
Generacja słowa 100 ➔ Obliczenie tylko JEDNEGO nowego tokenu!
⚡ Prędkość pozostaje równie wysoka od pierwszego do ostatniego słowa.
3. Dlaczego wolna pamięć GPU topnieje
Wielu użytkowników dziwi się:
- «Model waży 5 GB, moja karta graficzna ma 8 GB. Dlaczego wywala się po załadowaniu dużego pliku PDF?»
Dlatego że te 3 GB zapasu natychmiast zajmuje KV-Cache:
- Każdy token w kontekście wymaga przechowywania wektorów Key oraz Value w każdej warstwie transformera.
- Jeśli masz długi dokument liczący 32 000 tokenów, rozmiar tej tabeli w pamięci może przekroczyć wagę samego modelu!
4. Praktyczny wniosek
Jeśli Twoja aplikacja do lokalnego czatu wywala się z powodu braku pamięci, nie musisz koniecznie zmieniać modelu na słabszy: wystarczy ograniczyć rozmiar okna kontekstowego (np. z 32k do 8k tokenów) lub wyczyścić historię starej sesji, zwalniając tym samym KV-Cache.
FAQ: Pamięć podręczna KV (Key-Value Cache)
Powiązane pojęcia
Rozmiar okna kontekstowego (Pamięć bieżącej rozmowy)
Maksymalna objętość tekstu (w tokenach), którą model językowy jest w stanie jednoczesnie utrzymać w pamięci podczas bieżącej sesji. Określa, jaką długość dokumentów można załadować jednorazowo bez utraty treści.
Pamięć wideo (VRAM) dla AI
Pamięć wideo procesora graficznego (Video RAM), do której ładowane są wagi sieci neuronowej oraz okno kontekstowe. Jest to kluczowa wąska gardło sprzętowe: jeśli model nie mieści się w VRAM, albo nie uruchomi się, albo będzie działał dziesiątki razy wolniej na zwykłym procesorze.
Streaming tekstu przez SSE (efekt maszyny do pisania)
Technologia przesyłania wygenerowanych tokenów do przeglądarki w czasie rzeczywistym za pośrednictwem protokołu Server-Sent Events (SSE). Tworzy efekt maszyny do pisania, eliminując nieprzyjemne oczekiwanie na zakończenie generowania pełnej odpowiedzi.