GUIDE Technique
Optimisation du cache KV
Le cache KV stocke les clés et les valeurs qu'un transformateur a déjà calculées afin de ne pas refaire le travail pour chaque nouveau jeton, mais il peut atteindre des gigaoctets.
Écoutez ce guideNarré par l'IA · ~2 min
Sur cette page2 minutes de lecture
Aperçu
L'optimisation du cache KV réduit et gère cette mémoire afin que les modèles servent des contextes plus longs à plus d'utilisateurs à la fois.
Plongée profonde
In a transformer, each new token attends to all previous tokens via attention's keys (K) and values (V). Recomputing K and V for the whole sequence at every step would be quadratic and wasteful, so models cache them: the KV cache. The downside is size. The cache grows linearly with sequence length, batch size, layers, and heads, so a long-context request can consume more GPU memory than the model weights themselves. Optimization tackles this from several angles: paged memory (vLLM's PagedAttention) stores the cache in non-contiguous blocks to reduce fragmentation and enable sharing; quantization stores K and V in 8-bit or 4-bit; and architectural changes like Grouped-Query Attention (GQA) and Multi-Query Attention (MQA) let many query heads share fewer key/value heads, slashing cache size at the source.
Mise en œuvre dans le monde réel
vLLM's PagedAttention serving many concurrent chat sessions by packing KV blocks while reducing memory fragmentation
Attention aux requêtes groupées dans les modèles Llama réduisant la taille du cache KV afin que les contextes plus longs tiennent dans la mémoire GPU
Quantification du cache KV à 8 bits (KV8) pour réduire de moitié environ la mémoire cache lors du résumé de documents longs
Mise en cache des préfixes qui réutilise les blocs KV d'une invite système partagée sur des milliers de requêtes API
L'avenir de l'optimisation du cache KV
À mesure que les fenêtres contextuelles s'étendent sur des centaines de milliers, voire des millions de jetons, le cache KV devient le coût de service dominant. Attendez-vous à une compression et à une expulsion agressives du cache (suppression des jetons à faible attention), au partage de préfixes de requêtes croisées par défaut, au déchargement du cache froid vers le CPU ou le NVMe et à des architectures telles que MLA et GQA devenant la norme. La gestion du cache ressemblera de plus en plus à une hiérarchie de mémoire complète avec des niveaux et une prélecture intelligente.
Le mettre en pratique
Pourquoi c'est important
- Coût et budget. Les décisions en matière d'architecture déterminent les performances et les coûts d'exploitation pendant des années.
- Décisions plus claires. La formation technique aide les équipes à choisir la bonne pile, pas seulement la plus récente.
- Contrôle qualité. De meilleurs choix d’ingénierie réduisent les incidents de fiabilité en production.
Attention à
- L’optimisation d’un benchmark peut masquer des faiblesses plus larges du système.
- Les coûts d’infrastructure et de maintenance sont souvent sous-estimés.
- Les lacunes en matière de sécurité et d’observabilité peuvent se creuser à mesure que les systèmes deviennent plus complexes.
Prochaines étapes
- Définissez les objectifs de latence, de qualité et de coût avant la mise en œuvre.
- Benchmark dans des conditions de charge et de données réalistes.
- Surveillance des instruments pour détecter les erreurs, la dérive et l'impact sur l'utilisateur.
- Préparez les chemins de restauration et de réponse aux incidents avant la mise à l’échelle.
Continuez à explorer
Newsletter gratuite
Recevez le briefing quotidien sur l'IA
Trois histoires d'IA vérifiées chaque matin de la semaine, écrites dans un anglais simple. Gratuit pour toujours, sans publicité.
Un e-mail chaque jour de la semaine. Désabonnez-vous en un clic. Nous ne vendons ni ne partageons jamais votre adresse.
Testez-vous
Take the KV Cache Optimization quiz
Commentaires instantanés sur chaque réponse et un certificat partageable avec une pièce d'identité vérifiable une fois que vous avez réussi un cours.
Soutenez l’enseignement gratuit de l’IA. AI Understanding est une organisation à but non lucratif 501(c)(3) : pas de publicité, pas de paywall, jamais. Faire un don
Questions fréquemment posées
Qu’est-ce que l’optimisation du cache KV ?
Le cache KV stocke les clés et les valeurs qu'un transformateur a déjà calculées afin de ne pas refaire le travail pour chaque nouveau jeton, mais il peut atteindre des gigaoctets. L'optimisation du cache KV réduit et gère cette mémoire afin que les modèles servent des contextes plus longs à plus d'utilisateurs à la fois.
Que stocke le cache KV et pourquoi ?
La mise en cache des clés et des valeurs des jetons précédents évite de refaire le calcul de l'attention sur chaque nouveau jeton, ce qui permet de gagner du temps.
Pourquoi le cache KV peut-il devenir un problème de mémoire ?
La taille du cache évolue en fonction de la longueur du contexte et de la concurrence, de sorte que les requêtes longues peuvent utiliser d'énormes quantités de mémoire GPU.
Quel concept de système d’exploitation PagedAttention emprunte-t-il ?
PagedAttention stocke le cache dans des blocs non contigus de taille fixe mappés via une table, tout comme la pagination du système d'exploitation.
Comment les requêtes groupées et l'attention multi-requêtes réduisent-elles la taille du cache KV ?
Le partage des têtes clé/valeur sur plusieurs têtes de requête signifie beaucoup moins de vecteurs K et V à stocker.
Quel est l’un des avantages du partage de préfixes dans le cache KV ?
Une invite système partagée produit des entrées KV identiques, de sorte que plusieurs requêtes peuvent pointer vers les mêmes blocs au lieu de les dupliquer.
Continuez à apprendre
Guides associés
Plus de guides sélectionnés pour ce sujet