Loading
Choisir la tête la plus confiante sélectionnait une tête positionnelle à chaque fois. Elle rapportait « it → was, 0,962 » — la réponse qu'elle donne pour chaque mot de chaque phrase.
Ouvrir l'instrumentLa première version de l'interface choisissait la tête à la ligne la plus piquée et vous montrait celle-là. Cela semblait évident : parmi seize réponses possibles, montrer la plus assurée.
Elle rapportait it → was, 0,962.
Ce nombre est énorme. Il est aussi totalement sans valeur, car cette tête répond « le mot juste après » pour chaque mot de chaque phrase que vous pourriez taper. Elle n'était pas confiante à propos de it. Elle est confiante à propos de tout, de la même manière, toujours.
L'idée décisive : confiance et informativité sont deux axes distincts. La tête la plus certaine d'un transformeur est généralement celle qui a cessé de prêter attention à la question.
Seize têtes — quatre couches, quatre chacune — entraînées sans consigne de répartition du travail et sans pénalité en cas de doublon. Elles se répartissent le travail quand même.
Certaines deviennent positionnelles : leur poids se pose sur le mot voisin, quel que soit le mot interrogé. D'autres restent guidées par le contenu : leur réponse bouge quand la question bouge.
On sépare les deux avec une seule statistique. Pour chaque mot de contenu, additionnez le poids que la tête place sur le mot juste avant et sur le mot juste après, puis moyennez sur la phrase. Appelons cela le biais d'adjacence. Une tête qui répond toujours « suivant » approche 1. Une tête dont la réponse dépend de la requête reste basse.
Le biais d'adjacence est le poids moyen qu'une tête place sur les mots immédiatement voisins, sur toutes les lignes de contenu. Au-delà de 0,35, une tête répond « le mot suivant » quelle que soit la question : l'instrument l'écarte alors.
Mesurées sur cinq phrases, les seize têtes se séparent nettement, et l'écart entre les deux populations est assez large pour y poser un seuil. Au-delà de 0,35, une tête est considérée comme positionnelle et écartée du choix de ce qui sera affiché — onze restent en lice sur les phrases ayant servi à fixer le seuil.
Ce décompte n'est pas figé, et la figure ci-dessus montre pourquoi : le biais d'adjacence d'une tête se mesure sur la phrase qu'elle a devant elle, si bien qu'une tête limite peut franchir la ligne sur une phrase et pas sur une autre. Sur « The keys to the cabinet are on the table », six têtes dépassent 0,35 plutôt que cinq, car L2H3 y atteint 0,434. Le seuil est une propriété du modèle ; savoir quelles têtes le dépassent est une propriété du modèle et de la phrase.
Ce nombre n'est pas une question de goût. La dispersion mesurée présente une bande vide entre la plus basse des têtes positionnelles et la plus haute des têtes de contenu, et 0,35 s'y loge. Une statistique instable ferait vaciller la tête choisie d'une phrase à l'autre sans raison visible — c'est pourquoi le biais d'adjacence l'a emporté sur l'alternative plus évidente : compter la fréquence d'un même décalage d'argmax. Sur une phrase de huit mots, ce compte varie de quinze points ; le biais d'adjacence bouge de deux à six.
Parcourez les mots. Une tête positionnelle donne la même réponse structurelle à chaque fois — c'est précisément pourquoi la confiance est un mauvais critère de choix. La réponse d'une tête distante dépend du mot interrogé.
Parcourez les mots. La réponse de la tête positionnelle avance avec vous à décalage constant — elle décrit la géométrie de la phrase, pas son sens. La réponse de la tête distante saute d'un mot à l'autre, parce qu'elle répond réellement à ce que vous avez demandé.
Les deux lignes sont de l'attention réelle. Les deux somment à 1. L'une informe sur le mot ciblé, l'autre non, et fixer les poids ne vous dira jamais laquelle est laquelle. Il faut la statistique.
Les têtes positionnelles hors course, les mêmes phrases ont commencé à produire des réponses vérifiables :
| Requête | Réponse | Poids |
|---|---|---|
are | keys | 0,499 |
who | Students | 0,700 |
that | Birds | 0,860 |
suitcase | trophy | 0,612 |
are → keys, c'est l'accord sujet-verbe par-dessus quatre mots. that → Birds, c'est un pronom relatif qui retrouve son antécédent. Ces nombres sont plus faibles que 0,962, et ils valent infiniment plus, car ils varient avec la phrase d'une manière que la lecture permet de vérifier.
L'échange est inconfortable mais juste : un petit nombre qui signifie quelque chose vaut mieux qu'un grand nombre qui ne signifie rien. Une interface optimisant les poids impressionnants aurait gardé les têtes positionnelles : plus assurée en apparence, et disant beaucoup moins.
Écarter cinq têtes est un choix. Il est divulgué dans l'interface, il est défendable, mais on montre au visiteur l'une des onze réponses restantes — sélectionnée par une règle que j'ai écrite, avec un seuil fixé d'après des mesures sur cinq phrases.
On est loin de « voici ce que pense le modèle ». On est plus près de : voici la tête qui dit la chose la plus spécifique sur le mot que vous avez cliqué, parmi celles qui ne récitent pas simplement l'ordre des mots.
Nommer les têtes a aidé plus que prévu. « Couche 3 · Tête 2 » ne dit rien. « Couche 3 · Tête 2 · distante » énonce une affirmation vérifiable en cliquant sur les mots pour voir si la réponse reste en place.
D'où la question suivante : s'il y a seize réponses, pourquoi ne pas simplement les moyenner ? Une technique standard fait exactement cela, elle est mathématiquement correcte, et sur un modèle à quatre couches elle est presque inutile. La partie 7 explique pourquoi.
Ensuite : exécuter BERT dans un navigateur sans le moindre moteur d'inférence.
Plus à lire
Trois matrices, un produit scalaire, un softmax. La ligne somme toujours à 1 — une contrainte que le modèle doit satisfaire, pas un résultat qu'il rapporte.
L'int8 naïf plafonnait la parité d'attention à 2,97e-2 — trente fois pire que la barre. Où dépenser la précision : voilà toute l'ingénierie.
Neuf entrées du vocabulaire ne survivaient pas à la frappe. Le bug est resté invisible des semaines : la sortie semblait parfaitement raisonnable.