Comment un modèle lit l'ensemble sans peser chaque mot contre tous les autres.

SRC·32 Source
Il pèse chaque mot contre tous les autres. Presque tout est gaspillé.

Il pèse chaque mot contre tous les autres. Presque tout est gaspillé.

Tout le tour de l'attention, c'est que chaque mot peut regarder tous les autres. Magnifique — et brutal. La facture croît comme le carré de la longueur : doublez le texte, quadruplez le travail. Comme câbler une ville maison par maison : une ligne distincte entre chaque paire, un ciel saturé de câbles entrecroisés — et presque aucun ne sert jamais. La grille est presque vide. Alors pourquoi tout payer ?
Presque toute cette énorme grille ne porte rien.

Presque toute cette énorme grille ne porte rien.

cells=n2,usefulnk,nkn2=kn0  (kn)\text{cells}=n^2,\quad \text{useful}\approx n\,k,\quad \frac{n\,k}{n^2}=\frac{k}{n}\to 0\ \ (k\ll n)
Regardez où atterrit vraiment l'attention d'un mot : quelques voisins proches et une poignée d'ancres lointaines. Le reste de la ligne est presque nul. Comme les sentiers usés à travers une pelouse : de toutes les façons de traverser, la foule n'en use que quelques-unes — les coins restent vierges. Sur les liens possibles, le poids réel tient dans une mince bande — et cette bande, k⁄n, ne fait que rétrécir à mesure que le texte grandit. Quelles paires peut-on sauter sans risque ?
Première échappée : ne regardez que vos voisins.

Première échappée : ne regardez que vos voisins.

Attn(qi)=softmax ⁣(qiKiw:id)Viw:i  (cost O(nw)),reach after L layersLw\text{Attn}(q_i)=\operatorname{softmax}\!\Big(\tfrac{q_i K_{i-w:i}^{\top}}{\sqrt d}\Big)V_{i-w:i}\ \ (\text{cost }O(nw)),\qquad \text{reach after }L\text{ layers}\approx L\,w
La coupe la plus simple : que chaque mot ne s'occupe que d'une fenêtre de mots proches — les w derniers, pas les n entiers. Le coût passe d'un carré à une droite. Comme une ola dans un stade : chacun ne regarde que ses deux voisins, et pourtant la vague balaie tout le stade. Empilez quelques couches et la portée s'étend — après L d'entre elles, la vue d'un mot atteint environ L·w.
Mais les mots éloignés doivent quand même se rencontrer.

Mais les mots éloignés doivent quand même se rencontrer.

cost=O ⁣(n(w+g)),gn;any pair connects in 2 hops via a global token\text{cost}=O\!\big(n(w+g)\big),\quad g\ll n;\qquad \text{any pair connects in }\le 2\text{ hops via a global token}
Voisins seulement couperait tout fil long. La parade : garder quelques ancres globales — des tokens qui voient tout le monde et que tout le monde voit. Désormais deux mots éloignés se relient via une ancre en deux courts sauts. Comme un aéroport pivot : les petites villes ne desservent pas chaque autre ville — faites-les transiter par quelques plateformes et tout point en atteint un autre. La grille reste quasi vide ; le tout continue de se parler.
L'échappée plus audacieuse : ne jamais construire la grille.

L'échappée plus audacieuse : ne jamais construire la grille.

Attn(qi)=ϕ(qi)jϕ(kj)vjϕ(qi)jϕ(kj),(QK)V: O(n2d)  Q(KV): O(nd2)\operatorname{Attn}(q_i)=\dfrac{\phi(q_i)^{\top}\sum_j \phi(k_j)\,v_j^{\top}}{\phi(q_i)^{\top}\sum_j \phi(k_j)}\,,\qquad (QK^{\top})V:\ O(n^2d)\ \to\ Q(K^{\top}V):\ O(nd^2)
L'attention éparse trace encore une grille fine. L'attention linéaire refuse d'en tracer une. Échangez l'exponentielle de softmax contre une simple carte de caractéristiques, et l'ordre de la multiplication se libère : au lieu de requêtes-fois-clés d'abord, repliez toutes les clés et valeurs en un petit résumé cumulé, puis laissez chaque requête le lire. Comme la confluence d'une rivière : au lieu que chaque village canalise vers chaque source, toutes les sources nourrissent une seule rivière et chaque village y puise. Le carré devient droite.
Mais voici le hic, en toute honnêteté.

Mais voici le hic, en toute honnêteté.

exp ⁣(qk/d)    ϕ(q)ϕ(k)olinosoftmax(exact: o=oexact)\exp\!\big(q^{\top}k/\sqrt d\big)\;\approx\;\phi(q)^{\top}\phi(k)\quad\Rightarrow\quad o_{\text{lin}}\neq o_{\text{softmax}}\quad(\text{exact: }o=o_{\text{exact}})
Rien de tout cela n'est gratuit. L'attention éparse parie que les paires écartées ne comptaient pas ; l'attention linéaire échange le projecteur net de softmax contre un flou plus doux. Toutes deux rendent une réponse un peu différente de la version complète — une approximation, pas une copie. Comme jauger un troupeau d'un coup d'œil : un balayage de l'œil donne un compte rapide et proche — mais c'est une estimation, pas le décompte tête par tête. Le pic de l'exponentielle ne tient pas exactement dans une petite carte fixe ; les accélérations exactes, elles, ne font que déplacer moins de mémoire et ne changent jamais la réponse.
La récompense : la longueur cesse d'être un mur.

La récompense : la longueur cesse d'être un mur.

O(n2d)  O(nwd)sparse or O(nd2)linear,cost(2n)cost(n)=2O(n^2d)\ \longrightarrow\ \underbrace{O(nwd)}_{\text{sparse}}\ \text{or}\ \underbrace{O(nd^2)}_{\text{linear}},\qquad \frac{\text{cost}(2n)}{\text{cost}(n)}=2
Faites le compte. La facture complète croissait comme le carré ; maintenant elle croît comme une droite. Doublez le texte et vous doublez le travail — sans le quadrupler. Comme des lampadaires le long d'une route : ajoutez un kilomètre, ajoutez quelques lampes — le coût monte d'un pas régulier à la fois, et la route peut filer jusqu'à l'horizon. Cette droite, c'est ce qui rend enfin abordable un très long contexte — des livres entiers, des heures de parole.
🌱 Que pourrait ignorer un esprit sans risque — et comprendre quand même ?

🌱 Que pourrait ignorer un esprit sans risque — et comprendre quand même ?

Vous ne pesez pas chaque mot de cette phrase contre tous les autres. Vous vous appuyez sur les quelques-uns qui comptent et laissez le reste se brouiller — et pourtant vous saisissez l'ensemble. Comme une fenêtre à l'aube : seule la crête la plus proche est nette, les chaînes lointaines se dissolvent dans la brume, et pourtant vous embrassez toute la vallée. Peut-être que la grille complète n'a jamais été l'essentiel. Peut-être que comprendre fut toujours surtout local — avec quelques longs fils jetés à travers l'obscurité.
touchez →balayez ↑ pour approfondirbalayez ↓ pour quitter