Ce este
Generarea de text în LLM este autoregresivă: fiecare cuvânt nou este calculat pe baza tuturor cuvintelor anterioare. Fără KV Cache, la fiecare token nou generat ar trebui să recalculezi matricele de atenție pentru întregul istoric de la bun început.
KV Cache salvează vectorii Key și Value deja calculați în memoria RAM a plăcii video (VRAM), astfel încât pentru fiecare pas nou de generare calculezi atenția doar pentru noul token sosit.
Analogia din viața reală
Imaginează-ți că aduni pe o hârtie o listă lungă de cheltuieli: 10 + 20 + 35… Când apare un număr nou de adăugat (+15), nu reiei calculul de la 10 de fiecare dată; ai notat subtotalul parțial (65) și adaugi doar 15 pentru a obține 80. KV Cache este acest subtotal parțial ținut minte.
Cum funcționează tehnic
Memoria ocupată de KV Cache crește liniar cu numărul de tokeni din context și cu numărul de sesiuni concurente.
Pentru modele mari cu context lung (128k), KV Cache poate ocupa zeci de gigabytes de VRAM, depășind chiar dimensiunea ponderilor modelului.
Optimizări moderne: PagedAttention (folosit în vLLM pentru eliminarea fragmentării memoriei) și Grouped-Query Attention (GQA) (care împarte cheile și valorile între mai multe capete de atenție).
Exemple practice și aplicații
- În Llama 3 70B, utilizarea GQA (Grouped-Query Attention) reduce dimensiunea KV Cache-ului de 8 ori față de atenția multi-head standard.
- vLLM gestionează KV Cache ca pe memoria virtuală cu pagini a unui sistem de operare, mărind capacitatea de deservire a utilizatorilor de până la 4 ori.
Greșeli frecvente sau mituri
KV Cache nu accelerează prima fază a cererii (Time-to-First-Token / prefill), ci doar generarea fluidă token cu token a răspunsului (generation phase).
Termeni înrudiți
self-attention: Noțiune asociată din ghidul de Modele Mari de Limbaj.context-window: Noțiune asociată din ghidul de Modele Mari de Limbaj.speculative-decoding: Noțiune asociată din ghidul de Modele Mari de Limbaj.