Des recherches des années 50 à GPT-4 en passant par BERT, quelles évolutions amènent les grands modèles de langage ?

Des recherches des années 50 à GPT-4 en passant par BERT, quelles évolutions amènent les grands modèles de langage ?

5 ans de perroquets probabilistes

Avatar de l'auteur
Martin Clavey

Publié dans

Société numérique

05/04/2023 8 minutes
22

Des recherches des années 50 à GPT-4 en passant par BERT, quelles évolutions amènent les grands modèles de langage ?

ChatGPT, Bard et les nouvelles IA linguistiques à la mode sont basées sur la technologie des grands modèles de langage apparue dans la recherche en informatique en 2017. Quelles sont les évolutions dans ce champ depuis la création du premier grand modèle de langage ?

ChatGPT a ouvert la voie aux grands modèles de langage (en anglais, Large language models, LLM) pour toucher le grand public et a permis aux multinationales du numérique comme Google, Microsoft et Baïdu d'utiliser à plus grande échelle une technologie dont elles avaient posé les bases il y a cinq ans déjà.

Notre état des lieux sur les grands modèles de langage :

Mais les LLM sont en fait l'aboutissement d'un champ de recherche un peu plus vieux en informatique. Comme l'explique le chercheur en sciences de l'information et de la communication, Pierre-Carl Langlais, les modèles de langage viennent de la recherche en statistique sémantique née dans l'après deuxième guerre mondiale. À l'époque, des chercheurs d'IBM et de la Georgetown University montent une expérience dont l'idée est de proposer un programme de traduction du russe vers l'anglais.

Les résultats paraissent, en premier lieu, impressionnants, mais la présentation s'avère truquée. « Le programme ne connaît qu’un vocabulaire réduit de 250 mots en russe et en anglais et, surtout, seulement quelques règles de grammaire. Les phrases ont été commodément choisies en amont pour être correctement restituées », explique Pierre-Carl Langlais. Mais c'est suite à cette expérience que d'autres chercheurs vont s'intéresser au sujet. Et Warren Weaver propose de s'intéresser aux mots avant et après celui étudié, ce qu'on appelle une « fenêtre contextuelle ». C'est sur ce principe que les grands modèles de langage sont basés.

Les travaux dans ce champ ne s'arrêteront plus. Mais, selon Pierre Carl Langlais, « Weaver, comme tous les chercheurs qui se pencheront sur le sujet jusqu’aux années 2010, est immédiatement confronté à un écueil majeur : même en se limitant au vocabulaire le plus basique (par exemple quelques milliers de mots), il existe des milliards et des milliards de combinaisons possibles. Indépendamment des limitations techniques des ordinateurs de 1949, recenser toutes ces possibilités est un travail absolument inconcevable ».

Comme dans une grande partie des champs de recherche en intelligence artificielle, c'est avec la popularisation de l'utilisation des réseaux de neurones puis du deep learning que tout va changer.

T comme « transformeur »

Si les réseaux de neurones ont permis d'élargir la fenêtre contextuelle, une famille particulière de modèles d'apprentissage profond va se trouver particulièrement efficace dans le traitement automatique des langues : les modèles « transformers », d'où GPT tire son T.

En effet, en 2017, des chercheurs de Google constatent que la tendance du moment est d'imbriquer différents modèles complexes de réseaux de neurones les uns avec les autres, rendant les systèmes mis en place encore plus compliqués sans pour autant arriver à des résultats extraordinaires. Dans leur article scientifique au titre très explicite, « Attention Is All You Need », ils proposent de se concentrer sur un seul concept, celui de l' « attention ».

L'idée est non seulement de prendre en compte le contexte dans lequel un mot existe, mais aussi d'attribuer un poids d'importance à chaque mot et de pouvoir modifier ce poids au cours du traitement dans le réseau de neurones. Dans cet article, les chercheurs de Google proposent toute une architecture pour ce genre de réseaux de neurones, qu'ils nomment « transformer » et testent de façon concluante sur des capacités de traduction de l'anglais vers l'allemand et le français.

P comme « pré-entraîné »

Mais ces transformeurs font partie des algorithmes de deep learning. Pour les utiliser, il faut les entrainer sur un nombre important de données, ce qui demande beaucoup de temps de calcul. En 2018, Google propose donc des modèles de langage pré-entraînés que chacun peut utiliser : les modèles BERT pour « Bidirectional Encoder Representations from Transformers ».

La même année, la startup OpenAI – dont Elon Musk vient de quitter le conseil d'administration pour des raisons de conflit d'intérêts en tant que PDG de Tesla – publie, elle aussi, son transformeur pré-entrainé. Elle l'annonce dans un article [PDF] titré « Improving Language Understanding by Generative Pre-Training ». Generative Pre-Training, GPT, l'enchainement des trois lettres maintenant connues de tous. S'il n'est pas véritablement appelé de cette façon à l'époque, c'est la première version de GPT de la startup.

Mais en 2018, les modèles BERT restaient les modèles les plus intéressants. D'une part, ils sont bidirectionnels, c'est-à-dire qu'ils sont entraînés à la fois en fonction du contexte venant du texte en amont (à gauche) mais aussi venant du texte en aval (à droite) alors que les modèles GPT sont unidirectionnels. D'autre part, GPT est alors entraîné avec moins de paramètres et moins de données. La version « Large » de BERT se base sur 340 millions de paramètres et une collection de textes comportant 3,3 milliards de mots alors que la première version de GPT n'a que 117 millions de paramètres et s'appuie sur un corpus de textes beaucoup plus petit. Mais la startup prouve, ici, qu'elle est capable de proposer un modèle qui tient la route.

BERT déjà dans le moteur de recherche de Google

À l'époque, les équipes de Google sont donc à la pointe de la recherche sur le sujet et la multinationale annonce fièrement en octobre 2019 intégrer les modèles BERT dans son algorithme de moteur de recherche (pour les résultats en anglais). L'annonce a été répercutée dans les médias, mais ne fait pas autant de bruit que celle de l'utilisation par Microsoft de GPT dans Bing cette année.

Un modèle encyclopédique

Pendant ce temps-là, OpenAI investit pour créer la deuxième version de son modèle. Et la startup a bien compris qu'il fallait taper fort pour être le modèle utilisé par tout le monde. Avec ses 1,5 milliard de paramètres et un corpus de textes comprenant environ 10 milliards de mots, la startup s'assure d'être l'acteur principal du domaine sans avoir besoin d'ajouter de vraies nouveautés scientifiques dans le domaine.

Entraîné sur Wikipédia et deux corpus entiers de livres, GPT-2 est bien plus fin et a vu passer bien plus de mots que son ainé. Pour Pierre-Carl Langlais, GPT-2 est devenu un «  modèle encyclopédique ». Ce qui ne veut pas dire qu'il restitue convenablement les faits, mais qu'il contient un très grand nombre de références au monde réel. Ce passage au niveau encyclopédique lui permet de nous faire croire qu'il est beaucoup plus savant.

GPT-3 et GPT-4 vont dans le même sens avec toujours plus de paramètres et un corpus de texte toujours plus large. Si OpenAI a ajouté un système de récompenses et de rétrocontrôle à GPT-3 pour sa version 3.5 adaptée pour ChatGPT, permettant un filtre des problèmes de réponses les plus gênants, le concept du grand modèle de langage n'a pas été amélioré à ce moment-là.

Mais en parallèle, chez Google, une cellule d'éthique de l'intelligence artificielle sonne l'alarme sur les dangers des grands modèles de langage. Si l'entreprise « règle » le problème en licenciant deux chercheuses qui ont participé à ces critiques, elle semble mettre en sourdine la médiatisation de sa recherche sur le sujet.

Des modèles de moins en moins ouverts

Suivant OpenAI, les multinationales du numérique lui ont emboîté le pas pour construire chacune leur propre grand modèle de langage. Microsoft a son Megatron-Turing. Meta a créé Open Pretrained Transformer, mais aussi Large Language Model Meta AI (LLaMA). Google en a finalement créé d'autres comme GLaM, LaMDA ou Gopher (le dernier a été créé par DeepMind). Le Chinois Baidu a créé sa famille de grands modèles de langage Ernie et le russe Yandex a nommé le sien YaLM.

Mais si la recherche dans les grands modèles de langage se faisait d'abord de façon ouverte, proposant l'accès à tout le monde, la tendance est à la fermeture des modèles et soit à leur utilisation en interne, soit à la proposition d'accès par API.

Le projet BLOOM reste l'un des seuls à maintenir le cap de l'open science dans le domaine.

Écrit par Martin Clavey

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

T comme « transformeur »

P comme « pré-entraîné »

BERT déjà dans le moteur de recherche de Google

Un modèle encyclopédique

Des modèles de moins en moins ouverts

Le brief de ce matin n'est pas encore là

Partez acheter vos croissants
Et faites chauffer votre bouilloire,
Le brief arrive dans un instant,
Tout frais du matin, gardez espoir.

Commentaires (22)


Merci pour cet article. Je l’aurais aimé plus long.
À noter que Nicolas Martin (ex. France Q) avait fait 2 superbes émission sur l’évolution des modèles de langage il y a 2 ans:
https://www.radiofrance.fr/franceculture/podcasts/la-methode-scientifique/parlez-vous-l-ordinateur-7914870
https://www.radiofrance.fr/franceculture/podcasts/la-methode-scientifique/traitement-automatique-des-langages-do-you-speak-computer-8285510.


Microsoft a Megatron, Meta a un Transformer, personne n’a de Decepticon ? :transpi:


Skynet


Si, notre gouvernement qui détruit nos acquis sociaux et brade des fleurons de notre industrie. Ils ont même une unité d’élite Decepti-cons, la division 49.3.
OK, je sors :)



darkjack a dit:


Si, notre gouvernement qui détruit nos acquis conquis sociaux et brade des fleurons de notre industrie. Ils ont même une unité d’élite Decepti-cons, la division 49.3. OK, je sors :)




:cap:


Est-ce que je me trompe si je dis que ce qui a surtout changé ces dernières années, ce sont les capacités de stockage et de traitement, et beaucoup moins l’algorithmie derrière tout ça ?
Parce qu’on a quand même à faire à un “truc” qui répond sincèrement à des questions sur les œufs de vache … Véridique, testé par un pote. Et ça me laisse sacrément dubitatif (non, Desproges l’a déjà faite celle-là).


Il y a aussi David Louapre (science étonnante) qui a fait de super vidéos sur le sujet (youtube)


Résumé intéressant sur l’évolution du domaine. A titre personnel j’ai longtemps considéré l’IA comme du bullshit car … ça en était. C’était juste des mises en scène, des situations bien cadrées pour s’assurer que le marketing fasse son effet, et dans la réalité ça ne produisait rien.



Avec les modèles de langage, j’ai l’impression qu’on assiste à un véritable tournant de l’IT car les outils d’analyse et génération de contenu plus ou moins complexe (texte / image / code, etc) rentrent dans le quotidien (pour le meilleur et pour le pire, comme d’hab). Certes, y’a encore du chemin, mais de ma petite expérience avec, je perçois la valeur ajoutée. Dans mes bricolages perso, travailler le code avec ChatGPT (car je suis pas dev) m’a pas mal aidé là où j’aurais passé des heures de recherche à droite et à gauche pour des résultats non garantis ou tellement datés qu’ils seraient inutiles. Ce qui m’a permis de me focaliser plutôt sur la logique, la construction, plutôt que sur savoir comment j’implémente tel truc dans tel langage. L’explication fournie avec est un plus pour comprendre le résultat produit.



Dans mon usage, j’apprécie le fait qu’il soit capable de produire un résultat correct assez rapidement, mais aussi sa capacité à produire plusieurs solutions différentes pour un besoin donné ou encore de faire une comparaison rapide pour des solutions permettant ainsi de balayer rapidement et aller plus vite dans le dur.




AncalagonTotof a dit:


Est-ce que je me trompe si je dis que ce qui a surtout changé ces dernières années, ce sont les capacités de stockage et de traitement, et beaucoup moins l’algorithmie derrière tout ça ? Parce qu’on a quand même à faire à un “truc” qui répond sincèrement à des questions sur les œufs de vache … Véridique, testé par un pote. Et ça me laisse sacrément dubitatif (non, Desproges l’a déjà faite celle-là).




Tout dépend de ce qu’on lui demande. Son but c’est de broder la suite d’un texte pour produire un truc cohérent. Si tu lui demandes un truc absurde, il va le faire.



Le plus important pour moi, c’est de savoir ce qu’on attend de ces outils. Perso ce que j’attends d’eux, c’est de me faire gagner du temps sur des tâches dont la valeur ajoutée, ou ne serait-ce que la motivation de les accomplir, est faible. Genre comparer les capacités de plusieurs solutions du marché… Ca prend un temps fou là où un outil de ce genre sera capable de te dresser les avantages/inconvénients en quelques secondes. Le plus difficile, c’est de lui fournir un prompt qui soit en relation avec le résultat attendu.


Dernièrement, je m’en suis servi pour générer une expression régulière, jamais eu la motivation d’apprendre la syntaxe. Le résultat n’est peut-être pas le plus efficace, mais ça fonctionne et ça m’a pris 2min. Alors que rechercher à la main sur stackoverflow pour bricoler un truc douteux à partir de 3 ou 4 post différents, c’est plus long et c’est chiant.



Je ne suis pas dev non plus, et cette capacité à générer un petit bout de code pour un cas simple, c’est quand même bien pratique.
Et même sur des sujets qu’on maitrise un peu plus, un 2e regard est appréciable, quand on a pas de collègue à qui demander, ça donne des idées.


Patatt

Dernièrement, je m’en suis servi pour générer une expression régulière, jamais eu la motivation d’apprendre la syntaxe. Le résultat n’est peut-être pas le plus efficace, mais ça fonctionne et ça m’a pris 2min. Alors que rechercher à la main sur stackoverflow pour bricoler un truc douteux à partir de 3 ou 4 post différents, c’est plus long et c’est chiant.



Je ne suis pas dev non plus, et cette capacité à générer un petit bout de code pour un cas simple, c’est quand même bien pratique.
Et même sur des sujets qu’on maitrise un peu plus, un 2e regard est appréciable, quand on a pas de collègue à qui demander, ça donne des idées.


Au cas ou, il existe des outils de ce style pour les expressions régulières.



Mais si ça permet d’en générer une qui fonctionne quand on lui parle en français c’est pas mal.


Patatt

Dernièrement, je m’en suis servi pour générer une expression régulière, jamais eu la motivation d’apprendre la syntaxe. Le résultat n’est peut-être pas le plus efficace, mais ça fonctionne et ça m’a pris 2min. Alors que rechercher à la main sur stackoverflow pour bricoler un truc douteux à partir de 3 ou 4 post différents, c’est plus long et c’est chiant.



Je ne suis pas dev non plus, et cette capacité à générer un petit bout de code pour un cas simple, c’est quand même bien pratique.
Et même sur des sujets qu’on maitrise un peu plus, un 2e regard est appréciable, quand on a pas de collègue à qui demander, ça donne des idées.


J’ai essayé de l’utiliser pour apprendre le Rust, bah il m’inventait des modules qui n’existent pas.
Pour les modules qui existaient il donnait des versions largement supérieures à celles qui sont sorties actuellement.
Et même sans ça, le code généré ne compilait quasiment jamais.



Y a encore du chemin à faire…


Mihashi

J’ai essayé de l’utiliser pour apprendre le Rust, bah il m’inventait des modules qui n’existent pas.
Pour les modules qui existaient il donnait des versions largement supérieures à celles qui sont sorties actuellement.
Et même sans ça, le code généré ne compilait quasiment jamais.



Y a encore du chemin à faire…


Attention c’est pas un prof infaillible, surtout avec ses données qui s’arrêtent à fin 2021. Par contre en testant et en lui donnant l’erreur, il se rend compte de sa connerie de mon expérience.



Sauf quand ça commence à démonter l’obsolescence de ses données. J’avais eu le coup avec le templating GoHugo où ce qu’il me proposait marchait à peu près mais un détail coinçait à cause de changements récents dans le moteur.


Entièrement d’accord avec toi, et j’en ai le même usage, cela me fait gagner un temps énorme.


eglyn

Entièrement d’accord avec toi, et j’en ai le même usage, cela me fait gagner un temps énorme.


De mon côté j’ai hâte que la version intégrant la sortie sur le Web arrive. Aujourd’hui il ne sait pas faire ça, et quand on lui demande de lire une page Web (ce qu’il ne peut pas faire, le modèle ne sait pas sortir sur Internet), il pipeaute comme jamais :D



Si tu lui donnes la page “Features” d’un produit, il va s’appuyer sur sa base de connaissance pour produire un résultat qui semble à priori fiable (il m’a même sorti la date prévisionnelle de la prochaine version de GitLab au pifomètre XD). Mais on repère vite le pot aux roses car les infos sont datées.



Par contre je lui ai mis le lien d’un article de mon blog et demandé de le résumer, il m’a extrapolé un truc complètement fumé juste en lisant l’URL :fume:



Après, il est possible de lui copier/coller le contenu et demander de le synthétiser / analyser ça il fait très bien.



les modèles « transformers », d’où GPT tire son T.



Generative Pre-Training, GPT




Faudrait savoir :transpi:



 



(En fait c’est « Generative Pre-trained Transformer »)


Le côté ouvert et l IA en général ont franchi un cap avec la release open source de Llama et les variantes apparues depuis.. et ça tourne en local! Par contre entraîner une IA sur mesure selon besoins spécifiques..



AncalagonTotof a dit:


Est-ce que je me trompe si je dis que ce qui a surtout changé ces dernières années, ce sont les capacités de stockage et de traitement, et beaucoup moins l’algorithmie derrière tout ça ?




Non, c’est bien l’idée. La disponibilité de grands jeux de données aussi. Il n’y a pas beaucoup de nouveauté en informatique depuis les années 1970.


Merci pour cet article.



Je vais peut être paraître nombriliste, mais la lecture de cet article me fait penser que ces IA rédigent leurs textes (je parle de la forme, pas du fond) de la même façon que je le fais.



Je suis totalement impermeable aux règles de grammaire.
Je suis, comme tout le monde capable de les apprendre et de les réciter par coeur.
Mais, quand on me demande pourquoi j’écris une phrase comme je le fais, je suis incapable de l’expliquer.
Cela ne m’empêche pas de ne pas être ridicule aux dictées de Pivot ou aux examens Voltaire.



La seule façon que j’ai d’expliquer comment je m’y prends est que j’ai une bonne mémoire visuelle et que je fus, et suis encore, un lecteur assidu.
Par conséquent, j’ai forcément rencontré à un moment, une tournure de phrase, une formulation qui colle au contexte de la phrase que je dois écrire.
On peut appeler cela une certaine forme d’autisme, mais tant que ça marche, pourquoi ne pas en tirer avantage ?



Ce “modèle”, à priori appliqué par Chat-GPT pour la rédaction de texte, permet d’obtenir des textes écrits en bon français, même si le contenu pondu par les “IA” est parfois complètement farfelu.
Il ne reste plus qu’à trouver comment y ajouter un peu de bon sens et de discrimination (appelons ça intelligence) pour pouvoir créer, enfin, des outils qui pourront se goinfrer les montagnes de données disséminées sur le web et en obtenir un “résumé” digeste pour les humains.



P.S.
Promis, juré, crois de bois, croix de fer, je n’ai pas utilisé Chat-GPT pour rédiger ce post :windu:


D’où le nom réseau neuronal, ces IA reproduisent le fonctionnement des neurones dans un cerveau. Quand un bébé apprend à marcher ou parler, c’est exactement le même principe que l’entrainement d’un réseau neuronal, on ne lui apprend pas des règles logiques : tendre les pieds, placer son centre de gravité au milieu de sa surface de contact au sol… Le bébé apprend par essai, sans comprendre vraiment comment faire, une fois acquis c’est un automatisme.
Une IA c’est pareil sauf que c’est un humain qui note chaque action, alors que le bébé s’autoentraine jusqu’à marcher !
Pour le langage, c’est similaire : on apprend d’abord à parler tout seul par auto entrainement, puis on apprend à lire. Une fois la lecture acquise, on peut raisonner sur les mots et expliquer la grammaire, l’étymologie et expliquer les règles d’un langage qu’on a appris seul.



SebGF a dit:


Attention c’est pas un prof infaillible, surtout avec ses données qui s’arrêtent à fin 2021. Par contre en testant et en lui donnant l’erreur, il se rend compte de sa connerie de mon expérience.




Oui, quand je lui dit que le module n’existe pas, il en invente un second…


Le coquinou :D



Mihashi a dit:


Oui, quand je lui dit que le module n’existe pas, il en invente un second…




Oui clairement GPT ne connait que les langages informatiques ultraconnu (Python par ex), pour des trucs plus chiadés, c’est complètement naze. Pour moi en tant que développeur, ChatGPT est une perte de temps : au même titre que Stack Overflow qui sort majoritairement des trucs bancals, voire faux.