La couleur des mots
Il y a longtemps, un jeu télévisé un peu trop cérébral proposait un étrange dialogue entre un candidat et Marie-Ange.
Marie-Ange disait “En 2 briques : France, Paris”.
Et l’autre répondait : “Capitale”.
Marie-Ange appliquait (sans le savoir) un algorithme qui allait voir le jour en 2017. Dans un article intitulé “Attention is all you need”, une équipe de chercheurs de Google présentait une nouvelle architecture de réseaux de neurones qui surclassait l’état de l’art de la traduction automatique de texte.
Dans ce papier, on découvre l’algorithme d’attention, dont le potentiel a largement dépassé le cadre de la traduction. En effet, c’est l'un des principaux composants de GPT-3/4/5. Il joue un rôle essentiel dans la précision et la qualité des résultats de l'algorithme.
La polysémie
Non Marie-Ange, rien à voir avec la polygamie.
Une machine analyse difficilement un texte parce que les mots peuvent avoir plusieurs significations. C’est ça le problème de la polysémie.
Prenez ce mot “Capitale”.
Ce même mot peut être un nom, un adjectif, avec 3 sens différents.
Tout l’enjeu consiste à distinguer les différents sens d’un mot. Pour me représenter ça, j’imagine que le sens d’un mot est une couleur. Par exemple, le mot “capitale” est bleu lorsqu’il parle d’une ville.
Et l’algorithme d’attention décrit par les chercheurs en 2017 permet de calculer la couleur d’un mot.
Calculer la couleur d’un mot
Si je vous demande de deviner le mot manquant dans la phrase suivante :
Paris est la ??? de la France.
Pour trouver la réponse, vous lisez les 6 mots. Ils n’ont pas tous la même importance. “Paris” et “France” comptent davantage que “est”, “la”, “de”.
Voilà toute l’intuition du mécanisme d’attention : pour calculer la couleur d’un mot, il faut analyser l’ensemble de la phrase en accordant + ou - d’attention à certains mots.
Dans la phrase “Paris est la capitale de la France”, les mots “Paris” et “France” ont un peu la même couleur. Genre bleu clair et bleu foncé. Parce que ce sont tous les 2 des noms propres de lieux. Ce ne sont pas les mêmes mots, mais ils sont sémantiquement proches.
Mais quelle serait la couleur du mot “capitale” ? Et comment la rendre différente de la couleur de ce même mot avec d’autres significations ?
L’idée du mécanisme d’attention, c’est de calculer la couleur d'un mot à partir de l’attention qu'il porte aux autres mots.
Comment calculer cette attention que porte un mot à un autre ?
Requête, clé, valeur
On va entraîner un modèle comportant 3 matrices de coefficients.
- La requête (Q, comme Query)
- la clé (K, comme Key)
- la valeur (V, vous savez pourquoi).
La valeur, c’est un peu la couleur des mots de la phrase.
La requête, c’est un peu l’importance globale du mot dans la phrase.
Et la clé, c’est l’importance relative d’un autre mot.
C’est tout. On ajoute deux petites subtilités :
- un opérateur mathématique
softmax
, permettant de convertir une suite de nombres en une autre suite dont la somme vaut 1. - un terme constant calculé comme la racine carrée de la taille des phrases d’entrées.
La formule magique de ChatGPT, pas besoin d’un grimoire.
En pratique, il suffit de 60 lignes de code pour coder ça en Python.
Mais attendez un peu avant de chercher un nom pour concurrencer OpenAI. Car toute la difficulté, c’est de disposer d’assez de textes et de ressources machines pour faire converger un modèle comportant plusieurs milliards de paramètres.
Pourquoi plusieurs milliards ?
De Paris à Madrid
Parce qu’on peut empiler les couches. Comme l’attention consiste à calculer des liens entre une séquence et une autre séquence, on peut enchaîner ce calcul pour augmenter la profondeur d’analyse des liens.
Par exemple, observons les scores d’attention dans cet extrait : “Paris est la capitale de la France.”.
Le modèle détecte assez tôt (dans la 2e couche) que le mot “capitale” dépend majoritairement de l’attention portée aux mots “Paris” et “France”.
OK, sympa mais pas ouf.
Pour corser la difficulté Marie-Ange, ajoutons une seconde phrase “Madrid est celle de l’Espagne”.
Comment déterminer à quoi correspond le mot “celle” dans la seconde phrase ?
Et bien le modèle détecte dans une couche plus profonde (la 8ème!) que “celle” dépend majoritairement de l’attention portée aux mots “la” et “capitale” de la phrase précédente !
Voilà toute la force de ce mécanisme qui parvient (avec suffisamment de textes d’entraînement) à apprendre les liens entre les mots.
On ne comprend pas pourquoi ça fonctionne
Apprendre n’est pas comprendre.
Alors pourquoi un principe aussi simple parvient-il aux extraordinaires résultats de ChatGPT ?
Il s’avère que ce modèle passe particulièrement bien à l’échelle.
Autrement dit, ça fonctionne de mieux en mieux lorsqu’on parvient à augmenter les dimensions des vecteurs, le nombre de couches, et à l’entraîner sur un gigantesque volume de données. Et le matériel a rendu cela possible.
Les milliards de paramètres du modèle constituent une sorte de base de connaissance entre des mots de toutes langues, y compris du code informatique.
Ainsi, le modèle est capable de proposer le mot le plus cohérent qui vient compléter une phrase partielle.
Il enchaîne des mots de même couleur.