Skip to main content

KV-кеш (Key-Value Cache)

POUR AGENT IAChatGPTClaude

Оптимізація пам'яті в моделях Transformer, яка зберігає вектори ключів і значень (Keys and Values) уже оброблених токенів у швидкій пам'яті GPU. Дозволяє генерувати кожне наступне слово миттєво, але стрімко росте в розмірі з кожним новим повідомленням у чаті.

1. Aperçu du concept et de sa finalité

Lorsque vous interagissez avec un modèle de langage, deux phénomènes se manifestent :

  1. Le modèle génère des mots à une vitesse stable (par exemple, 40 mots par seconde). Il ne ralentit pas vers la fin d'une réponse longue.
  2. Cependant, si le dialogue dure depuis une heure et que l'historique des messages devient très volumineux, l'application affiche soudainement une erreur : « Out of Memory » (mémoire vidéo saturée).

Ces deux phénomènes sont régis par un même mécanisme : le KV-cache (Key-Value Cache).

D'un point de vue pratique, il s'agit d'un carnet de mémoire à court terme pour l'IA : afin d'éviter de relire toute la conversation précédente depuis le début pour chaque nouveau mot, le modèle conserve les résultats mathématiques des tokens déjà traités dans un tampon ultra-rapide de la mémoire GPU.

2. Comment le KV-cache préserve la vitesse de génération

SANS CACHE KV (Ralentissement catastrophique) :
Génération du mot 1 ➔ Calcul du mot 1 (1 opération)
Génération du mot 2 ➔ Recalcul des mots 1 et 2 (2 opérations)
Génération du mot 100 ➔ Recalcul complet de tous les 100 mots (100 opérations !)
... La vitesse chute presque à zéro !

─────────────────────────────────────────────────────────────

AVEC LE CACHE KV (Vitesse éclair constante) :
Les mots 1..99 sont déjà calculés et stockés dans le cache KV de la mémoire vidéo !
Génération du mot 100 ➔ Calcul d’UN SEUL nouveau jeton !
⚡ La vitesse reste identiquement élevée, du premier au dernier mot.

3. Pourquoi la mémoire libre du GPU fond comme neige au soleil

De nombreux utilisateurs s'étonnent :

  • « Le modèle pèse 5 Go, ma carte graphique dispose de 8 Go. Pourquoi plante-t-elle après l'ingestion d'un gros fichier PDF ? »

Parce que ces 3 Go de marge sont instantanément occupés par le KV-cache :

  • Chaque token du contexte nécessite le stockage des vecteurs Key et Value dans chaque couche du transformer.
  • Si vous traitez un document long de 32 000 tokens, la taille de cette table en mémoire peut dépasser le poids du modèle lui-même !

4. Conclusion pratique

Si votre application de chat local plante faute de mémoire, vous n'êtes pas obligé de passer à un modèle moins performant : il suffit souvent de limiter la taille de la fenêtre contextuelle (par exemple, de 32k à 8k tokens) ou de purger l'historique de l'ancienne session, libérant ainsi le KV-cache.

/ Questions fréquentesSchema.org FAQPage

FAQ: KV-кеш (Key-Value Cache)

Швидкість генерації була б катастрофічно низькою: щоб згенерувати 100-те слово, моделі довелося б заново перераховувати увагу для всіх попередніх 99 слів. З кожним новим словом модель друкувала б усе повільніше й повільніше.
/ Liens internes
Tous les termes