Skip to main content

Pamięć podręczna KV (Key-Value Cache)

DLA AGENTÓW AIChatGPTClaude

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:

  1. Model generuje słowa ze stabilną prędkością (np. 40 słów na sekundę). Nie zwalnia pod koniec długiej odpowiedzi.
  2. 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.

/ Najczęściej zadawane pytaniaSchema.org FAQPage

FAQ: Pamięć podręczna KV (Key-Value Cache)

Prędkość generowania byłaby katastrofalnie niska: aby wygenerować setne słowo, model musiałby na nowo obliczać mechanizm uwagi (attention) dla wszystkich wcześniejszych 99 słów. Z każdym nowym słowem model działałby coraz wolniej.
/ Linki wewnętrzne
Wszystkie hasła