Accueil – Chapitre 8
À la fin de ce chapitre 8, tu sauras : ce qu'est une « tête » d'attention (requêtes Q, clés K, valeurs V), comment le produit scalaire Q·K donne des scores de pertinence, comment le softmax et le masquage produisent le motif d'attention, et comment les valeurs sont combinées pour mettre à jour les embeddings. Tu comprendras aussi pourquoi on parle d'attention « multi-têtes ».
Bienvenue dans le chapitre 8 ! Au chapitre 6, tu as découvert les Transformers et l'attention en général. Au chapitre 7, tu as vu comment le texte devient des vecteurs (embedding) et comment on obtient les probabilités à la fin (softmax). Ici, on ouvre la boîte noire de l'attention : après l'embedding, les vecteurs des mots « communiquent » entre eux grâce à des requêtes, des clés et des valeurs. C'est ce mécanisme, pas à pas, que nous allons détailler. Le bloc MLP qui suit l’attention dans chaque couche du Transformer est détaillé au chapitre 9.
L'attention en un schéma
En résumé : Ce chapitre détaille le mécanisme d'attention : Q, K, V, scores, softmax, masquage, puis combinaison des valeurs pour obtenir des embeddings affinés E'.
Lexique
Objectif : Connaître les mots du chapitre 8 (requête, clé, valeur, motif d'attention, softmax, masquage, tête d'attention, attention multi-têtes).
- Requête (query)
- Vecteur obtenu en multipliant un embedding par la matrice W_Q. Il encode une « question » : par exemple « quels mots devant moi sont pertinents pour mon sens ? ». Comme si : une étiquette « je cherche des adjectifs » sur le mot « créature ».
- Clé (key)
- Vecteur obtenu en multipliant un embedding par la matrice W_K. Les clés sont des « réponses » potentielles aux requêtes : si la clé d'un mot et la requête d'un autre s'alignent bien (produit scalaire élevé), ces mots sont pertinents l'un pour l'autre. Comme si : une étiquette « je suis un adjectif » sur le mot « bleu ».
- Valeur (value)
- Vecteur obtenu en multipliant un embedding par la matrice W_V. Il représente « quoi ajouter » à l'embedding d'un autre mot si celui-ci lui accorde de l'attention. Comme si : le contenu à transférer (« bleu », « fluffy ») vers le mot qu'on met à jour.
- Motif d'attention
- Grille de poids (entre 0 et 1, somme 1 par colonne) obtenue en appliquant le softmax sur les scores Q·K (éventuellement masqués). Chaque colonne indique « quel poids donner à chaque mot pour mettre à jour le mot de cette colonne ». Comme si : un tableau « qui influence qui, et à quel degré ».
- Softmax (rappel)
- Fonction qui transforme des scores en probabilités : nombres entre 0 et 1 dont la somme vaut 1. Ici on l'applique par colonne sur la grille des scores. Comme si : normaliser chaque colonne pour en faire une répartition de « qui compte pour ce mot ».
- Masquage (masking)
- Règle qui empêche les tokens futurs d'influencer les tokens passés : avant le softmax, on met à −∞ les scores des positions j > i (puis 0 après softmax). Indispensable à l'entraînement pour ne pas « tricher » en regardant la suite du texte. Comme si : cacher la fin de la phrase quand on prédit le mot suivant.
- Tête d'attention
- Un ensemble complet : matrices W_Q, W_K, W_V + calcul des scores, softmax, combinaison des valeurs. Une tête produit une mise à jour ΔE pour chaque position. Comme si : un petit module qui décide d'un type de « qui regarde qui ».
- Attention multi-têtes
- Plusieurs têtes d'attention en parallèle, chacune avec ses propres W_Q, W_K, W_V. Les mises à jour ΔE de toutes les têtes sont additionnées (ou concaténées puis projetées) pour obtenir l'embedding affiné final. Comme si : plusieurs experts qui regardent le texte sous des angles différents, puis on fusionne leurs avis.
Rappel : où se situe l'attention dans le Transformer
Objectif : Resituer l'attention entre l'embedding et le MLP ; entrée = vecteurs E, sortie = vecteurs affinés E'.
Le Transformer reçoit du texte (tokens), les transforme en vecteurs (embedding), puis enchaîne un grand nombre de blocs. Chaque bloc contient d'abord un bloc d'attention (détaillé dans ce chapitre), puis un MLP (réseau à propagation avant). L'entrée de l'attention est la séquence d'embeddings E (un vecteur par token). La sortie est une nouvelle séquence d'embeddings affinés E' = E + ΔE, où ΔE est calculé par le mécanisme d'attention. Ces vecteurs enrichis passent ensuite dans le MLP, puis éventuellement dans d'autres blocs attention + MLP, et à la fin seul le dernier vecteur sert à la prédiction du token suivant (comme vu au chapitre 7).
En résumé : Attention = entre embedding et MLP. Entrée : E. Sortie : E' = E + ΔE (vecteurs affinés par le contexte).
Contexte et sens : pourquoi l'attention existe
Objectif : Comprendre avec des exemples pourquoi un même mot doit avoir une représentation différente selon le contexte, et pourquoi le dernier vecteur doit encoder tout le contexte.
Après l'embedding, chaque token est associé à un vecteur. Mais au tout début, ce vecteur ne dépend que du mot (et de sa position) : il ne « voit » pas encore le contexte. Or le sens d'un mot dépend des mots autour. Par exemple, le mot « taupe » n'a pas le même sens dans « une taupe creuse des galeries » (animal), « une mole de carbone » (unité en chimie) ou « il a une taupe sur la joue » (grain de beauté). Le vecteur initial de « taupe » serait le même dans les trois phrases ; c'est le bloc d'attention qui permet aux autres mots d'envoyer de l'information vers ce vecteur pour le faire évoluer vers la bonne « direction » dans l'espace (animal, chimie, ou dermatologie).
Autre exemple : le mot « tour ». Si il est précédé de « Eiffel », le modèle voudra que son vecteur pointe vers quelque chose qui évoque la tour Eiffel (Paris, fer, etc.). Si il est aussi précédé de « miniature », le vecteur doit encore évoluer pour ne plus être associé à « grand » et « haut ». Ce transfert d'information d'un token vers un autre peut se faire sur de longues distances et impliquer bien plus qu'un seul mot.
Enfin, souviens-toi qu'à la fin du Transformer, seul le dernier vecteur de la séquence est utilisé pour prédire le mot suivant. Si le texte est un long roman policier qui se termine par « Donc le meurtrier était… », ce dernier vecteur (associé au mot « était ») doit avoir été mis à jour par toute l'attention pour encoder toute l'information pertinente du contexte — personnages, indices, etc. — afin de prédire correctement la suite. L'attention est le mécanisme qui permet à ce dernier vecteur d'« absorber » le contexte.
Voir concrètement : le mot « taupe » (ou « banque ») change de sens selon le contexte.
Une taupe creuse des galeries. → animal
Une taupe de carbone. → unité (chimie)
Il a une taupe sur la joue. → grain de beauté
En résumé : Un même mot a des sens différents selon le contexte. L'attention met à jour les vecteurs pour qu'ils encodent ce sens. Le dernier vecteur doit résumer tout le contexte pour la prédiction.
Requêtes et clés : qui est pertinent pour qui ?
Objectif : Comprendre comment on obtient les requêtes Q et les clés K à partir des embeddings, et comment le produit scalaire Q·K donne un score de pertinence.
Dans une tête d'attention, on utilise trois matrices apprises : W_Q (requêtes), W_K (clés) et W_V (valeurs). Pour l'instant on s'intéresse à Q et K.
À partir de chaque embedding E (un vecteur par token), on calcule une requête Q = W_Q × E et une clé K = W_K × E. Les requêtes et les clés vivent dans un espace de plus petite dimension que les embeddings. On peut imaginer la requête du mot à la position i comme une « question » (« quels mots sont pertinents pour mettre à jour mon sens ? ») et la clé du mot à la position j comme une « réponse » potentielle. Pour mesurer à quel point le mot j est pertinent pour mettre à jour le mot i, on calcule le produit scalaire entre la requête du mot i et la clé du mot j : Q_i · K_j. Plus ce nombre est grand, plus les deux vecteurs sont alignés et plus le mot j « répond » à la « question » du mot i.
On fait cela pour toutes les paires (i, j). On obtient une grille de scores : en ligne le « mot qui pose la question » (qui reçoit l'information), en colonne le « mot qui répond » (qui envoie l'information). Chaque case (i, j) = score de pertinence du mot j pour le mot i.
Détail technique : pour la stabilité numérique, on divise ces scores par √d_k (où d_k est la dimension de l'espace des requêtes et clés) avant d'appliquer le softmax.
Voir : grille des scores (produits scalaires simulés). Ligne = mot qui reçoit ; colonne = mot qui envoie. Plus le score est élevé, plus le mot est pertinent.
Phrase : Un chat bleu dort sur le tapis
À quoi sert le produit scalaire entre la requête du mot i et la clé du mot j ?
En résumé : Q = W_Q E, K = W_K E. Score (i, j) = Q_i · K_j (éventuellement divisé par √d_k). Grille = qui est pertinent pour qui.
Motif d'attention : softmax et masquage
Objectif : Comprendre comment les scores deviennent des poids (softmax par colonne) et pourquoi on masque les tokens futurs.
La grille des scores Q·K contient des nombres qui peuvent être négatifs ou très grands. Pour s'en servir comme poids (combien de chaque valeur ajouter à chaque position), on veut que chaque colonne soit une distribution de probabilités : des nombres entre 0 et 1 dont la somme vaut 1. On applique donc la fonction softmax par colonne : pour la colonne du mot i (le mot qu'on met à jour), on prend les scores de tous les mots j (ceux qui peuvent envoyer de l'information), on calcule l'exponentielle de chaque score (après division par √d_k), puis on divise par la somme. On obtient le motif d'attention : une grille de poids.
En plus, à l'entraînement, le modèle prédit le mot suivant à chaque position. Pour la position i, il ne doit pas « tricher » en regardant les mots en position j > i. On applique donc un masquage : avant le softmax, on met à −∞ tous les scores où j > i (un token « futur » ne doit pas influencer un token « passé »). Après softmax, ces cases deviennent 0. La grille devient triangulaire (ou triangulaire inférieure selon la convention).
Limitation : la taille du motif d'attention est le carré du nombre de tokens (une ligne et une colonne par token). Le coût en calcul et en mémoire croît donc en N². C'est une des raisons pour lesquelles la longueur de contexte des grands modèles est limitée.
Voir : scores bruts → softmax par colonne → poids. Option « Avec masquage » pour forcer les cases j > i à 0.
Que fait le masquage dans l'attention ?
En résumé : Softmax par colonne → poids entre 0 et 1, somme 1. Masquage : j > i → 0. Motif = N² (limite la longueur de contexte).
Valeurs et mise à jour des embeddings
Objectif : Comprendre comment les vecteurs « valeur » V sont combinés avec le motif d'attention pour produire ΔE, puis E' = E + ΔE.
Une fois qu'on a le motif d'attention (les poids par colonne), il faut décider quoi ajouter à chaque embedding. C'est le rôle des valeurs. On calcule pour chaque token un vecteur V = W_V × E. Ce vecteur vit dans le même espace (ou un espace de même dimension) que les embeddings. Il répond à la question : « Si ce mot est pertinent pour en modifier un autre, quelle modification envoyer ? »
En pratique, la « matrice valeur » est souvent décomposée en deux matrices plus petites (réduction de dimension puis remontée), pour garder un nombre de paramètres du même ordre que pour Q et K, tout en produisant des vecteurs utilisables pour mettre à jour les embeddings.
Pour la position i (le mot qu'on met à jour), on fait une combinaison linéaire de tous les vecteurs V_j, pondérée par les poids du motif d'attention sur la colonne i : ΔE_i = Σ_j (poids_{j,i} × V_j). Puis le nouvel embedding est E'_i = E_i + ΔE_i. On fait cela pour chaque position ; on obtient ainsi la séquence complète d'embeddings affinés E'.
Voir : le flux complet d'une tête d'attention.
En résumé : V = W_V E. Pour chaque position i, ΔE_i = combinaison des V_j pondérée par le motif (colonne i). E'_i = E_i + ΔE_i.
Attention multi-têtes
Objectif : Comprendre qu'un bloc d'attention contient plusieurs « têtes » en parallèle et que leurs mises à jour sont combinées.
Ce que nous avons décrit — requêtes, clés, valeurs, scores, softmax, combinaison des V — correspond à une seule tête d'attention. En réalité, un bloc d'attention en contient plusieurs (par exemple 96 dans GPT-3). Chaque tête a ses propres matrices W_Q, W_K, W_V, donc ses propres requêtes, clés et valeurs, et produit son propre motif d'attention et sa propre séquence de mises à jour ΔE. Les ΔE de toutes les têtes sont ensuite additionnés (ou concaténés puis projetés par une matrice de sortie, selon les implémentations) pour obtenir la mise à jour finale ajoutée à E. Ainsi, chaque tête peut apprendre un type de relation différent (par exemple une tête pour les accords adjectif-nom, une autre pour les références à des entités lointaines, etc.).
L'ordre de grandeur des paramètres : pour une tête, on a W_Q, W_K, et les deux matrices qui forment W_V (réduction puis remontée), soit environ 6 millions de paramètres pour une tête dans un modèle de la taille de GPT-3. Avec 96 têtes par bloc et 96 blocs, les paramètres d'attention représentent environ un tiers du total du modèle (environ 58 milliards pour l'attention dans GPT-3).
Voir : plusieurs têtes en parallèle, chacune avec ses Q, K, V ; les ΔE sont additionnés.
En résumé : Plusieurs têtes en parallèle (chacune avec W_Q, W_K, W_V). Les ΔE sont additionnés. Environ 96 têtes dans GPT-3 ; l'attention compte pour environ un tiers des paramètres.
Pourquoi l'IA vous comprend enfin : Les secrets de l'Attention dans les Transformers
1. Introduction : Le dilemme du mot « Taupe »
Comment une machine peut-elle distinguer une « taupe » qui creuse des tunnels dans un jardin, d'une « taupe » infiltrée dans un service de renseignement, ou encore d'une « taupe » utilisée comme unité de mesure en chimie ?
Lorsqu'un mot entre dans un Transformer, il est d'abord transformé en un vecteur numérique via un « embedding ». Contrairement à une idée reçue, cet embedding n'est pas totalement dénué de contexte : il intègre un encodage positionnel qui indique au modèle où se trouve le mot dans la phrase. Cependant, sa signification sémantique brute reste initialement celle d'une table de correspondance statique. Pour l'ordinateur, le vecteur initial de « taupe » est identique, qu'il s'agisse de zoologie ou d'espionnage.
Le défi est de transformer ce sens générique en un concept précis. C'est ici qu'intervient le mécanisme d'attention. Cette innovation permet aux vecteurs environnants de « parler » au mot cible pour affiner sa définition. L'attention est l'outil mathématique qui calcule l'ajustement nécessaire pour déplacer le vecteur d'un mot vers une direction plus spécifique en fonction de ses voisins.
2. Le « Speed Dating » des mots : Requêtes (Queries) et Clés (Keys)
Pour orchestrer cet échange d'informations, chaque mot génère deux vecteurs de dimension réduite grâce à des matrices de paramètres apprises (W_Q et W_K) :
- La Requête (Query) : C'est une question posée par un mot. Par exemple, le mot « créature » pourrait demander : « Y a-t-il des adjectifs devant moi qui me décrivent ? »
- La Clé (Key) : C'est la réponse potentielle offerte par les autres mots. Les mots « bleue » ou « duveteuse » présentent des clés qui s'alignent mathématiquement avec la requête « recherche d'adjectif ».
Le modèle mesure la pertinence de cet alignement via un produit scalaire (dot product). Plus le score est élevé, plus le mot doit « prêter attention » à l'autre. Pour garantir la stabilité numérique du modèle lors de l'entraînement, ce score est divisé par la racine carrée de la dimension des clés (√dk), puis normalisé par une fonction softmax pour obtenir une distribution de probabilités.
L'opération mathématique fondamentale de l'attention se résume ainsi : Attention(Q, K, V) = Softmax(QKT / √dk) × V. Cette formule permet de créer un « modèle d'attention », une grille qui dicte comment chaque mot influence les autres.
3. La Valeur (Value) : La mise à jour chirurgicale du sens
Une fois que l'attention a identifié les relations pertinentes, il faut physiquement mettre à jour l'information. C'est le rôle de la matrice de Valeur (W_V).
Dans un modèle comme GPT-3, cette opération est optimisée par une « transformation de bas rang » : la matrice de valeur est factorisée en deux matrices plus petites (Value↓ et Value↑). Ce processus permet de projeter le vecteur original dans un espace réduit pour extraire l'essence de l'information, avant de le reprojeter dans l'espace de dimension supérieure. Cette méthode est bien plus efficace en termes de paramètres qu'une seule matrice géante.
Le résultat n'est pas un remplacement du vecteur original, mais la création d'un vecteur de changement (ΔE). Ce « delta » est ajouté à l'embedding initial. C'est ainsi qu'une « créature » devient spécifiquement une « créature bleue et duveteuse » dans l'esprit mathématique de la machine.
Cette mécanique atteint son apogée dans des contextes longs. Imaginez un roman policier se terminant par : « Le meurtrier était… ». Le vecteur du mot « était » ne contient rien d'intéressant au départ. Mais après être passé par les couches d'attention, il a aspiré les indices, les noms et les mobiles disséminés dans les chapitres précédents. Il devient une unité de stockage dense, un résumé contextuel capable de prédire le nom du coupable.
4. Le goulot d'étranglement et l'art du Masquage
L'attention est puissante, mais elle a un coût : la taille de la grille d'attention croît de manière quadratique (N²) par rapport à la longueur du texte. Si vous doublez le contexte, vous quadruplez les calculs. C'est le défi majeur de l'IA actuelle pour traiter des livres entiers.
De plus, lors de l'entraînement, le modèle doit apprendre à prédire le mot suivant sans « tricher ». Pour cela, on utilise le masquage : on force les scores d'attention des mots futurs à −∞ avant l'étape du softmax. Cela garantit que, mathématiquement, le mot présent ne peut recevoir aucune information venant du futur. Après normalisation, ces connexions interdites deviennent strictement nulles.
5. L'union fait la force : Le parallélisme multi-têtes
Le langage est trop complexe pour un seul canal d'attention. GPT-3 utilise donc l'attention multi-têtes (Multi-headed attention), avec 96 têtes fonctionnant en parallèle par bloc. Chaque tête possède ses propres matrices W_Q, W_K et W_V, lui permettant de se spécialiser :
- Têtes grammaticales : Relier un sujet à son verbe.
- Têtes d'association d'idées : Comprendre que « Harry » associé à « sorcier » pointe vers Potter, tandis que « Harry » associé à « Sussex » pointe vers le Prince.
- Têtes de structure : Identifier si le texte est un dialogue ou une liste.
Chaque tête propose son propre vecteur de changement (ΔE), et la somme de toutes ces propositions produit une mise à jour d'une richesse sémantique extraordinaire.
6. Le secret de la puissance : Pourquoi ça marche si bien ?
La domination des Transformers ne vient pas seulement de leur élégance mathématique, mais de leur parallélisabilité. Contrairement aux anciens modèles qui lisaient les mots séquentiellement, les Transformers traitent toutes les interactions d'un bloc de texte simultanément sur les processeurs graphiques (GPU).
Cette architecture a permis le scaling : le passage à l'échelle massive. En augmentant le nombre de paramètres et de données, on a découvert que la puissance de calcul brute se transformait en améliorations qualitatives spectaculaires, permettant à la machine de saisir des nuances de plus en plus fines.
7. Conclusion : Vers une abstraction profonde
À travers les dizaines de couches de blocs d'attention, le modèle ne se contente plus de lier des adjectifs à des noms. Il raffine les vecteurs pour encoder des concepts abstraits : le sentiment, le ton ironique, ou la structure rigide d'un sonnet.
Cela nous laisse face à une interrogation fascinante : si une machine peut ajuster mathématiquement le sens d'un mot en fonction de son environnement avec une telle précision, à quel point sa « compréhension » diffère-t-elle de la nôtre ? Sommes-nous, nous aussi, des processeurs d'attention ajustant constamment nos représentations internes en fonction du contexte qui nous entoure ?
Générés par NotebookLM (Google).
Conclusion du chapitre 8
Objectif : Synthétiser le mécanisme d'attention et le rôle de la parallélisation.
Tu as vu comment une tête d'attention fonctionne : les embeddings E sont transformés en requêtes Q, clés K et valeurs V. Les produits scalaires Q·K donnent des scores de pertinence ; le softmax (par colonne, avec éventuel masquage) produit un motif de poids ; la combinaison des valeurs V pondérée par ce motif donne la mise à jour ΔE ; et E' = E + ΔE. Les multi-têtes permettent d'avoir plusieurs « types » d'attention en parallèle et d'additionner leurs effets.
Une dernière raison du succès des Transformers : le calcul de l'attention est très parallélisable. Tous les produits scalaires, tous les softmax, toutes les combinaisons peuvent être effectués en même temps sur un GPU. Comme l'augmentation de la taille des modèles (scale) a souvent conduit à de grandes améliorations de performance, une architecture qui se prête bien au calcul massivement parallèle a un avantage décisif. L'attention n'est pas seulement puissante pour le sens — elle est aussi adaptée à l'échelle.
En résumé : Une tête = Q, K, V + scores + softmax + valeurs → ΔE. Multi-têtes = plusieurs têtes, ΔE additionnés. L'attention est très parallélisable, ce qui permet de monter en taille.
Quiz : teste ta compréhension
Objectif : Répondre à des questions sur le chapitre 8 (requêtes, clés, valeurs, motif d'attention, softmax, masquage, multi-têtes) et obtenir une note sur 20.
Choisis un quiz :
Cartes mémoire
Cartes mémoire (flashcards) pour réviser les notions du chapitre 8 (requêtes, clés, valeurs, motif d'attention, softmax, masquage, multi-têtes).
Chargement…
Générés par NotebookLM (Google).
Fiche enseignant
Contenu de la fiche pédagogique pour le chapitre 8 (objectifs, durée par section, réponses aux quiz, idées d'activités).
Objectifs pédagogiques (Chapitre 8)
- Comprendre qu'une tête d'attention utilise les requêtes Q, les clés K et les valeurs V.
- Comprendre que le produit scalaire Q·K donne un score de pertinence et que le softmax (par colonne) produit le motif d'attention.
- Comprendre le masquage (tokens futurs n'influencent pas les passés) et la limite N² sur la longueur de contexte.
- Comprendre comment les valeurs V sont combinées pour obtenir ΔE et E' = E + ΔE.
- Comprendre l'attention multi-têtes et le rôle de la parallélisation.
Niveau et prérequis
Niveau : fin collège / lycée.
Prérequis : chapitres 6 (LLM, Transformer, attention en général) et 7 (tokens, embedding, softmax) recommandés.
Durée indicative : 45 min à 1 h pour le parcours complet du chapitre 8.
Structure du parcours (Chapitre 8)
| Section | Durée indicative | Objectif |
|---|---|---|
| Accueil | 5 min | Présenter l'attention pas à pas (Q, K, V, motif, ΔE). |
| Lexique | 5 min | Requête, clé, valeur, motif d'attention, masquage, tête, multi-têtes. |
| Rappel | 3 min | Resituer l'attention entre embedding et MLP. |
| Contexte-sens à Multi-têtes | 25–30 min | Détailler chaque notion avec les visualisations et quiz courts. |
| Conclusion | 5 min | Synthèse et parallélisation. |
| Quiz / Cartes | 10 min | Quiz final chapitre 8 ; flashcards ../notebook/chapitre-8. |
Réponses aux quiz courts (Chapitre 8)
- À quoi sert le produit scalaire entre requête et clé ? → À mesurer à quel point le mot j est pertinent pour mettre à jour le sens du mot i.
- Que fait le masquage ? → Il empêche les tokens futurs d'influencer les tokens passés (pour ne pas tricher à l'entraînement).
Réponses au quiz final Chapitre 8
Voir les questions dans js/quiz.js (questionsChapitre8). Barème : 20 / nombre de questions par bonne réponse.
Ressources
Flashcards : ../notebook/chapitre-8/flashcards.csv.
Idées d'activités
- Grille à la main : sur une phrase courte (4–5 mots), remplir une grille de scores simulés puis appliquer le softmax par colonne.
- Comparer avec/sans masquage : utiliser la visualisation pour voir la différence entre la grille complète et la grille triangulaire.
- Trace écrite : en 4 étapes, de E à E' (Q,K,V → scores → softmax → combinaison des V).