Voilà un billet en français sur un sujet qui m'intéresse particulièrement en
ce moment.
Alors que les bébés acquièrent la capacité de comprendre le langage très
rapidement, cette aptitude est difficile pour les ordinateurs. Malgré ces
difficultés, les progrès récents en intelligence artificielle ont permis
d’étendre les possibilités de compréhension automatique du langage par les
ordinateurs. Comprendre le langage, s’il est exprimé sous la forme d’une
séquence de mots, revient à combiner ces mots pour en déduire un sens. C’est
un problème difficile pour plusieurs raisons. Le langage est ambigu, un même
mot ayant plusieurs sens selon le contexte; il est compositionnel, c’est à
dire que le sens d’une séquence de mot peut, avec un degré variable, être
déterminé en combinant le sens des mots qui la compose; et comprendre demande
souvent une connaissance du monde dans lequel nous vivions. La compréhension
automatique du langage fait partie du traitement automatique du langage (TAL),
un sous-domaine de l’intelligence artificielle, et permet des applications
comme la génération automatique de réponses à des questions.
Être capable de répondre à des questions nécessite non seulement de comprendre
la formulation d’une question, mais aussi de pouvoir mobiliser les
connaissances nécessaires pour y répondre correctement. Ces connaissances
peuvent être explicitées sous la forme d’une base de données ou implicites,
disponibles dans des textes sur le sujet. Dans les deux cas, le défi est de
choisir parmi toutes les informations disponibles celles qui sont pertinentes,
et de raisonner à partir de ces informations pour construire la réponse.
Les progrès récents en intelligence artificielle ont montré au grand public le
potentiel des systèmes de compréhension et de génération du langage naturel à
travers les grands modèles de langages comme ChatGPT, mais les travaux
associés ont commencé il y a plus d’un siècle. En 1912, Andrey Markov, à
l’aide d’un modèle statistique des séquences d’événements, calculait la
probabilité d’un texte à partir des paires de morphèmes (une consonne et une
voyelle consécutives) qu’il contient. Ces travaux ont été repris plus tard par
Claude Shannon pour générer des textes en tirant aléatoirement un mot étant
donné le mot qui le précède, à partir de probabilités que deux mots se suivent
calculées sur des textes.
La méthode mise au point par Shannon, fondatrice des modèles de langages
actuels, permet à la fois de comprendre et de générer du texte. Les modèles de
langage reposent sur l’apprentissage automatique afin d’associer à un contexte
(par exemple le début d’une phrase ou le début d’un texte), la probabilité du
mot suivant. Les réseaux de neurones les plus efficaces pour cette tâche sont
actuellement les “transformers” qui permettent de projeter la représentation
des mots dans un espace vectoriel de grande taille, en fonction des mots avec
lesquels ils apparaissent dans le texte. Ils font appel à un “mécanisme
d’attention” qui met les mots en relation deux à deux et construit une
nouvelle représentation pour chaque position dans le texte, qui peut elle-même
être mise en relation avec les représentations à d’autres positions, créant
petit à petit des abstractions. Ce processus aboutit au calcul de la
probabilité de chaque mot pouvant suivre un contexte, et permet donc de
générer du texte à la manière de Shannon.
Lors de l’entraînement des modèles de langages, de grandes quantités de textes
collectées depuis Internet servent à trouver les paramètres du réseau de
neurones en minimisant la différence entre les textes d’apprentissage et les
prédictions faites par le modèle. Il en résulte que ces modèles ne sont
capables de générer que des textes qui ressemblent à leurs données
d’entraînement. Il existe sur Internet des foires aux questions (FAQ) et
autres contenus similaires, ce qui fait que si l’on utilise une question comme
début de texte, la probabilité de générer une réponse à cette question est non
nulle, et pourrait même être grande si l’entraînement était réalisé sur de
grandes quantités de FAQ.
Les avancées récentes ont donc consisté à continuer l’entraînement des modèles
(les affiner) sur des paires question / réponse pour favoriser ce type de
génération. Ce qui est intéressant c’est qu’un modèle ayant engrangé des
connaissances variées lors de son entraînement initial, devient grâce à ce
processus capable de répondre à des questions sur lesquelles il n’a pas été
entraîné, et donc de capitaliser sur les connaissances acquises. Ce processus
fonctionne pour les questions mais aussi pour d’autres tâches et les
recherches actuelles ont montré que si l’on augmente fortement le nombre de
paramètres apprenables (en quelques sortes la mémoire) et la quantités de
données d’apprentissage, la diversité des “tâches” linguistiques qu’un modèle
de langage peut accomplir après avoir vu un nombre relativement réduit de
tâches est de plus en plus grande : traduire, résumer un texte, générer des
emails, etc.
Les grands modèles de langage sont versatiles, mais contrôler leur
comportement pour faire une tâche particulière et garantir la stabilité des
textes qu’ils génèrent reste difficile. On peut effectuer ce contrôle grâce à
deux méthodes : l’amorçage (prompting) et l’affinage (finetuning). L’amorçage
consiste à trouver une formulation de la tâche donnée comme début de texte qui
pousse le modèle à générer des mots qui y répondent. Cette méthode est peu
coûteuse mais repose surtout sur le savoir-faire et produit des résultats
variables. L’affinage consiste, lui, à donner des exemples de la tâche et
modifier les paramètres du modèle pour qu’il génère la réponse associée.
Contrairement à l’amorçage, il offre de meilleurs résultats mais le coût
associé à l’apprentissage n’est pas raisonnable.
En effet, entraîner des modèles de langage à large échelle nécessite des
ressources de calcul colossales : plusieurs milliers de serveurs de calcul GPU
pendant plusieurs mois. Les recherches actuelles s’orientent donc vers plus de
frugalité et des solutions commencent à apparaître pour modifier un modèle de
langage plus efficacement. La méthode LoRA, par exemple, considère que la
modification faite à chaque matrice de paramètres d’un réseau de neurones peut
être approximée par une matrice de faible rang, elle-même constituée de très
peu de paramètres, réduisant la quantité de mémoire requise lors de
l’apprentissage et garantissant de conserver les connaissances détaillées
capturées par le modèle initial.
Les grands modèles de langage permettent donc de répondre automatiquement à des questions.
La méthode n’est toutefois pas parfaite et repose sur les connaissances
implicites contenues dans les textes d’apprentissages issues d’Internet, avec
leur lot d’erreurs, de désinformations, de biais, et de contenus illicites ou
répréhensibles. Contrôler l’effet de la qualité des données sur les modèles de
langage, leur donner accès à des connaissances explicites comme des manuels de
médecine, ou encore améliorer leur efficacité, sont des pistes de recherche
importantes qu’il reste à explorer. Au-delà de ces améliorations, les méthodes
d’intelligence artificielle peuvent avoir un profond impact sur la société et
posent des questions importantes relatives à l’emploi, la justice et
l’énergie, des questions sur lesquelles planche l’ensemble de la communauté.