Skip to main content

PagedAttention & Gestion du KV-Cache

POUR AGENT IAChatGPTClaude

Algorithme de gestion de la mémoire GPU qui divise le cache KV des modèles de langage en pages virtuelles non contiguës (similaires au noyau d'un OS), éliminant la fragmentation et augmentant le débit par un facteur de 4.

1. Vue d'ensemble du concept et problème systémique

Lorsqu'un serveur traite des requêtes vers un modèle de langage, la mémoire est l'ennemi principal de la scalabilité :

  • La carte graphique NVIDIA A100 dispose de 80 Go de VRAM. Le modèle 70B en quantization 4 bits occupe environ 38 Go.
  • Il reste donc 42 Go pour les requêtes utilisateurs.
  • Avec une allocation mémoire traditionnelle, le serveur ne peut gérer simultanément que 2 à 3 requêtes avec contexte long. Tenter de connecter un quatrième client entraîne une erreur CUDA Out of Memory.

PagedAttention a résolu ce problème en transposant dans la mémoire vidéo des GPU un principe fondamental vieux de 50 ans issu des systèmes d'exploitation : la mémoire virtuelle paginée (Paging).

2. Taxonomie architecturale et modèle mental

┌─────────────────────────────────────────────────────────────┐
│                 ARCHITECTURE PAGEDATTENTION                 │
├─────────────────────────────────────────────────────────────┤
│ 1. Blocs KV logiques (Contexte logique de l'utilisateur) :  │
│    [Tokens 0-15] ➔ [Tokens 16-31] ➔ [Tokens 32-47]         │
├─────────────────────────────────────────────────────────────┤
│                          │                                  │
│                          ▼ Table des blocs (Block Table)    │
│    • Bloc logique 0 ➔ Bloc physique 7 en VRAM               │
│    • Bloc logique 1 ➔ Bloc physique 2 en VRAM               │
│    • Bloc logique 2 ➔ Bloc physique 11 en VRAM              │
├─────────────────────────────────────────────────────────────┤
│ 2. Pages VRAM physiques (Slots libres contigus) :           │
│    ┌─────────┬─────────┬─────────┬─────────┬─────────┐      │
│    │ Bloc 0  │ Bloc 1  │ Bloc 2  │ ...     │ Bloc 11 │      │
│    │ (Req B) │ (Libre) │ (Req A) │         │ (Req A) │      │
│    └─────────┴─────────┴─────────┴─────────┴─────────┘      │
│    • Fragmentation mémoire réduite de 70 % à < 4 %          │
└─────────────────────────────────────────────────────────────┘

3. Scénarios d'ingénierie pratiques en production

01. Partage de préfixes (Prefix Caching / Copy-on-Write)

Si 50 utilisateurs interrogent simultanément le même prompt système ou le même document PDF, PagedAttention ne copie pas ces données 50 fois. Toutes les requêtes pointent vers les mêmes pages physiques du cache KV en VRAM. La mémoire n'est copiée que lorsque l'utilisateur commence à générer sa propre réponse unique (Copy-on-Write).

02. Branchement parallèle des pensées agentiques (Branching Search)

Lorsqu'un agent explore 4 variantes de résolution d'une tâche (Beam Search ou Tree-of-Thought), le contexte initial partagé est conservé dans une instance unique de pages mémoire, économisant jusqu'à 75 % de VRAM lors des calculs en essaim.

4. Pièges, erreurs courantes et sécurité

  • Overhead des tables de pages sur les textes courts : Pour les dialogues ultra-courts (1–5 tokens), l'overhead lié à la gestion de la table des blocs peut légèrement augmenter le temps de dispatch.
  • Nettoyage des pages lors de l'annulation d'une requête : Si l'utilisateur interrompt la connexion, le moteur doit immédiatement restituer les pages physiques allouées au pool de blocs libres, sous peine de provoquer une fuite de mémoire (VRAM Memory Leak).

5. Conclusion stratégique pour l'ingénieur de 2026

PagedAttention a opéré dans l'infrastructure LLM une révolution aussi discrète que celle qu'a constituée la mémoire virtuelle dans Unix. Grâce à lui, servir des centaines d'agents sur un seul GPU est devenu un standard industriel économiquement viable.

/ Questions fréquentesSchema.org FAQPage

FAQ: PagedAttention & Gestion du KV-Cache

Lors de la génération, le modèle doit conserver les tenseurs Keys et Values pour chaque token précédent afin d'éviter leur recalcul. Avec une longueur de contexte de 128k tokens, le cache KV pour un seul utilisateur peut occuper plus de 10 à 20 Go de mémoire.
/ Liens internes
Tous les termes