Dans cette leçon
L’attention, le moment où les tokens se parlent
Observez un même vecteur de départ produire deux sorties différentes selon le contexte, puis inspectez une tête d’attention miniature, des scores jusqu’à la sortie.
Le parcours
Du texte au chatbot
C’est l’ordre du cours, pas celui d’une passe avant.
I · Du texte aux représentations
II · Dans le Transformer
- 04Attentionétape TransformerPas commencé
- 05Positionsétape TransformerPas commencé
- 06Bloc Transformerétape TransformerPas commencé
III · Prédire et apprendre
IV · Du modèle au chatbot
À la fin, vous saurez
- Distinguer les rôles des requêtes, clés et valeurs dans une tête d’attention.
- Tracer scores, masque, softmax et somme pondérée jusqu’au vecteur de sortie.
Avant de commencer : La tokenisation, ou comment un modèle lit, Les embeddings : le sens devient géométrie
« Manger un avocat », « appeler un avocat ». Les deux expressions contiennent avocat, token #901, au même point de départ [−0,68 ; 0,44]. Seuls ses voisins changent. Le contexte suffit-il à déplacer sa sortie ?
Les paris sont ouverts. Une tête d’attention va trancher. Suivez le trajet d’une visite en bibliothèque : formez une requête, évaluez les clés disponibles, masquez les rayons interdits, puis mélangez les valeurs.
Observez un token dans deux contextes
Le laboratoire montre les deux contextes, avocat sélectionné, son vecteur de départ répété dans chaque colonne. Avant de comparer les sorties, tranchez. Une coordonnée devrait-elle bouger ?
Prédisez le sort d’avocat
Le laboratoire affiche la sortie sous la forme [x, y]. Pariez sur le sens du déplacement avant de révéler les nombres.
Votre pari
Avocat sélectionné dans les deux colonnes, en quoi sa sortie diffère-t-elle entre « manger un avocat » et « appeler un avocat » ?
Engagez-vous avant de manipuler l’instrument. Ce choix est définitif.
Le token cible #901 part du même vecteur dans les deux contextes. Entrées et projections Q/K/V sont fabriquées ; scores, softmax et mélanges sont calculés en direct.
avocat · #901 · [-0,68 ; 0,44]manger un avocat
Scores
- avocat compare à manger-0,672
- avocat compare à un-0,336
- avocat compare à avocat0,348
Poids après softmax
- manger0,193
- un0,271
- avocat0,536
Vecteur contextualisé
avocat′[0,08 ; 0,22]Σ poids × V
appeler un avocat
Scores
- avocat compare à appeler-0,247
- avocat compare à un-0,124
- avocat compare à avocat0,348
Poids après softmax
- appeler0,253
- un0,287
- avocat0,460
Vecteur contextualisé
avocat′[-0,01 ; 0,44]Σ poids × V
Même vecteur de départ dans les deux contextes, et pourtant les deux sorties diffèrent : le contexte seul a déplacé avocat.
Avec le masque causal actif, une ligne de la matrice softmax garde un poids verrouillé sur exactement 1. La ligne de quelle position ?
Missions en cours
- Désigner la ligne au poids verrouillé sur 1
- Révéler la seconde tête et voir la divergence
Inspecter Q, K, V et la matrice complète
| Token | Q | K | V |
|---|---|---|---|
| [1,00 ; 0,50] | [1,00 ; -0,50] | [1,00 ; 0,50] | |
| [0,50 ; 0,25] | [0,50 ; -0,25] | [0,50 ; 0,25] | |
| [-0,90 ; 0,10] | [-0,46 ; 0,78] | [-0,46 ; 0,10] |
| Q ↓ / K → | manger | un | avocat |
|---|---|---|---|
| 1,000 | 0,000 | 0,000 | |
| 0,533 | 0,467 | 0,000 | |
| 0,193 | 0,271 | 0,536 |
| Token | Q | K | V |
|---|---|---|---|
| [-0,50 ; 1,00] | [0,50 ; 1,00] | [0,50 ; 1,00] | |
| [-0,25 ; 0,50] | [0,25 ; 0,50] | [0,25 ; 0,50] | |
| [-0,90 ; 0,10] | [-0,46 ; 0,78] | [-0,46 ; 0,10] |
| Q ↓ / K → | appeler | un | avocat |
|---|---|---|---|
| 1,000 | 0,000 | 0,000 | |
| 0,533 | 0,467 | 0,000 | |
| 0,253 | 0,287 | 0,460 |
score = (Q · K) × netteté / √2
Chaque ligne affichée totalise 1,000 ; la surface bleue répète chaque poids.
Manipulez le regard des tokens
Gardez avocat sélectionné et comparez les sorties. Le vecteur de départ n’a pas bougé, et pourtant les deux divergent. Chaque colonne propose d’autres valeurs à mélanger, et c’est le contexte qui gagne le pari.
Ce cas est construit à la main pour exposer le calcul. Il ne montre pas qu’une tête entraînée découvrirait exactement cette relation linguistique.
D’abord, pendant qu’avocat reste sélectionné, activez Seconde tête ou déplacez légèrement le curseur Netteté des scores : les deux sorties contextualisées règlent votre pari.
Ouvrez ensuite Inspecter Q, K, V. Pour la position sélectionnée, suivez sa requête face à chaque clé, puis le masque, les poids softmax et les valeurs pondérées jusqu’à la sortie.
Gardez le masque causal actif et sélectionnez le premier token. Les clés suivantes deviennent inaccessibles. Pendant l’entraînement à prédire le token suivant, le futur ne doit pas être visible.
Désactivez le masque et regardez les poids des positions futures revenir.
Sélectionnez de nouveau avocat et montez le curseur Netteté des scores : dans la colonne manger un avocat, son propre poids passe d’environ 0,54 à 0,72.
Ce réglage pédagogique n’est pas la température de génération, que vous rencontrerez au chapitre 7. L’attention standard, elle, s’en tient au facteur fixe 1 / √dₖ.
Défi Le laboratoire attend votre verdict. Gardez le masque causal actif et désignez la position dont la ligne softmax porte un poids verrouillé sur exactement 1. Méfiez-vous : la position la plus visible n’est pas la bonne.
Comparez votre réponse
C’est le poids du premier token vers lui-même, dans la case supérieure gauche. Le masque causal le laisse seul dans la bibliothèque, avec une seule clé consultable : la sienne.
Un softmax appliqué à un seul score non masqué renvoie toujours 1. Vous aurez beau changer ce score ou les voisins, la tête n’a toujours personne d’autre à consulter.
Seconde tête applique un autre jeu de projections construit à la main et produit un autre mélange.
Des têtes entraînées peuvent différer, mais ce cas ne prouve pas que chacune apprend un rôle linguistique net. Une couche multi-tête combine leurs mélanges avant l’opération suivante.
Expliquez la bibliothèque Q, K, V
L’auto-attention fabrique un nouveau vecteur à chaque position en mélangeant les informations qu’elle peut lire. Les deux occurrences peuvent ainsi diverger malgré une ligne de départ identique.
- Même ligne retrouvéeavocat · #901 · [−0,68 ; 0,44]
- Comparer Q aux Kscores → poids
- Mélanger les Vsortie contextualisée
Dans un Transformer entraîné, trois projections apprises transforment chaque vecteur d’entrée e en :
- une requête
Q: ce que cette position cherche ; - une clé
K: comment cette position peut être trouvée ; - une valeur
V: l’information qu’elle apportera si elle est choisie.
Comme Q et K utilisent deux projections apprises distinctes, le vecteur qui cherche n’est pas forcément celui qui se laisse trouver.
Au comptoir de la bibliothèque, votre requête est la demande que vous déposez, chaque clé une cote de rayonnage à comparer, chaque valeur le contenu que vous emportez. Les meilleures correspondances reçoivent les plus grandes parts.
Le softmax est le comptable de la tête. Il transforme les scores non masqués en poids positifs et ses livres de comptes doivent tomber juste : exactement 100 %. La somme pondérée des valeurs forme un vecteur de sortie contextualisé.
- Le vecteur de chaque tokene
- Trois projectionsQ · K · V
- Q rencontre chaque Kscores + masque
- Softmaxpoids, Σ = 100 %
- Poids × V, somméssortie contextualisée
La même histoire, en formules
Pour une requête, chaque clé reçoit le score Q · K / √dₖ, où dₖ est la dimension des clés. La division par √dₖ empêche les produits scalaires de gonfler quand cette dimension augmente.
Le masque causal remplace les scores interdits par −∞. Leur poids softmax devient nul : une position antérieure ne peut donc pas utiliser une valeur future pour apprendre à prédire le token suivant.
Le softmax transforme les scores restants en poids positifs dont la somme vaut 1 :
softmax(sᵢ) = exp(sᵢ − max(s)) / Σⱼ exp(sⱼ − max(s))
Pause maths : softmax sans calcul différentiel
Imaginez chaque score comme une enchère. L’exponentielle amplifie une avance, puis la division par le total transforme les enchères en parts dont la somme vaut 100 %.
Ce − max(s) relève de la pure comptabilité : le comptable décale chaque score de la même quantité, ce qui garde les exponentielles petites et ne déplace aucun poids. Enfin, la tête calcule Σ poidsᵢ × Vᵢ.
Il décrit un mélange à une position, dans une tête et une couche. Le résultat final dépend aussi des autres têtes, des couches suivantes, des chemins résiduels et des transformations non linéaires.
Réfléchissez au trajet de l’information
Point de contrôle
Après que les scores Q·K, le masque et le softmax ont produit les poids, que multiplie-t-on par ces poids avant de tout additionner ?
Choisissez d’abord une réponse.
Point de contrôle
Quand un autre token regarde avocat, quel vecteur d’avocat fixe le score et lequel contribue à la sortie ?
Choisissez d’abord une réponse.
Reliez l’attention au signal manquant
Le contexte a déplacé avocat grâce à Q, K, V, au masque, au softmax et à une somme pondérée.
Mais remettez ces mêmes tokens dans un autre ordre, et sans masque cette tête ne voit plus que du contenu. Qu’est-ce qui lui dira lequel venait en premier ?
La leçon suivante donne à chaque token la seule chose que cette tête ne voit pas : sa place dans la file.
Sources et périmètre
- Vaswani et al. (2017) définissent l’attention par produit scalaire mis à l’échelle, le masque causal, l’attention multi-tête et l’architecture Transformer.
- Jain et Wallace (2019) montrent pourquoi les poids d’attention ne suffisent pas à expliquer tout le comportement d’un modèle.
- Le laboratoire représente une seule tête 2D fabriquée à la main. Son curseur de netteté des scores est pédagogique et n’est pas la température de génération.
- Contenu et affirmations relus le 28 juillet 2026.