Architecture Transformer & Attention
LLM & IA
Deep Learning
Visualiser et comprendre le mécanisme de self-attention (Scaled Dot-Product) au cœur de l’architecture Transformer.
Un Transformer ne lit pas seulement une phrase de gauche à droite. Il regarde les mots ensemble et construit une carte de relations.
Ici, on suit une version simplifiée de la phrase :
Le chat mange car il a faim
L’attention
L’attention répond à une question simple : quels tokens aident le mieux à comprendre le token que je suis en train d’étudier ?
Note
Un token est un morceau de texte manipulé par le modèle. Dans cette page, pour rester lisible, on utilise un token par mot.
Carte d’attention
Qui regarde qui ?
La phrase commence assemblée à plat : les pièces s’emboîtent comme un puzzle. Cliquez sur Désassembler pour passer en carte circulaire, puis cliquez sur un mot pour afficher les tokens qu’il regarde le plus fortement.
Quand vous cliquez sur mange, le modèle regarde surtout chat, faim et il. Cela lui donne des indices sur le sujet de l’action, sa cause, et le pronom qui renvoie au chat.
Le produit scalaire normalisé
Dans un vrai Transformer, chaque token possède une requête, une clé et une valeur. La requête d’un token est comparée aux clés des autres tokens. Plus la comparaison est forte, plus le lien d’attention est fort.
Chaque pièce porte un mot d’une phrase plus longue. Sur chaque connexion, on lit une valeur de requête q, une valeur de clé k, puis leur produit q×k. Ces scores bruts peuvent devenir très grands : c’est justement pour cela que le softmax arrive ensuite.
Les mêmes scores passés par softmax : chaque valeur est exponentiée puis divisée par la somme, de sorte que l’ensemble somme à 1. Le bleu indique une faible attention, le rouge une forte attention.
Chaque pièce cache une valeur — l’information qu’elle peut partager. Déplacez la lampe sur le puzzle pour révéler les couleurs que le modèle retient lors de l’attention.
Formule
\[ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V \]
La division par \(\sqrt{d_k}\) évite que les scores deviennent trop grands avant le softmax.
Le bloc Transformer
L’attention n’est qu’une étape. Le signal traverse ensuite une série de couches qui le raffinent avant de produire la sortie. Cliquez sur une couche dans la vue d’ensemble pour naviguer vers son onglet.
La pile se lit de haut en bas. Les connexions résiduelles (en vert, à gauche) contournent certaines couches pour préserver le signal d’origine. Les sphères colorées représentent les tokens qui traversent le bloc.
La connexion résiduelle (ou skip connection) additionne le signal d’entrée x au signal transformé attention(x). Sans elle, l’information originale serait écrasée à chaque couche. Le réseau apprend la différence plutôt que la valeur absolue.
Les sphères transparentes représentent x qui bypass les couches ; les sphères pleines sont le signal transformé ; les sphères plus grandes à droite sont le résultat de l’addition.
La normalisation de couche (LayerNorm) centre et réduit les activations : moyenne nulle, écart-type unitaire. L’iris s’ouvre ou se ferme en fonction de l’ouverture de normalisation. Glissez vers le haut ou le bas sur l’iris pour ajuster l’amplitude des activations d’entrée.
Le réseau feed-forward applique deux transformations linéaires à chaque token séparément. La première expanse la représentation à une dimension 4× plus grande (pour y trouver des motifs), la seconde la compresse à nouveau. Déplacez la lentille horizontalement pour révéler la dimension cachée de chaque token.
La couche de projection finale transforme le vecteur caché en scores sur tout le vocabulaire — les logits. Un softmax les convertit en probabilités. Les cellules du capteur correspondent aux tokens du vocabulaire ; cliquez sur Déclencher pour voir les probabilités s’allumer.