Le cache KV : échanger du calcul contre de la mémoire
Situation concrète
Quand un modèle vient de calculer les clés et valeurs de mille tokens, il serait coûteux de les reconstruire intégralement pour générer le mille-et-unième.
Objectifs d’apprentissage
- Identifier les clés et valeurs conservées
- Comparer calcul évité et mémoire occupée par le cache
Prérequis
- Leçon 5.2
Mode simple
Le cache KV garde, pour chaque couche, les clés et valeurs des positions déjà traitées. Au tour suivant, le modèle calcule les nouvelles projections puis les compare au contenu conservé. Il évite ainsi une grande partie du travail répété. Le compromis est la mémoire : plus la séquence, le batch, le nombre de couches et le nombre de têtes key-value augmentent, plus le cache grandit. Des variantes comme MQA ou GQA partagent davantage de clés et valeurs pour réduire ce coût.
Mode approfondi
L’empreinte du cache est proportionnelle à batch × longueur × couches × têtes KV × dimension de tête × deux tenseurs, multiplié par la précision numérique. Le cache réduit les projections des tokens passés mais n’élimine ni la comparaison de la nouvelle requête avec toutes les clés conservées, ni les MLP du nouveau token. La quantification, la pagination et le partage des têtes KV modifient débit, latence et capacité de traitement simultané.
Analogie
Un cuisinier conserve les préparations déjà coupées au réfrigérateur : le service accélère, mais les étagères finissent par limiter le nombre de commandes simultanées.
Exemple concret
À la quatrième étape, sans cache, les projections des trois tokens précédents seraient refaites. Avec cache, leurs K et V sont relus et seules les projections du nouveau token sont ajoutées.
La ligne sans cache répète tous les blocs passés ; la ligne avec cache conserve trois blocs et ajoute seulement le quatrième.
Activité manipulable
Confusion fréquente
Le cache KV n’est ni une mémoire personnelle de conversation ni une base de connaissances. C’est un état temporaire de calcul lié à une séquence.
Vérification rapide
Quelles quantités le cache conserve-t-il principalement ?
Les projections de clés et de valeurs des positions passées, pour chaque couche concernée, afin de les réutiliser aux étapes suivantes.
Résumé
- Le cache réutilise les K et V passés.
- Il réduit le recalcul mais augmente la mémoire.
- Le partage des têtes KV change fortement son empreinte.
