Pourquoi le contexte long coûte cher
Situation concrète
Doubler la longueur d’un texte ne double pas toujours le travail de l’attention dense : lorsque chaque position compare toutes les autres, les paires se multiplient beaucoup plus vite.
Objectifs d’apprentissage
- Calculer l’ordre de grandeur d’une matrice d’attention
- Nuancer l’expression coût quadratique selon la phase
Prérequis
- Leçon 5.1
Mode simple
Pour n tokens, une matrice d’attention dense contient environ n × n cases avant de tenir compte du masque. Passer de 1 000 à 2 000 positions multiplie donc le nombre de paires par quatre. La mémoire des poids d’attention et le calcul augmentent. Cependant, le coût exact dépend du matériel, des noyaux optimisés, du nombre de couches, du batch et de la phase. Pendant la génération avec cache, le nouveau token compare surtout les clés déjà conservées au lieu de recalculer toute la matrice carrée.
Mode approfondi
L’auto-attention dense a une composante temporelle O(n²d) pour QKᵀ et AV et une empreinte naïve O(n²) pour les poids, même si des noyaux fusionnés réduisent les écritures mémoire. Le préremplissage d’un prompt long diffère du décodage incrémental : à l’étape t avec cache, la nouvelle requête effectue environ O(td) de comparaison, tandis que le cache croît en O(t) par couche et tête key-value. Les variantes clairsemées ou linéaires changent encore cette analyse.
Analogie
Dans une salle, si chaque personne doit comparer sa note avec celle de toutes les autres, ajouter des participants crée bien plus que quelques nouvelles rencontres.
Exemple concret
Une matrice 512 × 512 contient 262 144 cellules ; une matrice 1 024 × 1 024 en contient 1 048 576, soit quatre fois plus.
La courbe monte de plus en plus vite et quatre matrices indiquent que doubler le côté quadruple le nombre de cellules.
Activité manipulable
Confusion fréquente
Dire « tout Transformer coûte toujours exactement n² » ignore décodage avec cache, attention clairsemée, kernels, batch et autres choix d’architecture.
Vérification rapide
Pourquoi doubler n quadruple-t-il une matrice n × n ?
Les deux dimensions doublent : (2n) × (2n) = 4n². Chaque axe représente une position comparée à une position.
Résumé
- L’attention dense forme une matrice longueur par longueur.
- Préremplissage et décodage n’ont pas le même profil.
- Le coût réel dépend de l’implémentation et de l’architecture.
