Ce qui se cache derrière le fonctionnement de ChatGPT
Summary
TLDRLe script explore les mécanismes et les différences entre GPT et ChatGPT, un chatbot basé sur l'IA. Il explique comment GPT, un modèle de langage entraîné pour deviner le prochain mot d'un texte, est utilisé comme base pour créer des chatbots plus avancés. Le script détaille également les techniques de préprompt, de fine-tuning et d'apprentissage par renforcement avec des commentaires humains pour améliorer la pertinence et l'utilité des réponses du chatbot. Il met en garde contre les limites de ChatGPT, notamment la génération d'articles scientifiques fictifs lorsqu'il est interrogé sur des sources, et conclut sur l'importance de ces technologies dans l'avenir de l'IA.
Takeaways
- 🧠 Le script aborde le fonctionnement et les différences entre ChatGPT et le modèle de langage GPT, soulignant que ChatGPT est un produit commercial basé sur le modèle d'IA GPT.
- 🤖 ChatGPT est un chatbot, un 'agent conversationnel', conçu pour dialoguer avec les utilisateurs afin de les informer ou les aider, mais qui fonctionne différemment des chatbots traditionnels basés sur des mots-clés.
- 📚 Le modèle GPT est un 'modèle de fondation' en intelligence artificielle, entraîné à deviner le prochain mot d'un texte, plutôt qu'à répondre à des questions ou à suivre des instructions.
- 🔍 L'entraînement de GPT repose sur des données non annotées, en utilisant un processus appelé 'apprentissage auto-supervisé', où le modèle apprend à partir de textes bruts sans besoin de données marquées manuellement.
- 📈 GPT3, la troisième itération du modèle, a été suivie de GPT3.5 et GPT4, avec une augmentation significative du nombre de paramètres et de la capacité de mémoire de l'algorithme.
- 🔗 L'algorithme GPT ne cherche pas à produire des réponses 'vraies' ou à imiter la performance humaine, mais à générer des textes plausibles en se basant sur les données d'entraînement.
- 💡 Pour obtenir des réponses pertinentes de GPT, il est possible d'utiliser des 'preprompts', qui sont des introductions destinées à guider le modèle dans la direction souhaitée.
- 🛠️ OpenAI a créé InstructGPT à partir de GPT en utilisant une technique appelée 'fine-tuning', spécialement adapté pour répondre à des questions et suivre des instructions de manière plus utile et bienveillante.
- 🔧 Une troisième couche d'apprentissage, l'apprentissage par renforcement avec feedback humain (RLHF), a été ajoutée pour améliorer la pertinence des réponses de ChatGPT en évaluant et comparant ses réponses.
- 📝 ChatGPT a tendance à créer des références fictives lorsqu'il est question de citer des sources, un problème attribué à son incapacité à vérifier la véracité des informations et à son mode de fonctionnement basé sur la génération de textes plausibles.
Q & A
Qu'est-ce que ChatGPT et en quoi consiste sa différence par rapport au modèle GPT d'OpenAI?
-ChatGPT est un chatbot ou un 'agent conversationnel' basé sur le modèle d'intelligence artificielle GPT créé par OpenAI. La différence principale est que ChatGPT est le produit commercial tandis que GPT est le modèle de base utilisé pour développer des applications comme ChatGPT.
Comment fonctionnent traditionnellement les chatbots en utilisant la détection de mot-clés?
-Les chatbots traditionnels fonctionnent en détectant des mots-clés définis à l'avance et en répondant en fonction de ces mots-clés pour avoir un échange utile avec l'utilisateur.
Pourquoi l'approche de l'apprentissage supervisé n'est-elle pas très efficace pour créer un chatbot intelligent?
-L'approche de l'apprentissage supervisé n'est pas très efficace car elle nécessite une énorme quantité de données de questions/réponses couvrant un large éventail de sujets et avec des réponses de qualité. De plus, il est difficile de déterminer quelle réponse est correcte et il manque la notion de continuité dans la conversation.
Qu'est-ce qu'un modèle de fondation (foundation model) dans le contexte de l'IA?
-Un modèle de fondation est un modèle d'intelligence artificielle qui est d'abord entrainé sur une tâche générique et peut ensuite être adapté à d'autres tâches plus spécifiques.
Quel est le rôle du modèle GPT dans l'apprentissage des chatbots modernes?
-Le modèle GPT, qui signifie Generative Pretrained Transformer, sert de base pour l'entraînement des chatbots modernes. Il est entraîné pour deviner le prochain mot d'un texte, ce qui lui permet de générer du texte de manière cohérente et continue.
Comment GPT est-il capable de générer du texte à partir d'un prompt?
-GPT génère du texte en prenant un fragment de phrase ou un 'prompt' en entrée et en essayant de produire le mot suivant qui convient le mieux, en se basant sur les données qu'il a appris lors de son entraînement.
Quelle est la différence entre GPT3 et ses versions antérieures?
-GPT3, sorti en juillet 2020, a amélioré ses performances avec la version 3.5 en mars 2022, et depuis mars 2023, GPT4 est disponible avec des capacités encore plus avancées, bien que les détails soient limités.
Comment GPT est-il capable de générer des textes de grande longueur?
-GPT peut générer des textes de grande longueur en continuant à ajouter des mots un par un, en se basant sur le contexte donné et en répétant ce processus autant de fois que nécessaire.
Quels sont les défis spécifiques associés à l'utilisation de GPT pour créer un chatbot?
-Les défis incluent le fait que GPT n'est pas entraîné à suivre des instructions ou à répondre à des questions directement, mais plutôt à poursuivre un texte. Il peut ne pas reconnaître qu'il est censé fournir une réponse à une question et peut continuer avec d'autres questions ou des textes non liés.
Comment OpenAI a-t-il amélioré GPT pour créer InstructGPT et ChatGPT?
-OpenAI a utilisé des techniques telles que le fine-tuning, où GPT est spécialisé sur des textes spécifiques pour répondre aux attentes d'un chatbot, et l'apprentissage par renforcement avec des commentaires humains pour ajuster les réponses de ChatGPT pour qu'elles soient plus pertinentes et respectueuses.
Quelle est la méthode utilisée pour que GPT comprenne qu'il doit répondre à une question plutôt que de continuer avec une autre question ou un texte non lié?
-Pour guider GPT vers la réponse appropriée, on utilise des preprompts qui mettent GPT dans le contexte de la tâche, comme établir une introduction qui indique que la suite doit être une réponse à une question.
Quels sont les problèmes liés à la génération de références fictives par ChatGPT?
-ChatGPT peut créer des références d'articles scientifiques qui n'existent pas, car il suit le format standard des citations sans vérifier leur authenticité, ce qui peut causer des confusions ou des erreurs lorsqu'il est utilisé pour citer des sources.
Outlines
🤖 L'intelligence artificielle consciente de ChatGPT
Le script commence par une discussion sur les opinions extrêmes et souvent erronées sur ChatGPT, une IA qui manipule des mots et des phrases. L'auteur mentionne un précédent vidéo où il a parlé de l'apprentissage supervisé et du modèle GPT d'OpenAI, soulignant que depuis lors, ChatGPT est apparu, et il souhaite clarifier les différences entre ChatGPT et GPT. Il invite également les téléspectateurs à rejoindre un serveur Discord pour poursuivre la discussion.
📚 Fondements du machine learning et du chatbot
Le texte explique que les chatbots ont évolué avec l'aide de l'apprentissage automatique, en particulier l'apprentissage supervisé, où un modèle est entraîné à partir de grandes bases de données de questions/réponses. Cependant, cette approche n'est pas efficace car elle nécessite une grande quantité de données de qualité et ne tient pas compte de la continuité dans une conversation. Le script introduit le concept de 'modèle de fondation' comme une solution potentielle à ces problèmes.
🧠 Le modèle GPT et sa capacité à prédire le prochain mot
Le paragraphe décrit le modèle GPT (Generative Pretrained Transformer) d'OpenAI, qui est entraîné pour deviner le prochain mot d'un texte, une tâche qui semble absurde mais qui permet au modèle de produire du texte de manière continue. Il est entraîné à partir de textes existants, sans besoin d'annotation manuelle, ce qui facilite la création de vastes quantités d'exemples d'entraînement. Le modèle ne cherche pas à être vrai ou à répéter des phrases exactes, mais à produire des续uences plausibles.
🔍 Détails techniques du modèle GPT et de son entraînement
Ce paragraphe fournit des détails techniques sur le fonctionnement de GPT, y compris son vocabulaire de 50 000 tokens et son entraînement auto-supervisé à partir de textes tels que des livres, Common Crawl, et Wikipedia. Il explique également que le modèle est figé après son entraînement, ne connaissant pas les événements récents et n'ayant pas de mémoire des conversations précédentes. Les paramètres du modèle, comme la taille de la fenêtre de contexte, sont également discutés.
🎲 Expériences avec GPT et sa génération de续uences plausibles
L'auteur partage des expériences pratiques avec GPT, montrant comment le modèle peut générer des续uences plausibles pour compléter des phrases, même si elles ne sont pas basées sur la réalité ou la vérité. Il illustre comment GPT utilise la probabilité pour choisir le prochain mot et comment il peut être influencé par des 'preprompts' pour générer des textes spécifiques, comme dans les conversations avec des chatbots.
🤝 Utilisation de preprompts et fine-tuning pour améliorer les chatbots
Le script explique comment les preprompts peuvent être utilisés pour orienter GPT vers un type spécifique de texte, comme dans les conversations avec un professeur de physique. Il mentionne également le fine-tuning, une méthode pour spécialiser un modèle de fondation en l'entraînant sur des textes spécifiques, et l'apprentissage par renforcement avec des commentaires humains pour améliorer la pertinence des réponses de GPT.
📚 Limitations de ChatGPT et ses performances en matière de référence
Le texte conclut en discutant les limitations de ChatGPT, en particulier son incapacité à citer correctement des sources, car il est basé sur la génération de textes plausibles plutôt que sur la vérité ou la recherche d'informations. Il suggère que l'avenir pourrait apporter des améliorations en combinant les modèles de langage avec des mécanismes de recherche pour résoudre ce problème.
Mindmap
Keywords
💡ChatGPT
💡GPT
💡Machine Learning
💡Apprentissage supervisé
💡Pré-entraînement
💡Fine-tuning
💡Apprentissage par renforcement
💡Tokens
💡Fenêtre de contexte
💡Modèle de récompense
Highlights
ChatGPT est un chatbot basé sur le modèle d'intelligence artificielle GPT d'OpenAI, mais avec des différences clés dans leur fonctionnement.
Les modèles GPT sont entraînés à deviner le prochain mot d'un texte, une tâche qui assure une forme de continuité et de mémoire de l'échange.
Le modèle GPT3 a été entraîné sur un large éventail de textes, y compris des livres, des sites internet et Wikipedia.
GPT3 a 175 milliards de paramètres, ce qui lui permet de traiter de grandes quantités d'informations et de générer des textes de longueur significative.
Le modèle GPT ne connait pas les événements récents car son entraînement est figé à une certaine date.
GPT ne suit pas les instructions mais cherche à compléter des textes de manière plausible en se basant sur son apprentissage.
Les pré-prompts sont utilisés pour orienter GPT vers un type de texte spécifique et améliorer la pertinence des réponses.
InstructGPT est un exemple de modèle fine-tuné à partir de GPT pour répondre à des questions de manière plus utile et bienveillante.
L'apprentissage par renforcement avec feedback humain permet à ChatGPT de proposer des réponses plus pertinentes et de s'adapter aux préférences humaines.
ChatGPT a des difficultés à citer des sources de manière précise, souvent en inventant des références qui n'existent pas.
Le modèle GPT est capable de générer des textes qui, bien qu'inventés, sont plausibles et respectent le format standard des citations scientifiques.
L'apprentissage supervisé, utilisé pour le fine-tuning, permet à des modèles comme InstructGPT de s'adapter à un style de chatbot prévu par les humains.
ChatGPT est particulièrement efficace pour répondre à des questions simples et bien documentées, mais ne fait pas plus que d'autres outils de recherche en ligne.
Le modèle montre des signes de créativité en reliant des informations qui n'ont pas forcément de lien évident.
L'évaluation des réponses par des humains dans le cadre de l'apprentissage par renforcement sert également à s'assurer que le modèle reste approprié et respectueux.
La combinaison de fine-tuning, d'apprentissage par renforcement et de pré-prompts permet de spécialiser un modèle de fondation en un chatbot efficace.
Les modèles de langage comme GPT ont tendance à interpoler efficacement des situations nouvelles, basées sur des cas similaires vus lors de leur entraînement.
Transcripts
« C’est incroyable, ChatGPT est une intelligence artificielle consciente »
« C’est nul, il répète des trucs faux lu sur Internet, et il ne sait même faire
12 + 33 »
Oui, je sais, tout le monde a déjà beaucoup parlé de ChatGPT. Et la plupart des réactions
qu’on trouve dans la presse ou sur les réseaux sociaux ont tendance à tomber dans un extrême
ou un autre, en se basant juste sur quelques exemples bien choisis. Mais si on allait un
peu plus loin ?
Dans une vidéo précédente, j’avais déjà traité la question de ces algorithmes qui
savent manipuler des mots, des phrases, des textes; ce domaine qu’on appelle le traitement
du langage naturel. Et à l’époque j’avais notamment parlé du fameux modèle GPT d’OpenAI.
Mais c’était en novembre 2021, et donc avant la déferlante ChatGPT.
Car oui, GPT et ChatGPT c’est pas tout à fait pareil. Et aujourd’hui, je voudrais
justement faire la lumière sur le fonctionnement et la différence qu’il existe entre ChatGPT,
qui est en quelque sorte le produit commercial d’OpenAI, et GPT qui est le modèle d’intelligence
artificielle qui lui sert de base.
Et je suis persuadé qu’en comprenant un peu mieux tout cela, ça permettra d’avoir
un regard plus affiné sur les questions que pose ChatGPT, les possibilités qu’il offre,
les dangers qu’il représente, et sur ce qu’il faut en attendre, ou au contraire
ne pas en attendre. Alors c’est parti.
Mais avant ça je voudrais vous parler d’un super VPN que j’utilise…non je déconne.
Par contre je profite de cette interruption pour vous inviter à rejoindre le serveur
Discord que j’ai créé, le lien est en description. Et c’est le meilleur moyen
de venir prolonger la discussion, papoter, poser des questions à moi ou à d’autres
etc. Venez c’est sympa. Fin de la parenthèse. Revenons à ChatGPT.
Comme vous le savez sans doute, ChatGPT c’est un chatbot, un « agent conversationnel »
en bon français, c’est-à-dire un programme qui se propose de dialoguer avec vous, notamment
dans le but de vous renseigner ou vous aider. Les chatbots ça existe depuis longtemps,
et la plupart fonctionnent selon un principe de détection de mot-clés.
[MIA On en trouve par exemple sur certains sites Internet pour faire de l’assistance,
et ça marche plus ou moins bien on va dire. Il faut vraiment tomber sur les bons mots-clés
pour que l’échange soit utile.]
Mais depuis quelques années, il devient possible de développer des chatbots qui ne sont plus
programmés à la main, à partir de mots-clés définis à l’avance, mais en utilisant
des modèles issus de cette branche de l’intelligence artificielle qu’on appelle le « machine
learning. »
J’en ai souvent parlé, l’approche la plus fréquente en machine learning c’est
ce qu’on appelle l’apprentissage supervisé. Rappelons vite-fait l’exemple classique
de la reconnaissance d’image. Imaginons qu’on veuille fabriquer un algorithme qui
sache reconnaitre ce qu’il y a sur une image.
[SUPERVISE On choisit un modèle avec plein de paramètres, à qui on peut présenter
une image en entrée, et qui va produire un mot en sortie. Initialement le modèle va
raconter n’importe quoi, mais on va progressivement l’entrainer en lui présentant plein d’exemples
de ce qu’on souhaite qu’il fasse.
On prend une grosse base de données d’images qui sont déjà classifiées, on présente
successivement ces exemples à notre modèle, et on ajuste ses paramètres pour qu’il
produise le maximum de bonnes réponses. C’est ce qu’on appelle la phase d’entrainement,
qui peut durer assez longtemps, et qui demande souvent beaucoup de données.
Une fois que c’est fait, le modèle est donc entrainé, et il peut être utilisé.
Si l’entrainement a été un succès, quand on lui présentera ensuite des images qu’il
n’a jamais vues, notre modèle devrait leur associer la bonne classification.]
Ce principe d’apprentissage supervisé a déjà des tas d’applications concrètes,
comme la reconnaissance d’image, la détection de fraude ou de spam, etc. Alors intuitivement,
si on veut faire un chatbot, on se dit qu’on pourrait avoir la même approche.
Un chatbot est censé nous fournir certaines réponses pertinentes quand on lui pose des
questions. Donc on pourrait entrainer un modèle à partir d’une base de données de questions/réponses
existantes, en espérant qu’ainsi il apprenne à répondre intelligemment à n’importe
quel type de requête.
Le problème, c’est que cette approche n’est pas très efficace. On peut citer plusieurs
raisons. Déjà pour que ça marche, il faudrait une énorme quantité de données, c’est
à dire un grand nombre d’échanges questions/réponses. Il faudrait que ça couvre un maximum de sujets,
et avec des réponses de qualité, rédigées par des humains. Et on n’a pas vraiment
ce genre de données en quantité aujourd’hui.
Ensuite quand on imagine un échange avec un chatbot, il n’y a jamais une bonne réponse
unique qu’on est en droit d’attendre. Pour la même question, il peut y avoir des
tas de réponses pertinentes plus ou moins équivalentes, mais formulées de façon potentiellement
très différentes.
Donc ça n’est pas simple pour la phase d’entrainement de faire comprendre au modèle
à quel moment une réponse qu’il propose est bonne, et à quel moment c’est à côté
de la plaque.
Et enfin, dernier obstacle, si vous avez utilisé ChatGPT vous avez remarqué que vous pouvez
avoir toute une conversation avec. Il y a une notion de continuité dans l’échange.
Il utilise les questions et réponses précédentes du dialogue pour poursuivre.
Or si vous entrainez un modèle simplement sur des couples de questions/réponses, chaque
question sera traitée indépendamment de ce qui pourrait la précéder dans l’échange,
et ça n’est pas vraiment ce qu’on veut. On veut une continuité dans la conversation.
Donc pour faire un chatbot efficace en utilisant du machine learning, avoir une approche directe
d’apprentissage supervisé, ça ne semble pas vraiment indiqué. Et c’est pour cela
qu’on va devoir procéder en plusieurs étapes, en utilisant comme base ce qu’on appelle
parfois un modèle de fondation.
Un modèle de fondation, c’est un modèle d’intelligence artificielle qui est entrainé
sur une certaine tâche assez générique, mais dans le but d’être ensuite adapté
à d’autres tâches plus spécifiques. Il existe plusieurs modèle de ce type dans le
domaine du langage naturel, et celui qui va nous servir d’exemple aujourd’hui, c’est
donc le modèle GPT créé par l’entreprise OpenAI.
GPT, ça veut dire Generative Pretrained Transformer, et c’est un modèle de manipulation du langage
naturel qui est entrainé spécifiquement sur une tâche qui peut paraitre un peu absurde
au premier abord : ce modèle cherche en permanence à deviner le prochain mot d’un texte.
[GPT Ca veut dire qu’il prend en entrée un morceau de phrase ou de texte, ce qu’on
appelle le « prompt », et il va essayer de produire en sortie un mot qui en soit une
suite possible. Par exemple si on lui rentre « La souris est mangée par le », l’algorithme
est censé essayer de compléter le texte de façon crédible, par exemple ici avec
le mot « chat ».
Et ça doit marcher aussi avec un mot qui n’est pas forcément le dernier de la phrase.
Si je lui rentre juste « la souris », on peut imaginer comme suite possible le mot
« est », ou bien « mange », ou encore « verte », etc.
En gros c’est de la complétion automatique, mais qui doit fonctionner potentiellement
à l’échelle d’un texte entier.]
Pour que notre modèle de langage soit bon à ce petit jeu, il va falloir l’entraider
à partir de données existantes. C’est-à-dire lui présenter des morceaux de phrases réelles,
et ajuster les paramètres du modèle pour qu’il soit de plus en plus performant à
produire le mot suivant.
Il y a plusieurs raisons pour lesquelles ce principe de « deviner le prochain mot d’un
texte » est une idée bizarre mais intéressante. Tout d’abord, ça n’est pas une tâche
qu’on fait généralement en tant qu’être humain.
Quand on parle d’algorithmes de reconnaissance d’image ou de détection de fraude, on essaye
de concevoir des modèles d’IA qui soient capables d’imiter et de dépasser les performances
des humains sur ces tâches. Ici deviner le prochain mot d’un début de texte, personne
ne fait ça dans la vraie vie, ça n’a aucun intérêt pratique.
Deuxième particularité, on l’a vu, dans cet exercice il n’y a généralement pas
*une* bonne réponse unique. Dans certains cas, il y a des réponses qui semblent plus
naturelles, mais si je complète « la souris est mangée par le » avec le mot « corbeau »,
c’est un peu inattendu mais c’est pas si mal. Pour compléter une phrase, on peut
avoir en général plein de réponses plus ou moins plausibles.
Et il faut bien comprendre ce que veut dire « plausible » ici : ça ne veut pas dire
que c’est vrai, il n’y a aucune notion de vérité dans la façon dont le modèle
est entrainé. Si je dis « La souris est mangée par le », il n’y a pas de vraie
réponse universelle à la question de ce qui vient derrière.
Plausible ça veut dire que cette façon de compléter la phrase ressemble à ce qu’on
trouverait dans les textes qui ont servi à entrainer le modèle. « Chat » est très
naturel, mais « corbeau », pourquoi pas.
Et attention, si un modèle répond « Corbeau » pour compléter cette phrase, ça ne veut
pas forcément dire que quelque part dans les textes de son entrainement on trouve « la
souris est mangée par le corbeau ». Non, il ne se contente pas de répéter des phrases
existantes.
D’ailleurs j’ai regardé, nulle part sur internet on ne trouve cette phrase exacte.
Il n’empêche que si je vous dit « la souris est mangée par le corbeau », ça
ne vous choque pas. Si on pense aux mots « corbeau », « manger », et « souris » : le sens
et les relations de ces différents termes font que cette façon de compléter est raisonnable.
Ca ressemble à ce qu’on aurait pu trouver dans les textes d’entrainement.
Une façon que j’aime bien de le présenter, c’est de dire qu’un modèle comme GPT
va chercher une façon de compléter qui soit ressemble à des choses existantes, soit du
moins ne dépareillerai pas trop avec les textes existants. Si demain je lis sur un
site internet « La souris est mangée par le corbeau », ça n’aura rien d’incongru.
Ca ne dépareillerai pas.
Donc je résume : pour compléter, le modèle ne cherche pas à dire quelque chose de vrai,
il ne sait même pas ce que sait que la vérité; le modèle ne cherche pas forcément à reproduire
exactement un texte existant, mais il fabrique une phrase plausible, qui ne dépareillerait
pas trop au milieu de tout ce qu’il a pu ingurgiter durant son entrainement.
Evidemment cette méthode qui consiste à essayer d’ajouter un mot de plus à un texte,
ça a un gros avantage : on peut répéter ça plusieurs fois de suite. Et donc à partir
d’un simple début de phrase, on peut demander au modèle de continuer à ajouter des mots,
un par un, jusqu’à former un texte aussi grand qu’on veut.
[TEXTELONG Ici si je lui dis « La souris est mangée par le » et que je lui demande
de prolonger le texte suffisamment, voici le genre de résultat que j’obtiens. C’est
plausible, ça sonne bien français, ça a du sens.]
Bien, voyons plus précisément maintenant comment on procède en pratique pour créer
un modèle comme GPT. Première précision un peu technique, les modèles de langage
travaillent en général non pas au niveau des mots, mais au niveau de ce qu’on appelle
des tokens.
Un token, c’est en gros soit un mot, soit une portion de mot. Les mots les plus longs
peuvent être faits de deux ou trois tokens. En pratique ça ne change pas grand chose,
mais ça peut expliquer pourquoi un modèle comme GPT va parfois prédire certains mots
en plusieurs morceaux successifs.
Ce que j’ai utilisé jusqu’ici, c’est la troisième itération de GPT, qu’on appelle
GPT3, qui est sorti en juillet 2020. Il a connu une amélioration en GPT3.5 en mars
2022, et depuis mars 2023, on peut même avoir accès à GPT4, dont on ne sait malheureusement
pas grand chose.
GPT3 possède un vocabulaire d’environ 50 000 tokens, et qui n’est pas spécifique
d’une langue en particulier. Ces tokens permettent de former des mots anglais, français,
espagnols, etc. Pour faire simple dans la suite, je vais parler indifféremment de « mot »
ou de « token », ça revient presque au même pour nous.
Ensuite, comment se passe la phase d’entrainement du modèle ? Je vous ai dit que dans des tâches
d’apprentissage supervisé, comme la reconnaissance d’images, il fallait disposer de grandes
bases de données, qui illustrent sur de nombreux exemples la réponse qu’on attendrait.
[ANNOTATION L’inconvénient, c’est que ces bases de données doivent être fabriquées
en quelque sorte à la main, puisqu’à un moment donné, c’est généralement un humain
qui doit indiquer que ceci est un chat et ceci une voiture. On dit qu’il faut annoter
la base de données. Et c’est souvent ce processus d’annotation qui limite la quantité
des données disponibles.]
[SELF SUPERVISED Dans le cas de la prédiction du prochain mot d’un texte, c’est très
simple. Il suffit de prendre par exemple une phrase prise dans un livre ou sur un site
internet, de la couper n’importe où et de fournir ça au modèle pour qu’il s’entraine
à deviner le prochain mot. Avec une seule phrase, on peut même créer tout plein d’exemples
en la coupant à différents endroits.]
Il n’y a donc pas besoin d’un processus d’annotation spécifique, où un humain
devrait faire une partie du travail. On peut prendre des tonnes de textes et générer
des milliards d’exemples pour entrainer le modèle. On parle parfois d’apprentissage
auto-supervisé, self-supervised learning en anglais. Dans le cas du modèle GPT3 d’OpenAI,
on a certaines indications quant au corpus de texte qui a été utilisé pour entrainer
le modèle.
[CORPUS Il y a du texte de Common Crawl, donc simplement ramassé sur internet, des bases
de données de livres, et aussi tout Wikipedia en anglais. Sachant que certaines de ces sources
ont eu plus de poids que d’autres dans la phase d’entrainement. On peut espérer que
Wikipédia pèse un peu plus dans son apprentissage que Reddit ou 4chan.
Et même si on trouve plein de langues différentes dans les textes du corpus d’entrainement,
une moitié environ c’est de l’anglais, sans surprise.]
Un point important, c’est que dans un fonctionnement classique, l’entrainement a lieu une fois,
et ensuite le modèle est figé. C’est la raison pour laquelle les connaissances de
GPT sont en général limitée à une certaine date, il ne connait pas les événements récents.
Et aussi cela explique que d’une conversation à l’autre, il n’a aucune mémoire de
ce que vous avez pu déjà discuter. Ces deux limitations disparaitront peut-être à l’avenir,
mais dans le modèle de base, c’est comme ça que ça se passe. C’est un modèle figé.
Je ne vais pas rentrer dans les détails techniques de fonctionnement du modèle, et des réseaux
de neurones qu’il y a derrière. J’en ai déjà parlé dans ma vidéo précédente
sur le sujet, mais il y a quelques points qui sont intéressants à mentionner.
Sur la taille déjà, GPT3 est un modèle qui possède 175 milliards de paramètres,
ce qui est assez invraisemblable. Pour GPT4 on ne sait pas vraiment. Peut être 6 à 10
fois plus.
Ensuite que donne-t-on exactement au modèle lors de la phase d’entrainement ? Je l’ai
évoqué, GPT ne va pas s’entrainer à trouver le prochain mot d’une simple phrase, mais
potentiellement d’un texte tout entier, constitué éventuellement de plusieurs phrases.
Ce qui permet d’assurer une forme de continuité et de mémoire de l’échange.
La taille maximum de texte qu’il prend en compte pour estimer le prochain mot, on appelle
cela la fenêtre de contexte. Cette taille dépend de la version de l’algorithme. Dans
GPT3 c’était 2048 tokens, puis c’est passé à 4096 pour la version 3.5 et apparemment
jusqu’à plus de 32000 pour la version 4.
Ca veut dire, pour la version la plus puissante, qu’on peut lui filer un texte d’environ
25000 mots, et que tous ces mots pourront potentiellement être pris en compte pour
décider du simple mot suivant. Une autre façon de le dire : GPT4 peut, si besoin,
se rappeler d’une information qui était situé 25 000 mots plus tôt dans le texte.
Ce qui fait une centaine de page en format standard.
Parlons maintenant de ce qui est donné en sortie par l’algorithme. On l’a dit, quand
on cherche à trouver le prochain mot d’une phrase ou d’un texte, il n’y a généralement
pas une seule réponse possible. Et justement, le modèle ne va pas nous fournir un seul
mot, mais une liste de mots envisageables avec des probabilités associées.
[PROBAS Par exemple « Chat » à 90%, « Chien » à 7%, « Corbeau » à 1%, etc. Et à partir
de ces estimations, on peut demander ensuite à tirer au hasard le mot suivant parmi cette
liste, en suivant les probabilités fournies.]
[PROBAS Sur le site d’OpenAI, on peut accéder à GPT3 en mode dit « Playground », c’est
là que j’ai testé les exemples que je vous ai montré. Quand on lui demande de compléter,
le modèle va tout de suite nous tirer au hasard le prochain mot parmi ses réponses
possibles, mais en cochant une option dans l’interface, on peut visualiser les probabilités
qu’il avait proposé.]
Alors allons-y, faisons quelques expériences pour bien comprendre ce qu’il se passe,
je vais les faire en anglais puisque c’est la langue à laquelle GPT3 a été le plus
exposé. Ce sera certainement un peu meilleur.
[COLOMB Si j’écris la phrase : « Christophe Colomb a découvert l’Amérique en » il
me propose comme complétion : 1492. Super, on s’y attendait. Mais il faut bien comprendre
pourquoi le modèle de langage nous donne cette réponse : ça n’est pas qu’il a
un concept de de vérité sur cette question. Pour lui c’est même pas une question.
C’est juste que dans les textes qui ont servi à son entrainement, les mots « Christophe
Colomb », « découverte » « amérique » sont en général toujours très fortement
associés au mot 1492. Et donc pour lui, 1492 est de loin la suite la plus naturelle à
ce début de phrase.]
[PROBAS (On peut observer les probabilités des différents mots que GPT a considéré
: on voit qu’on y trouve aussi « Octobre » dans les suite possibles pour cette phrase.
C’est cohérent, Colomb a touché les côtes des Bahamas le 12 octobre 1492.]
Mais attention, je le rappelle, quand on utilise GPT pour compléter une phrase, on ne va pas
forcément produire des choses « vraies ».
[DL1492 Par exemple si je tape « David Louapre a découvert l’Amérique en », ça n’a
aucun lien avec la réalité. Mais GPT s’en moque, il ne va pas refuser de répondre sous
prétexte que c’est faux. Il fait donc la seule chose qu’il sache faire : il propose
un mot pour compléter la phrase.
Et là il me propose aussi 1492. Même si on voit dans les probabilités qu’il aurait
pu proposer d’autres choses.
Comme toujours, il essaye de générer le prochain mot d’une façon qui colle le plus
avec son corpus d’entrainement, ou ici, d’une façon qui dépareille le moins possible.
Même si « David Louapre » ça ne colle pas, les mots « amérique » « découverte »,
il associe cela toujours fortement à 1492.]
Un autre test pour bien illustrer ce qu’il se passe dans la tête de GPT.
[BOND Si je tape comme prompt « Dans le film de James Bond « La trahison ne se cache
jamais », l’acteur qui joue James Bond s’appelle » … et là vous voyez qu’il
n’y a pas de notion de vrai ou faux, le film n’existe même pas, c’est un titre
inventé.
Mais GPT cherche des complétions plausibles, qui ne dépareillent pas trop. Il me propose
naturellement « Daniel Craig », mais si on regarde les probabilités, on voit qu’il
considérait aussi en bonne position « Pierce », pour Pierce Brosnan, Sean pour Sean Connery,
etc.
Ce sont toutes des complétions raisonnables. Même si ce film n’existe pas, une telle
phrase n’aurait pas trop dépareillé dans le corpus initial.
Petite variation : si je précise que le film est vieux, les probabilités changent. Eh
bien oui, cette précision augmente la probabilité qu’il propose un des premiers acteurs qui
ont joué James Bond comme Sean Connery ou Roger Moore.]
Donc retenez ça : GPT cherche le prochain mot d’une façon qui soit raisonnable, qui
ne dépareille pas trop vis-à-vis de son corpus. Et « raisonnable », « plausible »,
c’est à prendre en compte non pas dans le sens de « proche de la vérité »,
mais dans le sens de : ça n’aurait pas été absurde de lire ces mots là associés
ensembles de cette façon dans le corpus d’entrainement.
Et on peut lui faire écrire des paragraphes entiers de choses qui n’existent pas.
[LICORNES Ici si je commence à lui parler de licornes argentées, et que je lui demande
de compléter plein de fois de suite, il m’invente tout un texte. Et le texte est pas mal, à
part pour les licornes elles-mêmes, ça pourrait tout à fait être issu d’un article de
journal.]
Et pour finir, si je tape un peu n’importe quoi, GPT va quand même essayer de compléter
ce texte de la façon la moins improbable pour lui. Bon je pense que vous avez compris
comment ça fonctionne.
Bien alors est-ce qu’on peut faire un chatbot avec ce genre de choses ? Eh bien pas tout
à fait. Evidemment, on peut essayer de taper des questions en guise de prompt, et espérer
une réponse en retour. Mais en fait, ça n’est même pas garanti.
GPT ne considère pas qu’on s’adresse à lui et qu’on lui pose une question, il
considère qu’il faut compléter le texte. Un texte qui commence par une question, ça
peut se poursuivre par une réponse, mais pas forcément.
[LUNE Si je tape : « Quelle est la masse de la Lune », il est tout à fait possible
qu’il complète avec une réponse censée, mais il peut aussi très bien compléter par
« Quelles sont les lois de la gravitation ? » « Qu’est-ce que la rotation de la lune
? » etc.
Eh oui, la phrase « quelle est la masse de la Lune » peut très bien se trouver
dans un exercice ou un sujet d’examen, et donc compléter une question par une autre
question, ça n’est pas absurde. C’est une complétion plausible.]
On voit avec ça que comme GPT n’est pas entrainé à suivre des instructions mais
à juste compléter un texte, il n’est pas complètement adapté pour faire un chatbot.
Une possibilité pour l’emmener dans la direction où on veut, c’est de faire ce
qu’on appelle un preprompt.
Avant votre prompt, qui est votre question, vous écrivez une intro qui va en quelque
sorte mettre GPT dans l’ambiance du genre de texte qu’on veut le voir rédiger.
[PREPROMPT Par exemple, « Ceci est une conversation entre un humain et un professeur de physique »
: - Quelle est la masse de la Lune ? » Et là il y a des chances que GPT soit plus enclin
à compléter selon ce qu’on désire. Comme s’il s’agissait vraiment d’une discussion
avec un prof de physique.]
Avec la méthode du preprompt, on peut en quelque sorte invoquer des personnes avec
qui on va pouvoir dialoguer. En faisant un preprompt qui invite un spécialiste de tel
ou tel sujet, on augmente les chances que GPT nous complète notre phrase avec quelque
chose de pertinent.
Cette idée du preprompt est également à la base de certaines applications comme Replika
qui vous proposent de parler avec un ou une amie virtuelle. Avec un bon pre-prompt l’échange
produit pourra plus ou moins ressembler à celui qu’on aurait avec quelqu’un de réel.
Donc si maintenant on veut que GPT se comporte comme un chatbot omniscient et sympathique,
il suffit de lui indiquer dans le preprompt. Un truc du genre « Ceci est une conversation
entre un humain et un chatbot très savant, et qui est toujours gentil, utile, poli, bienveillant
et aidant ».
[SYDNEY On ne connait pas exactement le preprompt utilisé par ChatGPT, c’est secret, et manifestement
il évolue. Mais certains auraient réussi à obtenir celui de Sydney, la variante utilisée
par le moteur Bing.
Voici ce que ce serait, c’est assez long vous voyez, et ça contient plein d’instructions
assez précises sur sa façon de répondre, et notamment le fait de ne pas révéler qu’il
s’appelle Sydney.]
Mais attention, utiliser un pre-prompt, ça ne fait pas tout. Pour bien vous montrer les
limites, il y a un point amusant.
[COMPLETION DIALOGUE Si vous posez une question dont la réponse est courte et que vous demandez
à GPT de compléter, parfois il va non seulement donner la réponse, mais écrire la question
suivante, voire carrément toute la suite du dialogue.
Ou bien des fois il va choisir de compléter la question par un truc que je n’ai pas
demandé.]
Une dernière fois pour la route : GPT n’est pas entrainé à répondre à des questions
ou à suivre des instructions, mais à prolonger des textes. Pour essayer de corriger un peu
cela dans le modèle, il existe une méthode : ce qu’on appelle le fine-tuning. Le réglage
fin.
Le fine-tuning, c’est l’idée de prendre un modèle déjà entrainé, comme GPT, et
de le spécialiser en prolongeant son entrainement sur des textes bien choisis, qui ressemblent
plus à ce qu’on attend de lui.
[FONDATION FINETUNING L’entrainement initial c’est pour apprendre les grandes règles
de vocabulaire, de syntaxe, de grammaire, de relations entre les mots etc. C’est pour
ça qu’on parle d’un modèle de fondation. Et ensuite on spécialise le modèle sur la
tâche qui nous intéresse vraiment grâce à du finetuning.]
OpenAI a ainsi créé InstructGPT, qui a été « fine-tuné » à partir de GPT en étant
exposé à des réponses rédigées par des humains, et qui correspondaient au style qu’on
attendrait d’un chatbot utile et bienveillant. Cette phase correspond donc à un apprentissage
supervisé plus classique, puisque l’on utilise cette fois bien des données crées
à la main par des humains.
En combinant preprompt et finetuning, on arrive à des résultats plus proches de ce qui est
attendu d’un chatbot. Mais pour augmenter encore la qualité, OpenAI a utilisé en plus
une troisième technique : l’apprentissage par renforcement avec feedback humain.
[jingle]
Pour permettre à ChatGPT de proposer des réponses encore plus pertinentes, OpenAI
a ajouté une troisième couche d'apprentissage, utilisant cette fois ce qu'on appelle l'apprentissage
par renforcement. L'idée est de partir de réponses fournies par ChatGPT à certaines
questions, et de faire évaluer ces réponses par des humains.
Ca n’est pas comme la phase de finetuning où des humains devaient carrément proposer
des réponses, là ils doivent juste juger les réponses que fournit ChatGPT. Une façon
simple, ce serait de leur demander de noter la qualité de la réponse, par exemple entre
0 et 20.
[RLHF En pratique comme tout le monde n'a pas les mêmes échelles de notation, on procède
plutôt par comparaison : pour une même question, on demande à un humain de comparer différentes
réponses produites par ChatGPT, et de les classer entre elles.
A partir de ces évaluations, on peut entrainer ce qu'on appelle un modèle de récompense,
qui va servir à aider le modèle de langage à s’orienter vers des réponses qui ressemblent
à celles qu’attendent ou que préfèrent les humains. Du moins les humains qui ont
fait les évaluations dans cette phase d’apprentissage par renforcement.]
Cette phase est d'ailleurs aussi une façon à ce stade de s'assurer que le modèle ne
sort pas de réponses qui pourraient être jugées illégales, dangereuses, haineuses
ou tout simplement inappropriées pour l'usage auquel il est destiné.
[RESUME Si on combine donc l'ensemble des ingrédients qu’on a mentionné : fine-tuning,
apprentissage par renforcement avec feedback humain, et preprompt, on comprend qu’il
est possible de spécialiser un modèle de fondation.
Et d’en faire ainsi un chatbot comme ChatGPT, qui soit plus pertinent, utile et plus respectueux
que GPT, qui avait simplement ingurgité tous les textes d’internet.]
Alors à l'issue de tout ça : qu'est-ce qu'il faut penser de ChatGPT ? Sur des questions
ayant une réponse simple et déjà bien documentée, il fonctionne très bien. Mais en soi ça
n'apporte pas grand chose de plus que Wikipédia ou une recherche Google.
Ce que l'on sait des modèles de machine learning, c'est qu'il sont souvent assez bons
pour interpoler, c'est-à-dire bien traiter une situation nouvelle, mais qui soit suffisamment
proche d'un ensemble de cas qu'ils ont pu voir dans leur entrainement.
Et on peut souvent le vérifier ici : le modèle peut produire des réponses intéressantes
et même inventives à des questions originales ou pas forcément toujours bien formulées.
On décrit parfois l'intelligence ou la créativité comme la facilité à relier des choses qui
n’ont pas forcément de lien apparent ou évident. Et de ce point de vue là, c’est
intéressant de voir que ChatGPT montre des signes indéniables de certaines de ces capacités.
On pourrait passer des heures à passer en revue ce que ChatGPT fait bien, et ce sur
quoi il échoue lamentablement. Mais d'une part vous en avez certainement déjà vu passer
plein d'exemples, d'autre part, ça bouge tellement vite que tout ce que je pourrai
raconter sera peut-être caduc dans quelques semaines.
Un point sur lequel j’ai envie quand même commenter, et sur lequel ChatGPT est particulièrement
mauvais, c'est le fait de citer des sources. Si on le fait parler d'un phénomène scientifique,
et qu'on lui demande les références des publications d'où il tire ses conclusions,
on obtient la plupart du temps des articles complètement inventés qui n'existent absolument
pas.
Ca peut paraitre assez embêtant, mais à nouveau si on réfléchit à comment fonctionne
le modèle, on l'explique assez bien. GPT ne raisonne pas, il ne cherche pas sur Internet,
il n'a pas de mémoire explicite : il se contente de générer des textes plausibles dont les
mots collent bien ensemble.
Et quand on regarde le format des citations d'articles scientifiques, franchement tout
se ressemble. Et donc n'importe quel séquence de mots qui respecte vaguement le format standard,
ça passera à ses yeux comme une complétion tout à fait crédible pour faire office de
référence scientifique.
D'autant que bien souvent dans un article scientifique, les références sont groupées
en un gros paquet à la fin, et en lisant uniquement ces sections, on a bien du mal
à deviner le contexte de chacune de ces citations.
Et pour ChatGPT, c'est un peu pareil, une référence random avec à peu près les bons
auteurs et le nom d'un journal qui existe vraiment, il invente un volume et un numéro
de page, et ce sera jugé comme parfaitement raisonnable étant donné son mode de fonctionnement.
Ce problème spécifique des sources semble assez difficile à résoudre en se basant
uniquement sur le principe d'un modèle de langage. Mais on peut imaginer qu'en couplant
ces modèles a des mécanismes de recherche sur Internet ou dans des bases de données,
cette question des sources inventées finira par être résolue.
Merci d’avoir suivi cette vidéo, comme toujours abonnez-vous, rejoignez aussi le
Discord de science étonnante, le lien est en description, c’est le meilleur moyen
d’avoir des nouvelles qui ne soient pas filtrées par l’algo Youtube, et on se retrouve
très vite pour une nouvelle vidéo. A bientôt. POSE MINIATURE
5.0 / 5 (0 votes)