Ottimizzazione della cache KV
La cache KV memorizza le chiavi e i valori che un trasformatore ha già calcolato in modo da non ripetere il lavoro per ogni nuovo token, ma può gonfiarsi fino a raggiungere i gigabyte.
Panoramica
KV cache optimization shrinks and manages that memory so models serve longer contexts to more users at once.
Immersione profonda
In un trasformatore, ogni nuovo token si prende cura di tutti i token precedenti tramite le chiavi di attenzione (K) e i valori (V). Ricalcolare K e V per l'intera sequenza ad ogni passaggio sarebbe quadratico e dispendioso, quindi i modelli li memorizzano nella cache: la cache KV. Lo svantaggio è la dimensione. La cache cresce in modo lineare con la lunghezza della sequenza, la dimensione del batch, i livelli e le testine, quindi una richiesta di contesto lungo può consumare più memoria GPU di quanto pesa il modello stesso. L'ottimizzazione affronta questo problema da diversi punti di vista: la memoria paginata (PagedAttention di vLLM) archivia la cache in blocchi non contigui per eliminare la frammentazione e consentire la condivisione; la quantizzazione memorizza K e V a 8 bit o 4 bit; e modifiche all'architettura come Grouped-Query Attention (GQA) e Multi-Query Attention (MQA) consentono a molte teste di query di condividere meno teste chiave/valore, riducendo le dimensioni della cache all'origine.
Approfondimento tecnico
PagedAttention prende in prestito il paging della memoria virtuale dai sistemi operativi: la cache risiede in blocchi di dimensione fissa mappati tramite una tabella di ricerca, quindi le richieste utilizzano solo i blocchi di cui hanno bisogno e prefissi identici (come un prompt di sistema condiviso) possono puntare agli stessi blocchi. Multi-head Latent Attention (MLA), utilizzato nei modelli DeepSeek, comprime K e V in un piccolo vettore latente condiviso, riducendo drasticamente la memoria mantenendo la precisione.
Impatto strategico
Costo e budget
Le decisioni relative all'architettura determinano prestazioni e costi operativi per anni.
Decisioni più chiare
La formazione tecnica aiuta i team a scegliere lo stack giusto, non solo quello più nuovo.
Controllo di qualità
Migliori scelte ingegneristiche riducono gli incidenti legati all’affidabilità nella produzione.
Il futuro dell'ottimizzazione della cache KV
Poiché le finestre di contesto si estendono a centinaia di migliaia o milioni di token, la cache KV diventa il costo dominante del servizio. Aspettatevi compressione ed eliminazione aggressiva della cache (rilasciando token a bassa attenzione), condivisione del prefisso tra richieste incrociate come impostazione predefinita, scarico della cache fredda su CPU o NVMe e architetture come MLA e GQA che diventeranno standard. La gestione della cache assomiglierà sempre più a una gerarchia di memoria completa con livelli e precaricamento intelligente.
Implementazione nel mondo reale
PagedAttention di vLLM che serve molte sessioni di chat simultanee comprimendo blocchi KV senza frammentazione della memoria
L'attenzione alle query raggruppate nei modelli Llama riduce le dimensioni della cache KV in modo che i contesti più lunghi si adattino alla memoria della GPU
Quantizzazione della cache KV a 8 bit (KV8) per dimezzare all'incirca la memoria cache durante il riepilogo di documenti lunghi
Caching del prefisso che riutilizza i blocchi KV di un prompt di sistema condiviso su migliaia di richieste API
Rischi e guardrail
L'ottimizzazione di un benchmark può nascondere debolezze di sistema più ampie.
I costi delle infrastrutture e della manutenzione sono spesso sottostimati.
Le lacune in termini di sicurezza e osservabilità possono aumentare man mano che i sistemi diventano più complessi.
Tabella di marcia per l'implementazione
Definire obiettivi di latenza, qualità e costi prima dell'implementazione.
Benchmark in condizioni di carico e dati realistiche.
Monitoraggio dello strumento per errori, deriva e impatto sull'utente.
Preparare percorsi di rollback e risposta agli incidenti prima della scalabilità.
Continua a esplorare
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the KV Cache Optimization quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Prossima guida
Cache KV
Domande frequenti
What is KV Cache Optimization?
La cache KV memorizza le chiavi e i valori che un trasformatore ha già calcolato in modo da non ripetere il lavoro per ogni nuovo token, ma può gonfiarsi fino a raggiungere i gigabyte. L'ottimizzazione della cache KV riduce e gestisce la memoria in modo che i modelli offrano contesti più lunghi a più utenti contemporaneamente.
Cosa memorizza la cache KV e perché?
La memorizzazione nella cache di chiavi e valori dei token precedenti evita di ripetere il calcolo dell'attenzione su ogni nuovo token, risparmiando tempo.
Perché la cache KV può diventare un problema di memoria?
Le dimensioni della cache variano in base alla lunghezza del contesto e alla concorrenza, quindi le richieste lunghe possono utilizzare enormi quantità di memoria della GPU.
Quale concetto di sistema operativo prende in prestito PagedAttention?
PagedAttention archivia la cache in blocchi di dimensione fissa non contigui mappati tramite una tabella, proprio come il paging del sistema operativo.
In che modo l'attenzione delle query raggruppate e delle query multiple riduce le dimensioni della cache KV?
La condivisione di intestazioni chiave/valore su più intestazioni di query significa molti meno vettori K e V da archiviare.
Qual è uno dei vantaggi della condivisione dei prefissi nella cache KV?
Un prompt di sistema condiviso produce voci KV identiche, quindi più richieste possono puntare agli stessi blocchi invece di duplicarli.