L'attention des transformers
chaque mot pose une question, tous les mots répondent, et la réponse est une moyenne pondérée
1 · DÉFINITION
$$\mathrm{Attention}(Q,K,V)=\mathrm{softmax}\!\Big(\frac{QK^\top}{\sqrt{d_k}}\Big)V,
\qquad Q=XW_Q,\ \ K=XW_K,\ \ V=XW_V$$
$$\text{pour une requête } q_i :\quad
\alpha_{ij}=\frac{\exp\!\big(q_i^\top k_j/(\sqrt{d_k}\,T)\big)}{\sum_{l}\exp\!\big(q_i^\top k_l/(\sqrt{d_k}\,T)\big)},
\qquad o_i=\sum_j\alpha_{ij}\,v_j$$
2 · À TOI : DÉPLACE LA REQUÊTE
requêtes et clés (\(d_k=2\)) : glisse la requête \(q_i\) du mot choisi
valeurs : la sortie \(o_i\) est le barycentre des \(v_j\) de poids \(\alpha_{ij}\)
Clique un mot (barres ou ligne de la matrice) pour choisir la requête. Tourner \(q_i\) change les mots qui répondent ; l'éloigner de l'origine rend l'attention plus tranchée. Pointillé : la droite des clés qui auraient le même score que la meilleure. Flèches ← → : tourner, ↑ ↓ : allonger. Les vecteurs sont fixés à la main (\(d=2\)) pour être lisibles, comme s'ils sortaient de \(W_Q,W_K,W_V\) appris.
3 · RAPPELS
- Les poids sont positifs et de somme 1 : \(o_i\) reste dans l'enveloppe convexe des valeurs. \(T\to0\) donne l'argmax (une seule valeur copiée), \(T\to\infty\) la moyenne uniforme.
- Le facteur \(1/\sqrt{d_k}\) : si les coordonnées de \(q\) et \(k\) sont indépendantes de variance 1, \(q^\top k\) a une variance \(d_k\). Sans ce facteur, en grande dimension, le softmax sature et ses gradients s'annulent.
- Les deux « le » ont la même clé et la même valeur, donc le même poids : sans encodage de position, l'attention ignore l'ordre des mots (elle est équivariante par permutation). On ajoute donc une position à chaque \(x_j\).
- Masque causal (génération de texte) : \(\alpha_{ij}=0\) pour \(j\gt i\), un mot ne regarde que ceux qui le précèdent ; la matrice devient triangulaire.
- Multi-têtes : \(h\) attentions en parallèle, chacune avec ses \(W_Q,W_K,W_V\) (ses propres « questions »), sorties concaténées puis mélangées par \(W_O\). Le bloc ajoute ensuite \(o_i\) à \(x_i\) (connexion résiduelle), normalise, et applique un petit réseau mot par mot.
- Coût : la matrice \(n\times n\) des poids, soit \(O(n^2d)\) opérations pour \(n\) mots, ce qui limite la longueur du contexte.
4 · CE QUE PRODUIT L'ATTENTION
- Les poids répondent à « quel mot me concerne ? » La requête de « chat » vise surtout la clé de « noir » (\(\alpha\approx0{,}58\) à \(T=1\)), et celle de « dort » vise « chat », son sujet.
- La sortie n'est pas un mot, c'est un nouveau vecteur. \(o_{\text{chat}}=\sum_j\alpha_j v_j\approx0{,}58\,v_{\text{noir}}+0{,}24\,v_{\text{chat}}+\dots\) est une représentation de « chat » enrichie par son contexte, en gros « chat-qui-est-noir ». Dans le panneau des valeurs, \(o\) se rapproche de \(v_{\text{noir}}\) sans le rejoindre, sauf si l'attention devient dure (\(T\) petit).
- Requête, clé, valeur : \(q\) dit « ce que je cherche », \(k\) dit « ce que je suis » (pour être trouvé), \(v\) dit « ce que je transmets si l'on me choisit ». Le mot récolte des informations ; il ne renvoie pas le nom de celui qu'il a choisi.
- Le mot prédit n'arrive qu'à la fin. Un transformer empile des dizaines de blocs « attention puis petit réseau » qui réécrivent les vecteurs de tous les mots. Seul le vecteur de la dernière position passe ensuite par une couche linéaire et un softmax sur tout le vocabulaire : ce sont les probabilités du mot suivant.