Chapitre 04II · Dans le Transformer8 min de lecture · ~12 min de manipulation

II · Dans le Transformer

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.

À 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.

Atelier d’attention / tête jouet

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.

Vecteur de départ, partagéavocat · #901 · [-0,68 ; 0,44]

manger un avocat

Scores

  1. avocat compare à manger-0,672
  2. avocat compare à un-0,336
  3. avocat compare à avocat0,348

Poids après softmax

  1. manger0,193
  2. un0,271
  3. avocat0,536

Vecteur contextualisé

avocat[0,08 ; 0,22]

Σ poids × V

appeler un avocat

Scores

  1. avocat compare à appeler-0,247
  2. avocat compare à un-0,124
  3. avocat compare à avocat0,348

Poids après softmax

  1. appeler0,253
  2. un0,287
  3. 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
manger un avocat · Requêtes, clés et valeurs
TokenQKV
[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]
manger un avocat · Poids après softmax
Q ↓ / K →mangerunavocat
1,0000,0000,000
0,5330,4670,000
0,1930,2710,536
appeler un avocat · Requêtes, clés et valeurs
TokenQKV
[-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]
appeler un avocat · Poids après softmax
Q ↓ / K →appelerunavocat
1,0000,0000,000
0,5330,4670,000
0,2530,2870,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.

Facultatif : comparez deux têtes.

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.

  1. Même ligne retrouvéeavocat · #901 · [−0,68 ; 0,44]
  2. Comparer Q aux Kscores → poids
  3. 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é.

  1. Le vecteur de chaque tokene
  2. Trois projectionsQ · K · V
  3. Q rencontre chaque Kscores + masque
  4. Softmaxpoids, Σ = 100 %
  5. 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ᵢ.

Un poids d’attention n’est pas une explication complète.

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 ?

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 ?

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.