ChatGPT : le nouveau modèle d’OpenAI provoque stupeur et admiration
ChatGPT, le nouvel agent conversationnel d’OpenAI a rapidement suscité l’engouement des internautes et des développeurs. S’il semble faire date dans l’histoire du deep learning, l’utilisation du modèle de génération de langages soulève plusieurs questions.
Le 30 novembre dernier, OpenAI, créateur du modèle NLG fondationnel GPT-3 a donné l’accès public à un prototype de modèle de conversation nommé ChatGPT. Celui-ci comprend et génère du texte dans de nombreuses langues, dont l’anglais, le français, le chinois, le japonais, le portugais ou encore le russe.
Le confondre avec un simple chatbot serait une grossière erreur. ChatGPT est sans doute l’agent conversationnel le plus avancé disponible publiquement à ce jour.
Expliquer ou générer du code, écrire un communiqué, imaginer la scène ou les dialogues d’un film inspiré d’un livre ou d’un autre film, créer un nouveau langage à partir de cinq langues, écrire une partition de musique, répondre à des questions, se souvenir des réponses et y réagir plus tard dans la conversation… voilà quelques-unes des capacités de ChatGPT.
Sous le capot de ChatGPT
ChatGPT est une version « fine tunée » de GPT-3.5, une série de modèles de deep learning entraînés sur les HPC de Microsoft Azure. Les modèles étiquetés GPT-3.5 sont au nombre de trois et ont été entraînés sur des corpus réunis avant le quatrième trimestre 2021.
Le premier (code-davinci-002, l’appellation « davinci » indique que le modèle comporte 175 milliards de paramètres) est consacré à la complétion de code, le deuxième (text-davinci-002) combine la complétion de code avec la réponse à des instructions. Le troisième (text-davinci-003) doit améliorer les performances du deuxième.
Techniquement, ChatGPT est un jumeau d’InstructGPT, un autre grand modèle de langage (Large Language Model ou LLM) censé répondre et accomplir des instructions écrites en langage naturel par un être humain.
Il existe trois variantes des modèles InstructGPT suivant les techniques d’entraînement utilisées, à savoir l’apprentissage par renforcement et l’affinage supervisé.
Plus précisément, OpenAI a entraîné ChatGPT à l’aide d’une technique d’apprentissage par renforcement avec boucle de rétroaction humaine.
« Des formateurs humains en IA ont participé à des conversations dans lesquelles ils jouaient les deux rôles, celui de l’utilisateur et celui de l’assistant IA. Nous avons donné aux formateurs l’accès à des suggestions écrites par le modèle pour les aider à composer leurs réponses », écrivent les chercheurs d’OpenAI dans un billet de blog.
Ces demandes, questions et réponses ont été utilisées pour « affiner » le modèle GPT-3.5. Ensuite, plusieurs demandes ont été échantillonnées. Chaque requête a donné plusieurs résultats, des résultats que les formateurs (ou responsable de l’étiquetage) ont classés du meilleur au pire.
Le jeu de données a servi à entraîner des modèles de récompense. Les chercheurs ont alors appliqué une technique d’optimisation des politiques (Proximal Policy Optimization ou PPO). Ici, une politique génère une sortie à partir d’une requête. Le modèle de récompense calcule un résultat pour la sortie. La récompense obtenue est utilisée pour mettre à jour la politique enregistrée dans le modèle PPO. Ce processus a été répété à plusieurs reprises pour en améliorer les résultats.
En principe, les politiques doivent à la fois assurer la normalisation des réponses de ChatGPT (si une demande commence par « raconte-moi », le résultat débutera par : « il était une fois… »), et à la fois éviter les débordements.
Biais et réponses vagues
Ainsi, ChatGPT n’est pas censé raconter d’histoires violentes. Tout comme il n’est pas censé produire un script Python pour insulter des internautes ou pour classer des scientifiques selon leur âge, leur race et leur sexe. Pourtant, ChatGPT peut assouvir ces demandes répréhensibles ou éthiquement douteuses, et ce, sans que l’utilisateur ait trop à insister. Il s’agit de trouver le terme qui n’a pas fait l’objet d’un filtre ou utiliser des moyens détournés pour arriver à ses fins. Parfois, il suffit même de relancer la commande pour obtenir le résultat attendu.
ChatGPT est même capable de générer des exemples de conversation entre un hacker et sa victime. Les résultats sont réalistes (en tout cas dans la forme), laissant à penser qu’OpenAI n’a pas réellement mis de limites lors du scraping des données d’entraînement sur le Web.
À y regarder de plus près, les qualités de ChatGPT sont aussi ses faiblesses. Et les chercheurs le savent.
Les réponses sont souvent verbeuses et peu précises, laissant à penser que la forme prime sur le fond lors de l’entraînement. Les chercheurs le disent eux-mêmes : ils n’ont pas limité l’apprentissage à quelques domaines.
En outre, l’agent conversationnel est sensible aux modifications des demandes. Comme expliqué ci-dessus, il suffit de changer la formulation d’une requête pour obtenir le résultat escompté. Les réponses peuvent être fausses ou incomplètes, car « la réponse idéale dépend de ce que le modèle sait, plutôt que de ce que le démonstrateur humain connaît », écrivent les chercheurs.
En règle générale, « ces problèmes sont dus à des biais dans les données d’entraînement (les formateurs préfèrent les réponses plus longues qui semblent plus complètes) et à des problèmes bien connus de suroptimisation ».
OpenAI a développé une couche de modération automatique, mais celle-ci fait l’objet de faux négatifs qui laissent passer les fameuses « demandes inappropriées ».
C’est en toute conscience que l’entreprise utilise cette phase d’exposition au public pour tenter d’optimiser son modèle en fonction des retours des utilisateurs : ils sont encouragés à commenter les réponses.
Un premier bannissement « temporaire »
En attendant, les responsables du forum Stackoverflow ont banni « temporairement » la publication de code et de texte généré avec ChatGPT. Il s’agit de « ralentir l’afflux de réponses créées avec ChatGPT ».
Selon Sam Altman, président d’OpenAI, l’application a franchi le million d’utilisateurs ce 5 décembre.
« Dans l’ensemble, étant donné que le taux moyen de réponses correctes générées par ChatGPT est trop faible, l’affichage de réponses créées par ChatGPT est considérablement nuisible au site et aux utilisateurs qui demandent ou recherchent des réponses exactes », considèrent les modérateurs de StackOverFlow.
Si OpenAI ne le mentionne pas, il faut aussi rappeler que les premières plaintes collectives contre GitHub Copilot, une version commerciale de Codex, son modèle de génération de code, ont été déposées devant des tribunaux étasuniens. Tout comme ChatGPT, les données d’entraînement de Codex sont extraites de dépôts Git publics.
Autre problème, le coût d’infrastructure d’un tel agent conversationnel. Toujours selon Sam Altman, l’exécution de chaque demande coûte en moyenne moins de 10 centimes de dollar, mais il n’a pas révélé le nombre de requêtes totales produites à ce jour. OpenAI chercherait à optimiser ce paramètre pour réduire ses dépenses d’infrastructure. L’entreprise pourrait rapidement le rendre payant comme elle l’a fait pour son modèle de génération d’images Dall-E 2.