GUIDE IA du langage

Cache KV

Le cache KV stocke les vecteurs de clé et de valeur qu'un transformateur a déjà calculés pour les jetons précédents, il n'a donc pas besoin de les recalculer pour chaque nouveau mot qu'il génère.

2 minutes de lectureDernière mise à jour

Aperçu

It is the single biggest reason text generation is fast — and the main thing eating your GPU memory during long conversations.

Plongée profonde

Les transformateurs génèrent du texte un jeton à la fois, et la couche d'attention de chaque nouveau jeton doit être comparée à chaque jeton précédent. Le mécanisme d'attention transforme chaque jeton en un vecteur de requête, de clé et de valeur. Sans mise en cache, générer le jeton numéro 1 000 signifierait recalculer les clés et les valeurs des 999 jetons précédents à chaque étape – un travail quadratique et inutile. Le cache KV enregistre ces vecteurs de clé et de valeur après leur premier calcul et les réutilise, de sorte que chaque nouvelle étape calcule uniquement les vecteurs pour le jeton le plus récent et s'occupe du cache stocké. Cela réduit le coût par jeton de la mise à l'échelle avec la longueur de la séquence à une valeur à peu près constante. Le compromis est la mémoire : le cache croît de manière linéaire avec la longueur du contexte, le nombre de couches et les centres d'attention, devenant souvent le consommateur dominant de mémoire dans le cadre d'un service à long contexte.

Aperçu technique

Pendant la phase de « pré-remplissage », le modèle traite l'intégralité de l'invite et remplit le cache ; pendant le « décodage », il ajoute le K/V d'un jeton par étape et y assiste à nouveau. La taille du cache évolue selon 2 (K et V) × couches × têtes × head_dim × séquence_length × lot, dans la précision choisie. Pour maîtriser cela, les modèles modernes utilisent des requêtes groupées ou une attention multi-requêtes pour partager des clés/valeurs entre les têtes, et les systèmes de service comme vLLM utilisent PagedAttention pour allouer le cache dans des blocs non contigus, réduisant ainsi la fragmentation et le gaspillage.

Impact stratégique

Vitesse et échelle

Les flux de travail linguistiques peuvent évoluer plus rapidement sans sacrifier la cohérence.

Accès et portée

Il étend l’accès à toutes les langues et styles de communication.

Décisions plus claires

Les équipes peuvent consacrer plus de temps au jugement tandis que l’automatisation gère les répétitions.

L'avenir du cache KV

À mesure que les fenêtres de contexte s'étendent sur des centaines de milliers de jetons, le cache KV devient le goulot d'étranglement central, l'innovation est donc féroce : quantification du cache à 8 ou 4 bits, politiques d'expulsion qui suppriment les jetons de faible importance, partage de préfixes de requêtes croisées et déchargement sur le processeur ou le disque. Les changements architecturaux tels que l'attention latente multi-têtes compressent le cache lui-même. Attendez-vous à une co-conception continue de variantes d’attention et de systèmes de mémoire visant à servir des contextes très longs à moindre coût et à haut débit.

Mise en œuvre dans le monde réel

Accélérer les réponses du chatbot en réutilisant les clés/valeurs mises en cache de l'historique des conversations au lieu de les retraiter à chaque tour.

Mise en cache de préfixes qui partage le cache pour une longue invite système entre de nombreux utilisateurs, réduisant ainsi les coûts et la latence.

PagedAttention de vLLM gérant le cache KV en blocs pour répondre efficacement à de nombreuses requêtes simultanées sur un GPU.

Quantification du cache KV avec une précision inférieure pour adapter des contextes plus longs à une mémoire GPU limitée.

Risques et garde-fous

Les faits hallucinés peuvent discrètement entrer dans des rapports, des flux de support ou des résultats de recherche.

La sensibilité des invites peut créer des résultats incohérents pour des demandes similaires.

Les données textuelles sensibles peuvent être exposées si les contrôles d’accès sont faibles.

Feuille de route de mise en œuvre

1

Définissez le format de sortie, le ton et les normes de qualité avant le déploiement.

2

Établissez des réponses auprès de sources fiables chaque fois que la précision est importante.

3

Gardez un point de contrôle d’examen humain pour les résultats à enjeux élevés.

4

Suivez les modèles de défaillance et recyclez régulièrement les invites ou les flux de travail.

Continuez à explorer

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 quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Démarrer le quiz

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Guide suivant

Optimisation du cache KV

Questions fréquemment posées

What is KV Cache?

Le cache KV stocke les vecteurs de clé et de valeur qu'un transformateur a déjà calculés pour les jetons précédents, il n'a donc pas besoin de les recalculer pour chaque nouveau mot qu'il génère. C’est la principale raison pour laquelle la génération de texte est rapide – et la principale raison pour laquelle la mémoire de votre GPU est consommée lors de longues conversations.

Que stocke le cache KV ?

Le cache KV contient les vecteurs de clé et de valeur des jetons précédents afin que l'attention puisse les réutiliser au lieu de les recalculer.

Quel problème le cache KV résout-il principalement ?

Sans mise en cache, chaque nouveau jeton nécessiterait de recalculer le K/V pour chaque jeton précédent, ce qui est un gaspillage ; le cache rend le coût par jeton à peu près constant.

Quel est le principal inconvénient du cache KV ?

Le cache augmente avec la longueur de la séquence, les couches et les têtes, devenant souvent le principal consommateur de mémoire GPU dans le cadre d'un service à long contexte.

Quelle technique réduit la taille du cache KV en partageant des clés et des valeurs entre les têtes d'attention ?

Les requêtes groupées et les requêtes multiples permettent à plusieurs têtes de requête de partager moins d'ensembles clé/valeur, réduisant ainsi considérablement le cache.

Quelles sont les deux phases d'inférence du transformateur par rapport au cache KV ?

Prefill remplit le cache avec le K/V de l'invite ; decode ajoute le K/V d'un nouveau jeton à chaque étape et revient sur le cache.