Comment un modèle décide où regarder.

SRC·01 Source
Toute l'astuce : chaque mot peut regarder tous les autres.

Toute l'astuce : chaque mot peut regarder tous les autres.

Tu lis une phrase un mot à la fois. Un modèle, non — il jette tous les mots sur la table d'un coup et laisse chacun demander aux autres : qui ici compte pour moi ? Ce geste-là, c'est l'attention, et c'est le moteur sous presque tout : chat, code, images. Le reste, c'est juste comment un mot pose la question.
Un mot ne veut rien dire seul — seulement en contexte.

Un mot ne veut rien dire seul — seulement en contexte.

« Bank » — la rivière ou l'argent ? Impossible à dire avec le mot seul. Le modèle garde chaque mot comme un vecteur, un flou de tous les sens qu'il a jamais eus ; pour choisir le bon, il regarde ses voisins. Comme dans une fête bruyante : tu n'entends pas cent voix à égalité — tu te cales sur celle qui compte et tu laisses le reste devenir flou.
Chaque mot sort trois choses : une envie, une offre, un contenu.

Chaque mot sort trois choses : une envie, une offre, un contenu.

Q=xWQ,K=xWK,V=xWVQ = xW_Q,\quad K = xW_K,\quad V = xW_V
Query = ce que je cherche. Key = de quoi je parle. Value = ce que je donne si tu me choisis. Une barre de recherche, des étiquettes de rayon, et ce qu'il y a vraiment dans la boîte. Chaque mot fouille la salle avec sa Query et lit les Keys de tous les autres. Comme un vol d'étourneaux : aucun ne suit toute la nuée — chacun lit juste ses voisins et bouge.
À quel point A doit s'intéresser à B ? Multiplie leurs vecteurs.

À quel point A doit s'intéresser à B ? Multiplie leurs vecteurs.

scores=QK\text{scores} = QK^{\top}
Prends la Query de A et la Key de B, et multiplie — un produit scalaire, un seul nombre, grand quand ils s'alignent. Fais-le pour chaque paire, puis softmax chaque ligne pour que les scores deviennent des poids qui font 1 : un budget de projecteur fixe que chaque mot dépense. Comme un seul spot de scène : 80 % sur la vedette, un soupçon sur deux autres, rien sur le reste.
Un seul piège : divise par √d, sinon ça s'étrangle.

Un seul piège : divise par √d, sinon ça s'étrangle.

weights=softmax ⁣(QKd)\text{weights} = \mathrm{softmax}\!\left(\dfrac{QK^{\top}}{\sqrt{d}}\right)
Des vecteurs longs rendent ces produits scalaires énormes, et le softmax de nombres énormes bascule en tout-ou-rien — un poids ≈ 1, le reste ≈ 0. Ça aplatit le gradient et l'apprentissage cale. La solution est presque trop simple : réduire par √d d'abord. Comme un haut-parleur poussé au-delà de sa limite — il ne devient pas plus fort, il sature. Baisse le gain et les détails reviennent.
Le nouveau sens d'un mot, c'est un mélange de ce à quoi il a prêté attention.

Le nouveau sens d'un mot, c'est un mélange de ce à quoi il a prêté attention.

Attention(Q,K,V)=softmax ⁣(QKd)V\mathrm{Attention}(Q,K,V)=\mathrm{softmax}\!\left(\dfrac{QK^{\top}}{\sqrt{d}}\right)V
Dépense le projecteur : pondère la Value de chaque mot selon l'attention qu'il a reçue, et additionne le tout. Maintenant le mot n'est plus juste lui-même — c'est un mélange des mots qui lui ont importé. « bank » à côté de « river » n'a rien à voir avec « bank » à côté de « money ». La ligne ci-dessous, c'est ça, le Transformer — pas une image, la chose elle-même. Comme mélanger de la peinture : plusieurs pigments tirés vers la couleur exacte qu'il faut au coup de pinceau.
Tout arrive d'un coup — et l'attention n'a aucune idée de l'ordre des choses.

Tout arrive d'un coup — et l'attention n'a aucune idée de l'ordre des choses.

Un : chaque Query frappe chaque Key en une seule multiplication de matrices — massivement parallèle, et c'est exactement pour ça que cette architecture dévore les GPU et que l'échelle a explosé. Deux : mélange les mots et le calcul rend la même réponse. L'attention voit un sac de mots, pas une séquence — l'ordre est rajouté à part. Comme un puzzle renversé : toutes les pièces, aucun ordre ; la seule raison pour laquelle il distingue « le chien mord l'homme » de « l'homme mord le chien », c'est une minuscule coordonnée écrite d'abord sur chaque pièce.
🌱 Si elle lit un sac de mots avec des coordonnées agrafées dessus, le modèle <em>lit</em>-il vraiment ?

🌱 Si elle lit un sac de mots avec des coordonnées agrafées dessus, le modèle lit-il vraiment ?

Tu traverses une phrase dans l'ordre, chaque mot te tirant vers le suivant. Un Transformer voit le tout d'un coup et reconstruit l'ordre à partir d'une étiquette de position. C'est ça, le super-pouvoir — le mot 1 peut parler au mot 1 000 aussi facilement qu'au mot 2. C'est aussi la faille : rien à l'intérieur n'impose l'ordre, alors plus le texte est long, plus ce petit sens de la place rajouté doit en porter. Donc si l'ordre est la seule chose que l'attention ne peut pas sentir d'elle-même — le prochain bond n'est peut-être pas un modèle plus gros. C'est une meilleure façon de lui dire où il en est.
touchez →balayez ↑ pour approfondirbalayez ↓ pour quitter