Aller au contenu
Kudos AI

Auto-attention

Un mécanisme qui permet à chaque position d’une séquence de prêter attention à toutes les autres, chaque sortie étant une somme pondérée de valeurs dont les poids viennent de la similarité entre requêtes et clés.

Aussi appelé : Attention par produit scalaire mis à l’échelle

Un token rassemblant le contexte du reste de la séquence, les poids d’attention se formant et se reformant à mesure que la requête se déplace.

Comprendre Auto-attention

Interpréter un mot exige un contexte qui peut se trouver n’importe où dans la phrase. L’auto-attention donne à chaque position un accès direct à toutes les autres, laissant le modèle décider, pour chaque jeton, quels autres jetons lui sont pertinents, et lire depuis ceux-là.

Le mécanisme projette la représentation de chaque jeton en trois vecteurs. La requête exprime ce que cette position cherche, la clé annonce ce que cette position offre, et la valeur porte le contenu effectivement extrait. La pertinence de la position j pour la position i est le produit scalaire de la requête de i par la clé de j. Ces scores passent par un softmax pour devenir des poids de somme un, et la sortie en i est la somme pondérée de tous les vecteurs de valeur.

Le facteur d’échelle n’est pas cosmétique. Raschka explique que les produits scalaires croissent avec la dimension d’embedding, qui dépasse typiquement le millier pour les modèles de type GPT ; de grands produits scalaires poussent le softmax à se comporter comme une fonction en escalier, et ses gradients vers zéro, ce qui ralentit ou bloque l’apprentissage. Diviser par la racine carrée de la dimension des clés maintient les scores dans une plage où le softmax reste réactif, et c’est cette normalisation qui donne son nom à l’attention par produit scalaire mis à l’échelle.

Le gain structurel sur la récurrence est double. Deux positions quelconques sont séparées par une seule opération quelle que soit la distance, les dépendances à longue portée n’ont donc pas à survivre à une longue chaîne d’étapes intermédiaires. Et comme la sortie de chaque position est calculée à partir des mêmes matrices indépendamment, toute la séquence est traitée en parallèle pendant l’entraînement, au lieu d’une étape à la fois. Le coût est que comparer toutes les paires croît quadratiquement avec la longueur de séquence, ce qui explique que l’efficacité en long contexte demeure un problème de recherche actif.

Comment calculer

Attention(Q, K, V) = softmax(QKᵀ / √dₖ) V

où

Q
les requêtes : ce que chaque position cherche
K
les clés : ce que chaque position offre à l’appariement
V
les valeurs : le contenu lu une fois les poids décidés
dₖ
la dimension des clés ; diviser par sa racine carrée empêche le softmax de saturer
softmax
normalise les scores en poids de somme un

Exemple : Auto-attention

Dans « l’animal n’a pas traversé la rue parce qu’il était trop fatigué », résoudre « il » exige de savoir s’il renvoie à l’animal ou à la rue. L’auto-attention permet à la position portant « il » de former une requête qui s’apparie fortement à la clé de « animal », si bien que la valeur lue dans cette position porte un contenu lié à l’animal.

Changer le dernier mot en « large » devrait déplacer la référence vers la rue. Rien dans l’architecture n’est codé en dur pour la résolution des pronoms ; les projections de requête et de clé qui produisent ce comportement sont apprises des seules données.

En pratique, plusieurs têtes d’attention s’exécutent en parallèle avec des projections distinctes, ce qui permet à une tête de suivre l’accord syntaxique pendant qu’une autre suit la référence et une troisième la similarité thématique. Leurs sorties sont concaténées, et c’est pourquoi le mécanisme est normalement déployé sous forme d’attention multi-têtes.

Questions fréquentes

Quelle différence entre attention et auto-attention ?

L’attention permet généralement à une séquence de lire dans une autre, comme lorsqu’un décodeur de traduction lit la source encodée. L’auto-attention est le cas où requêtes, clés et valeurs proviennent toutes de la même séquence : elle met donc en relation les positions d’une même entrée.

Pourquoi diviser par la racine carrée de la dimension des clés ?

Les produits scalaires croissent avec la dimension, et de grands scores font tendre le softmax vers une fonction en escalier dont les gradients sont presque nuls, ce qui bloque l’entraînement. La mise à l’échelle garde les scores dans une plage où le softmax reste lisse et les gradients utiles.

Qu’est-ce que le masquage causal ?

Pour les modèles génératifs, une position ne doit pas prêter attention aux positions ultérieures, sinon le modèle verrait la réponse qu’il est censé prédire. Un masque causal fixe ces scores à moins l’infini avant le softmax, de sorte que leurs poids deviennent nuls.

En résumé

L’auto-attention calcule la sortie de chaque position comme une lecture pondérée apprise sur toute la séquence, les poids venant de la similarité mise à l’échelle entre requêtes et clés. Elle supprime la pénalité de distance de la récurrence et permet un entraînement parallèle, au prix d’un coût quadratique en longueur de séquence.