PagedAttention & Gestion du KV-Cache
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.
FAQ: PagedAttention & Gestion du KV-Cache
Termes associés
vLLM (Moteur d'inférence haute performance)
Serveur d'inférence et de service LLM open source leader, qui a révolutionné le débit grâce à l'algorithme de virtualisation mémoire PagedAttention et au batching continu.
Fenêtre de contexte (Context Window)
Volume maximal de tokens qu'un modèle linguistique peut maintenir simultanément dans le mécanisme d'auto-attention et la mémoire du cache KV lors du calcul d'une requête d'inférence.
Déchargement et compression du KV-Cache
Méthodes matérielles et algorithmiques permettant de décharger temporairement le cache des clés et des valeurs (KV-Cache) de la mémoire vidéo GPU coûteuse vers la mémoire vive système (RAM) ou des SSD NVMe rapides.
Batching continu / dynamique
Mécanisme de regroupement des requêtes entrantes vers le réseau neuronal au niveau des itérations individuelles de tokens (ordonnancement par itération), éliminant les temps morts du processeur graphique lors d'une charge parallèle.