Aller au contenu principal

Mécanisme d'attention

Supposons que deux informations soient représentées par les vecteurs suivants :

v1=[2,0],v2=[0,4].\mathbf{v}_1=[2,0],\quad \mathbf{v}_2=[0,4].

Prendre la moitié de chacune puis les additionner donne

12[2,0]+12[0,4]=[1,2].\tfrac12[2,0]+\tfrac12[0,4]=[1,2].

Quelle proportion prendre de chacune ? L’attention calcule ces poids à partir du contenu, au lieu de les fixer à une moitié.

Cette page explique le mélange pondéré Q/K/V, les masques et la normalisation. Pour l’origine des vecteurs, voir la tokenisation et les représentations ; pour assembler le réseau, poursuivre avec Transformer. Les modèles multimodaux expliquent la connexion entre patches visuels et texte.

Quel poids attribuer à chaque vecteur ?​

Les vecteurs à mélanger sont appelés valeurs (values). Pour choisir leurs poids, introduisons une requête (query), le vecteur utilisé pour rechercher l’information.

Chaque valeur possède une clé (key), que l’on compare à la requête pour calculer un score de correspondance. Prenons ici

q=[1,0],k1=[1,0],k2=[0,1].\mathbf{q}=[1,0],\quad \mathbf{k}_1=[1,0],\quad \mathbf{k}_2=[0,1].

Calculons d’abord les poids avec la requête et les clés seulement. Les produits scalaires valent q⊤k1=1\mathbf q^\top\mathbf k_1=1 et q⊤k2=0\mathbf q^\top\mathbf k_2=0. Chaque clé a deux composantes. La division par 2\sqrt2, racine carrée de cette dimension, donne les scores [1/2,0]≈[0.707,0][1/\sqrt2,0]\approx[0.707,0].

Softmax transforme ces scores en poids positifs ou nuls dont la somme vaut un : il prend leurs exponentielles et divise par leur somme.

α1=e1/2e1/2+1≈0.67,α2=1e1/2+1≈0.33.\alpha_1=\frac{e^{1/\sqrt2}}{e^{1/\sqrt2}+1}\approx0.67, \qquad \alpha_2=\frac{1}{e^{1/\sqrt2}+1}\approx0.33.

Mélangeons ensuite les valeurs : chaque poids multiplie la valeur de la même position. Avec les poids arrondis, la sortie est

0.67[2,0]+0.33[0,4]≈[1.34,1.32].0.67[2,0]+0.33[0,4]\approx[1.34,1.32].

La première clé correspond mieux, mais la sortie contient toujours la seconde valeur. La température, les écarts de score, les clés en double et les masques modifient le mélange. « Porter attention à une position » n’est généralement pas un fait binaire.

Modifiez une composante de q\mathbf q ci-dessous ; les clés et les valeurs restent fixes. Pour q=[0,0]\mathbf q=[0,0], les deux scores sont nuls, les poids valent [1/2,1/2][1/2,1/2] et la sortie [1,2][1,2]. Pour [0,1][0,1], les poids s’inversent et la sortie vaut environ [0.66,2.68][0.66,2.68]. Les scores déterminent les proportions ; les valeurs déterminent ce qui est mélangé.

xyv₁ = [2, 0]v₂ = [0, 4]O

k1 = [1, 0]Score 0.707

Poids 67.0%

k2 = [0, 1]Score 0.000

Poids 33.0%

Sortie O: [1.340, 1.321]Chaque score vaut q · kᵢ / √2 ; softmax donne deux poids dont la somme vaut 1. O = w₁v₁ + w₂v₂ est le mélange pondéré des deux vecteurs de valeurs. Modifier q déplace O sur le segment entre v₁ et v₂.

Pour un nombre quelconque de paires clé/valeur, ce calcul s’écrit

Attention⁡(q,K,V)=∑iαivi,αi=exp⁡a(q,ki)∑jexp⁡a(q,kj).\operatorname{Attention}(\mathbf{q},K,V)=\sum_i\alpha_i\mathbf{v}_i, \qquad \alpha_i=\frac{\exp a(\mathbf{q},\mathbf{k}_i)}{\sum_j\exp a(\mathbf{q},\mathbf{k}_j)}.

La requête, la clé et la valeur sont des rôles calculatoires, et non des significations intrinsèques. Ces vecteurs proviennent généralement de différentes projections apprises des entrées ; les valeurs ne sont pas nécessairement égales aux clés. Ce calcul des poids à partir du contenu, suivi du mélange des valeurs, est une opération différentiable appelée adressage par le contenu.

Scores​

L'attention additive utilise un petit réseau appris :

a(q,k)=v⊤tanh⁡(Wqq+Wkk).a(\mathbf{q},\mathbf{k})=\mathbf{v}^{\top}\tanh(W_q\mathbf{q}+W_k\mathbf{k}).

L'attention par produit scalaire mis à l'échelle (scaled dot-product attention) utilise

a(q,k)=q⊤kdk.a(\mathbf{q},\mathbf{k})=\frac{\mathbf{q}^{\top}\mathbf{k}}{\sqrt{d_k}}.

Si les coordonnées de la requête et de la clé sont mutuellement indépendantes, de moyenne nulle et de variance unitaire, le produit scalaire non redimensionné a une variance dkd_k et un écart-type dk\sqrt{d_k}, ce qui peut saturer le softmax. La mise à l'échelle est un choix de conception adapté à ce score, et non une loi générale pour toute attention.

Forme matricielle et masques​

Pour Q∈Rnq×dkQ\in\mathbb{R}^{n_q\times d_k}, K∈Rnk×dkK\in\mathbb{R}^{n_k\times d_k} et V∈Rnk×dvV\in\mathbb{R}^{n_k\times d_v} :

A=softmax⁡ ⁣(QK⊤dk+M),O=AV.A=\operatorname{softmax}\!\left(\frac{QK^{\top}}{\sqrt{d_k}}+M\right), \qquad O=AV.

AA a pour dimensions nq×nkn_q\times n_k et OO a pour dimensions nq×dvn_q\times d_v. Les masques s’appliquent avant Softmax :

  • Les masques de padding excluent les clés de remplissage.
  • Les masques causaux excluent les positions futures.
  • Les masques structurels limitent les connexions locales, de graphe ou par blocs.

Avec un masque additif −∞-\infty, une ligne entièrement masquée contient uniquement des logits −∞-\infty : le softmax ordinaire n’y définit aucune distribution de probabilités. Consultez le comportement de l’API choisie et traitez explicitement ces lignes ; aucune valeur de retour n’est universelle. Modifier un token masqué ne doit pas changer une sortie non masquée si les représentations Q/K/V autorisées restent fixes.

Normaliser sur les clés, pas sur les requêtes​

Le softmax de AA agit séparément sur chaque ligne, donc sur l’axe des clés. Pour un masque additif, Mij=0M_{ij}=0 autorise une paire et −∞-\infty l’interdit. Dans une séquence causale de trois positions, la première ligne voit la première clé, la deuxième les deux premières et la troisième les trois. Si tous les scores autorisés sont nuls, les lignes valent [1,0,0][1,0,0], [1/2,1/2,0][1/2,1/2,0] et [1/3,1/3,1/3][1/3,1/3,1/3]. La diagonale est autorisée quand l’entrée à cette position prédit le token suivant. C’est la convention du Transformer original.

Un masque de padding sur les clés ne supprime pas automatiquement les sorties des requêtes de padding : les exclure de la perte ou de l’agrégation ultérieure. Les conventions booléennes varient selon les API ; vérifier si True signifie autorisé ou interdit. Le test d’invariance au token masqué suppose que Q/K/V aux positions autorisées restent fixes : aucun calcul en amont ne doit déjà y avoir mélangé le contenu masqué.

Auto-attention, attention croisée et multi-têtes​

  • Auto-attention (self-attention) : Q/K/V proviennent du même ensemble de représentations, généralement par des projections apprises distinctes.
  • Attention croisée (cross-attention) : Les requêtes viennent d’un côté, les clés et valeurs de l’autre.
  • Attention multi-têtes : Plusieurs sous-espaces projetés calculent l’attention en parallèle ; leurs sorties sont ensuite concaténées et projetées.

Les têtes fournissent plusieurs canaux de calcul, sans garantir que chacun corresponde à un concept humain stable comme la syntaxe ou la coréférence. Elles peuvent être redondantes ou changer après reparamétrisation tout en conservant des sorties proches.

L’attention de style Bahdanau a d’abord permis à chaque étape du décodeur RNN de construire un contexte différent à partir de plusieurs états de l’encodeur ; Luong a comparé les formes globales et locales. Le Transformer a ensuite fait de l’auto-attention l’une des principales opérations au sein d’une couche. L’attention n’a pas commencé avec le Transformer.

Différentes conceptions d'efficacité pour différents problèmes​

L’auto-attention dense forme n×nn\times n scores ; à dimensions de tête fixes, le temps et la mémoire intermédiaire de l’implémentation naïve croissent quadratiquement avec la longueur. Les variantes ci-dessous ciblent des coûts différents.

ConceptionModificationNe résout pas automatiquement
FlashAttentionattention exacte calculée par blocs avec un kernel adapté aux échanges mémoire (IO-aware), sans stocker toute la matrice intermédiairel'arithmétique reste généralement quadratique ; dépendance au kernel et au matériel
MQAles têtes de requête partagent une seule tête K/Vperte possible de capacité ou de qualité ; entraînement et compatibilité à vérifier
GQAdes groupes de têtes de requête partagent un ensemble plus restreint de têtes K/Vcompromis cache/qualité, pas une nouvelle fonction de score
fenêtre glissante / creuse (sparse)restreint les positions atteignablesles positions omises nécessitent des chemins inter-couches
attention linéaire / à base de noyaux (kernel)réordonne ou approxime l'agrégationla normalisation, le comportement numérique et la qualité peuvent différer de Softmax

MQA/GQA réduisent surtout le stockage et le trafic mémoire du cache KV autorégressif, sans réduire le nombre de têtes de requête. Ces variantes changent le partage, pas la fonction de score ; leurs noms seuls ne garantissent ni qualité, ni adéquation à l’entraînement, ni compatibilité. Rapportez le nombre de têtes de requête, de têtes K/V, la dimension par tête, la fenêtre, le type de données (dtype) et le kernel plutôt que de dire simplement « attention efficace ». Les RNNs/SSMs peuvent convenir au streaming à état fixe ; la convolution peut économiser données et calcul lorsque la localité est forte. L’attention n’est pas la réponse par défaut à toutes les relations.

Frontière d'interprétation​

Poids d’attention de l’anglais vers le français : les cellules claires ont plus de poids ; zone se concentre sur Area malgré l’ordre différent.Voir l’image en grand

Lire une ligne horizontalement : elle donne les poids des mots anglais lors de la génération d’un mot français. Le blanc vaut 1, le noir 0. Autour de European Economic Area, les cellules claires quittent la diagonale : zone vise Area, puis économique et européenne remontent la phrase anglaise. Il s’agit d’attention additive dans un encodeur–décodeur récurrent, pas d’une tête d’auto-attention Transformer. Cet alignement appris ne dispense pas des vérifications causales ci-dessous.

Les poids d’attention décrivent les coefficients de routage d’une passe avant donnée, mais ne suffisent généralement pas à établir une importance causale :

  • Des poids différents peuvent produire des sorties similaires.
  • Les valeurs et les couches ultérieures modifient l’influence finale.
  • Les gradients, les remplacements contrefactuels et les interventions peuvent donner des classements différents.
  • Une distribution très concentrée ou très plate ne signifie pas automatiquement un bon ou un mauvais comportement.

« Attention is not Explanation » démontre les défaillances de l'interprétation directe ; une analyse concurrente soutient que l'attention peut néanmoins être informative sous des diagnostics et des tests contrefactuels définis. La conclusion défendable est que les poids peuvent constituer des indices, mais qu'ils doivent être associés à des suppressions, remplacements ou autres interventions, ainsi qu’à une validation sur la tâche. Ils ne constituent pas à eux seuls une explication causale.

Liens entre les explications​

La normalisation utilise la même opération que la régression softmax, mais les poids mélangent ici les valeurs au lieu de prédire des classes. La note Transformer assemble attention, information de position, connexions résiduelles, normalisation et couches feed-forward. Les variantes d’attention et le cache KV reprennent ces formes Q/K/V pour expliquer l’inférence autorégressive et son coût mémoire.

Cette description en Q/K/V est orientée vers le NLP et la pratique des Transformers. La vision, les ensembles, les graphes et les formulations antérieures à base de noyaux statistiques ne sont abordés qu'à la marge.

Explorer les liensOuvrir le réseau