Aller au contenu
Architecture

Attention (self-attention)

Le mécanisme qui permet à chaque token de regarder les autres pour décider lesquels comptent pour son propre sens.

7 min de lecture
  • #architecture
  • #transformer
  • #QKV

L’attention est le mécanisme qui permet à chaque token de regarder les autres tokens du texte, de leur attribuer un score d’importance, et de se recharger du sens de ceux qui comptent le plus pour lui.

Tu entres dans une bibliothèque avec une question en tête. Tu la compares aux étiquettes des rayons, tu repères celles qui semblent y répondre, et tu repars avec le contenu des livres correspondants.

L’attention procède ainsi, avec deux différences. Chaque mot tient les trois rôles à la fois : il pose sa question, porte son étiquette et a quelque chose à donner. Et personne ne repart avec un seul livre : on prend un peu de tous, à proportion de ce que leur étiquette promettait.

L’attention n’est pas née avec les LLM. En 2014, Bahdanau, Cho et Bengio la greffent sur un traducteur automatique : plutôt que de comprimer la phrase de départ dans un seul vecteur, le modèle revient piocher dans les mots d’origine à chaque mot traduit. Trois ans plus tard, « Attention Is All You Need » retire tout le reste et ne garde que ça. L’empilement des couches, lui, est le sujet de la fiche Transformer.

Le token arrive sous forme d’embedding. Le modèle le multiplie par trois matrices apprises, et en tire trois vecteurs :

  • la requête (query, Q) : ce que ce token cherche ;
  • la clé (key, K) : ce à quoi il peut répondre ;
  • la valeur (value, V) : ce qu’il transmet à qui le retient.

Les trois matrices sont les mêmes pour tous les tokens de la couche : c’est le vecteur d’entrée qui change, pas la recette. Requête et clé ne servent qu’à fabriquer un score et ne voyagent jamais ; seule la valeur circule.

  1. On multiplie la requête d’un token par la clé de chacun des autres, un produit scalaire. Le résultat est grand quand les deux vecteurs pointent dans la même direction : c’est un score d’affinité brut.
  2. On le divise par la racine carrée de la dimension des clés (64 dans le Transformer d’origine). Sans ce garde-fou, les scores enflent avec la taille des vecteurs, le softmax se braque sur un seul mot et l’entraînement cale.
  3. Un softmax convertit les scores en pourcentages qui font 100 % ensemble.
  4. Le token repart avec la moyenne des valeurs de tous les tokens, pondérée par ces pourcentages.

Le tout tient sur une ligne : Attention(Q, K, V) = softmax(QKᵀ/√dₖ) × V.

Un modèle qui génère du texte écrit de gauche à droite. Quand il traite « il », la suite n’existe pas encore, et la lui montrer à l’entraînement reviendrait à lui souffler la réponse. Tous les scores dirigés vers la droite sont donc forcés à zéro avant le softmax : c’est le masque causal. Un token peut en revanche se regarder lui-même. Les modèles de type BERT, qui analysent un texte déjà écrit, n’ont pas ce masque et lisent dans les deux sens.

Un bloc ne calcule pas une attention, mais plusieurs en parallèle : les têtes. Contrairement à ce qu’on lit souvent, chacune ne refait pas le calcul entier : la dimension du vecteur est découpée entre elles. Le même modèle de 2017 avait 8 têtes de 64 dimensions pour un vecteur de 512 ; GPT-3, 96 têtes de 128. Le coût total reste celui d’une seule attention en pleine dimension. Les sorties sont mises bout à bout, puis repassées dans une matrice apprise qui les recombine.

Aucune tête ne reçoit de consigne. La spécialisation qu’on leur observe après coup, l’une suivant l’accord grammatical, l’autre recopiant un nom déjà cité, est apprise, jamais assignée, et bien moins nette que les schémas ne le laissent croire.

Chaque token se compare à tous les autres : le nombre de comparaisons croît avec le carré de la longueur du texte. Doubler le contexte quadruple ce travail, et c’est une des raisons pour lesquelles la fenêtre de contexte a une limite.

Aucune des parades connues ne supprime ce carré. FlashAttention (Dao et al., 2022) ne change ni le résultat ni le nombre d’opérations : il calcule la grille des scores par tuiles au lieu de l’écrire entière en mémoire, et c’est cette mémoire épargnée qui fait tout le gain. L’attention à requêtes groupées (GQA, Ainslie et al., 2023) fait partager un jeu de clés et de valeurs à plusieurs têtes : sur Llama 3 8B, 32 têtes de requête pour 8 jeux, et un cache de génération divisé par quatre.

Le mot « il » doit désigner quelqu’un. Regarde le modèle interroger les mots déjà écrits, les noter, puis trancher.

Comment le modèle sait-il à quoi renvoie « il » ?

Le␣chat␣dort␣sur␣le␣canapé␣parce␣qu'il␣est␣fatigué.

Étape 1/6 Le modèle arrive au mot « il ». Pour continuer la phrase, il doit savoir de qui on parle : du chat, ou du canapé ?

Chiffres illustratifs, choisis pour rendre le mécanisme lisible.

  • Un contrat de trente pages : savoir que « cette clause » renvoie à l’article 4 et pas à l’article 12, c’est de l’attention, et rien d’autre.
  • Ce que montre l’animation a été retrouvé dans un vrai modèle. En 2022, Kevin Wang et ses coauteurs retracent, tête par tête, comment GPT-2 small choisit le bon prénom dans « Quand Jean et Marie sont allés au magasin, Jean a donné un verre à… » : un circuit de 26 têtes, dont trois name movers qui recopient le prénom visé vers la sortie.
  • Une part considérable de l’attention se déverse sur le premier token du texte, sans rapport avec son sens. Plutôt que de corriger ce « puits d’attention », StreamingLLM (Xiao et al., 2023) s’en sert : garder les quatre premiers tokens en permanence suffit à faire tenir un modèle sur un flux sans fin.
  • « L’attention, c’est de la conscience. » Le mot est mal choisi et il piège tout le monde : il n’y a là que des produits scalaires, un softmax et une moyenne pondérée. Appelé « pondération contextuelle », le mécanisme n’aurait fait rêver personne.
  • « L’attention explique tout le modèle. » Elle ne fait que déplacer de l’information d’un token à l’autre. Dans chaque bloc, le petit réseau qui traite ensuite chaque token isolément pèse les deux tiers des paramètres, et c’est là qu’est rangée une bonne part des connaissances (Geva et al., 2021). L’attention transporte, le reste retient.
  • « Une carte d’attention montre ce que le modèle a jugé important. » Elle montre où il a réparti ses 100 %, ce qui n’est pas pareil : le softmax l’oblige à tout distribuer, même quand rien ne l’intéresse. Ce qu’elles prouvent vraiment fait débat depuis 2019.

Voir aussi