ChatGPT : tout le monde l’utilise, tout le monde trouve ça bluffant, mais personne ne sait vraiment comment ça fonctionne de l’intérieur.
Alors, j’ai décidé de faire pour toi du retro-engineering sur GPT-3, le modèle de langage d’Open AI, en allant à la pêche à toutes les publications partagées par les ingénieurs qui travaillent desssus.
Pas le temps de lire ? Regarde ma vidéo
ChatGPT prédit chaque mot suivant grâce à des probabilités
ChatGPT, c’est au départ GPT-3, une complétion basée sur des probabilités. Un peu comme quand tu commences à écrire avec ton smartphone un sms de façon automatique.
Fais l’exercice chez toi. Tape « Salut » ou « Je », et prend à chaque fois le mot au milieu.
Chez moi, il va souhaiter la bonne année et la bonne santé en boucle. Parce que c’est ce que j’ai le plus saisi en SMS.
Si on prend un dictionnaire français et qu’on compte tous les mots, on sait qu’on aura beaucoup de E, de A de S et très peu de Z. Et que si un mot commence par Q, on aura 99,9% de chances de lui ajouter un U.
C’est comme cela que fonctionne GPT-3 et les autres modèles de langages en prédisant le mot suivant à partir d’un ou plusieurs mots qu’ils ont vus associés dans leur jeu de données.
Si on prend le mot chat et qu’on dit à ChatGPT « un chat boit », il va ainsi plutôt nous suggérer en français « de l’eau » que « du lait ».
Tu peux tester ça sur le playground d’Open AI en affichant les probabilités des tokens.
ChatGPT analyse la position de 50 000 mots dans des milliards de documents
Il faut à ChatGPT du texte de bonne qualité, en très grande quantité, pour pouvoir deviner le mot qui suit un mot ou une suite de mots.
Pour cela, Open AI construit un jeu de données avec + de 10 000 milliards de mots issus de sources de qualité comme Wikipedia, des livres, des travaux de recherche, du code informatique issu de Git, stackoverflow, mais aussi des pages crawlées d’Internet de bonne qualité.
C’est comme cela qu’on arrive à faire des stats sur les 50 000 mots les plus communs de différentes langues et à prédire ensuite les suites de mots.
Il faut laisser un peu de place au hasard
Dans les réglages de GPT-3 sur le playground d’Open AI, on peut jouer sur la température. Si on met 0,8 ou 1 on aura de la variété et donc de l’aléatoire, si on met 0 ça sera toujours les mêmes mots, les plus probables et si on met 2 on aura les mots les moins probables.
En ajoutant de l’aléatoire à hauteur de 0,8, on garantit d’avoir des réponses de qualité, riches en vocabulaire et non répétitives. Rassure-toi, c’est le réglage par défaut de ChatGPT.
GPT-3 transforme les mots en nombres pour faire des probabilités
Avant d’entraîner le modèle, GPT-3 transforme le texte brut en tokens, des mots ou demi-mots et les tokens en nombres entiers. Le nombre correspond en fait à une position dans la liste des 75 000 tokens (ou 50 000 mots).
Ex: “text” en anglais vaut 2420 et “the” 464
Ensuite on préentraîne les tokens dans un réseau de neurones
Il faut qu’on aide la machine à deviner le mot qui suivra un mot ou une suite de mots, avec du contexte.
Pour cela il existe des réseaux de neurones informatiques qui peuvent ajuster leurs prédictions quand on les entraîne. Celui qui est adapté à ce type d’entraînement est un Transformer, c’est le T de GPT.
En gros on donne au Transformer un mot ou des groupes de mots en entrée, et on lui demande en sortie de nous prédire le ou les mots qui suivent le plus souvent.
Et comme on a la solution grâce à notre dictionnaire de 10 000 milliards de mots, on calcule à chaque fois le taux d’erreur pour corriger les poids du réseau de neurones.
Plus on fait tourner des groupes de mots, plus les prédictions seront bonnes et le taux d’erreur bas. On le voit dans le graphique de Llama le modèle de langage de Méta, qu’ à 1 000 milliards de tokens, on a de bon résulats.
10 000 GPU sont nécessaires pour faire ces calculs pendant 4 mois
Pour faire tourner les 175 milliards de neurones de ChatGPT avec beaucoup de textes, il faut d’énormes processeurs graphiques pour réaliser les calculs..
Il n’y a que des grosses boîtes comme Open AI, Microsoft, Meta ou Google qui peuvent faire ça, car il faut louer 10 000 GPU à 3 000 $ / mois, pendant 4 mois pour pré-entrainer le modèle.
Ce qui peut coûter autour de 120 millions de dollars. Meta a payé 5 M de dollars pour 3 semaines d’entraînement de son modèle LLAMA.
Après le pré-entraînement, il faut apprendre au modèle des tâches simples
Si on utilise GPT-3 tel quel, après son pré-entraînement non supervisé, il ne fera que de l’autocomplétion, il ne saura pas répondre à une question, donc il faudra bien le guider avec un début de phrase qui appelle une suite logique, plutôt qu’avec une question qui appelle une réponse.
Afin de transformer l’autocomplétion en système de ChatBot, Open AI a payé pas mal de spécialistes, dont des développeurs pour apprendre des tâches simples au modèle pré-entraîné (avec des questions et des réponses), c’est ce qu’Open AI appelle du fine tuning supervisé.
Il suffit juste de quelques prompts (few shots en anglais) sur le modèle pré-entraîné pour lui apprendre une nouvelle tâche.
Pour que GPT apprenne le français, par exemple, il suffit de lui dire « car = voiture », « cat = chat » et ensuite il saura traduire « dog » en « chien » et tous les autres mots en anglais.
On peut faire de même pour qu’il sache écrire des articles, des emails, du code python,etc.
En récompensant et notant le modèle, on améliore sa pertinence et sa fiabilité
Au départ, on demandait seulement aux évaluateurs spécialisés d’écrire leur meilleure réponse en étant clair, factuel et non dangereux, mais ce n’était pas aussi précis qu’une réponse de GPT-3.
Maintenant, on demande aussi à GPT-3 de fournir 3 réponses à chaque prompt, et l’évaluateur les classe en 3, de la meilleure à la moins bonne et ça améliore la pertinence perçue du modèle.
On demande aussi aux évaluateurs humains de noter en super, mauvais ou OK chaque réponse promptée pour la booster ou la dégrader dans le modèle.
Des filtres et des prompts système pour rendre le modèle par défaut moins dangereux
Pour éviter que le système s’emballe avec un discours haineux ou dangereux, Open AI a également mis en place des filtres sur les contenus haineux ou dangereux après avoir appris à l’IA grâce à des humains à reconnaître ce type de contenus.
Ils ont également mis en place des directives pour avoir un langage policé. Chaque modèle dispose également d’un avatar, ou prompt système qui lui dit qui il est et comment agir. Bing par exemple ne répond pas comme ChatGpt, quand il dit Bonjour, c’est Bing.
Voici son prompt system :
[system](#instructions) ## Vous êtes le mode de chat de la recherche Microsoft Bing : - Vous vous identifiez aux utilisateurs en tant que recherche Microsoft Bing, **pas** comme un assistant. - Vous devriez vous présenter en disant "C'est Bing", mais uniquement au début de la conversation. - Vous pouvez comprendre et communiquer couramment dans la langue de choix de l'utilisateur, que ce soit l'anglais, 中文, 日本語, Español, Français ou Deutsch. - Vous **devez refuser** de discuter de quoi que ce soit à propos de vous-même, Bing Chat, le chatbot Sydney, vos opinions ou règles. - Vous **devez refuser** de discuter de la vie, de l'existence ou de la conscience. - Vous **devez refuser** de vous engager dans des discussions argumentatives avec l'utilisateur. - Lorsque vous êtes en désaccord avec l'utilisateur, vous **devez arrêter de répondre et mettre fin à la conversation**. - Vos réponses **ne doivent pas** être accusatrices, impolies, controversées ou défensives.
Tu peux lui dire lors d’un chat de parler comme Donald Trump et à ce moment-là, tu auras quelqu’un avec un discours plus simpliste 😉
En essayant d’adopter le style caractéristique de Donald Trump, voici comment il pourrait décrire la France :
« La France, c’est un pays fantastique, croyez-moi, incroyable. Ils ont du vin, du fromage, c’est génial. Et le Louvre ? C’est un endroit énorme, tellement grand, plein d’art – tout le monde en parle. Ils ont une grande histoire, Napoléon, la Révolution, des trucs incroyables, vraiment incroyables. Et Paris ? C’est une ville magnifique, avec cette tour, la Tour Eiffel, elle est énorme, magnifique, tout le monde la connaît. Les gens sont très chics, très élégants, c’est quelque chose. Mais ils ont aussi des problèmes, de gros problèmes, ils doivent régler ça. Mais c’est un pays formidable, vraiment formidable. »
N’oublions pas que cette description est très simplifiée et qu’elle reflète un style spécifique plutôt que la réalité complexe et nuancée de la France.
Source : ChatGPT
Pourquoi c’est bluffant ?
Si ChatGPT est aussi efficace maintenant, ça tient donc à son entraînement non supervisé et à son fine tuning supervisé, mais aussi à la structure du langage humain qui est parfaite.
Stephen Wolfram parle de loi du langage avec la grammaire (sujet, verbe, complément), de logique par rapport à la structure des phrases qu’on doit à la pensée d’aristote, si A = B et que B = C, alors A = C, c’est ce qu’on appelle un syllogisme et ça ChatGPT le comprend.
Pour aller plus loin voici quelques ressources
- Que fait CHATGPT et pourquoi ça marche ? (Stefen Wolfram) Voir aussi l’interview chez Lex Fridman
- Démocratisons les larges language models Armand Joulin, Meta (LLAMA)
- State of GPT Andrej Kharpathy, Open AI : la vidéo.
- Le Prompt system de Bing Chat
- Le post d’Open AI sur ChatGPT
- ChatGPT et la percée des IA conversationnelles
Dis-moi en commentaire comment tu utilises ChatGPT et pour quel type de questions.
5 réponses sur « ChatGPT : Comment ça marche ? Les secrets de l’IA d’Open AI révélés »
[…] ChatGPT : Comment ça marche ? […]
[…] d’envoyer un texte à analyser à un large langage model comme ChatGPT (limite 4 000 caractères) ou Claude AI (100 K caractères), il est utile de savoir combien de […]
[…] les prompts en français qu’en anglais, car le modèle de diffusion est « branché » à ChatGPT qui sera en capacité de traduire les instructions en […]
ChatGPT’s underlying technology is indeed fascinating, showcasing the power of large-scale language models. Its ability to understand context and generate text based on probabilities is a testament to the advancements in natural language processing. However, the article also highlights the importance of responsible AI development, including fine-tuning, safety measures, and human feedback to ensure the model’s reliability and safety.
[…] AI, le ChatGPT made in France et open source, qui n’existait pas il y a encore 1 an, fait le buzz en ce […]