La couleur des mots

Hervé Rincent

Hervé Rincent

31 mars 2023

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”.

Un mot, 3 sens.

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 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 :

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.

Lien épais = attention forte

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.


Continuer la lecture

Penser en 2D

1 févr. 2024

2 min read

Penser en 2D

Lire l'article
Mon premier code sur un ordinateur quantique

31 janv. 2023

5 min read

Mon premier code sur un ordinateur quantique

Lire l'article
Inscription à la newsletter

Recevez chaque semaine un article pour réfléchir à votre prochain projet tech/data

gratuit, sans spam, désinscription en 1 clic

Merci ! Regardez dans botre boite mail. Un lien de confirmation n'attend plus que votre clic.
Arghh il semble compliqué de vous ajouter à la liste de diffusion. Et si vous m'envoyiez un mail directement à contact@camilab.co ?