VT2020-OpenAI GPT-3-Fiche

= OpenAI =



OpenAI a été fondé en tant qu'association le 11 décembre 2015 par plusieurs personnalité éminentes parmi lesquelles on peut compter Elon Musk (Tesla, SpaceX), Peter Thiel (Paypal) ou encore Reid Hoffman (LinkedIn). Ils déclarent alors « notre objectif est de faire progresser l’intelligence artificielle de la manière la plus susceptible de profiter à l’humanité dans son ensemble, sans être contrainte par la nécessité de générer un rendement financier » (billet complet ici). Leur principaux concurrents sont alors Google, Microsoft et Facebook.

En Mars 2019, consciente de la difficulté de rester à la pointe de la recherche en IA, l'association devient une association à "but lucratif plafonné" pour attirer des capitaux et augmenter les investissements. Puis en Septembre de la même année, ils publient GPT-2 : un modèle de traitement du langage naturel évidemment basé sur l'intelligence artificielle et intégrant un milliard et demi de paramètres. En Juillet 2020, ils publient un nouveau modèle sobrement intitulé GPT-3, contenant lui, 175 milliards de paramètres.

= GPT-3 =

GPT-3 est donc comme son prédécesseur un modèle de langage (ou modèle linguistique) qui a été créé à partir d'un réseau de neurones. Son acronyme signifie "generative pre-training" simplement car, d'une part il est génératif dans le sens ou il ne se contente pas de répondre oui ou non à une question mais il est capable de générer une longue séquence de texte original qu'on appellera completion. D'autre part il est préformé car il a été formé sur un ensemble de données d'entraînement, ici un dataset dit CommonCrawl. Cela consiste en un florilège de 45 Teraoctets des pages Web les plus populaires des dernières années (entre 2016 et 2019). Ces données ont également été complétées par OpenAI avec des ouvrages d'autre type comme des livres.



Les tâches qu'il peut réaliser
La spécificité des modèles de langage GPT par rapport à leurs concurrents est leur généralisme. En effet, il existe plusieurs tâches auxquelles ils peuvent répondre :
 * La classification
 * Elle consiste à ranger des données ou des phrases par groupes. Par exemple, définir le sentiment associé à un tweet : Positif, Négatif ou Neutre


 * La transformation
 * Elle peut aller de la traduction de textes, à la synthèse de ceux-ci.


 * La génération
 * GPT-3 peut générer des idées à partir du corpus sur lequel il a été entraîné. Par exemple je peux lui demander dimaginer des titres de vidéos Youtube à partir de leur description.


 * La complétion
 * Par exemple, un testeur à écrit un premier paragraphe sur un sujet "comment organiser une réunion efficace" et le modèle l'a complété en écrivant un tutoriel en 3 étapes.


 * La conversation
 * Discussion avec un chatbot, Questions/Réponses ...


 * Réponse factuelles
 * Le modèle peut répondre à des questions du type "Qu'est ce qu'un atome ?" ou "Qui est Steven Spielberg ?"

Là ou la plupart des modèles actuels sont entraînés pour une seule de ces taches bien précises, GPT-3 est lui capable d'effectuer n'importe laquelle avec une efficacité impressionnante. Et en réalité, GPT-3 est plutôt une famille de modèles qu'un modèle en lui-même. En effet, il a été décliné en plusieurs modèles parmi lesquels figurent les 4 dont on a accès avec la bêta : davinci, curie, babbage, ada. Davinci étant le plus capable mais par ailleurs le plus complexe, tandis qu'ada est le plus rapide mais le moins capable.

Les concepts clés de GPT-3
Pour bien comprendre comment utiliser l'API, il y a 3 concepts à saisir : le prompt, la completion et les tokens.

Le prompt est l'entrée texte qu'on envoie à l'API. Il sert à lui montrer est doit donc être le plus clair possible. Il ne suit pas un langage de programmation particulier, il suffit d'écrire un anglais suffisamment démonstratif et une tâche à sa portée pour qu'il renvoie une completion claire. Sa seule limite est que, combinés, le prompt et la completion ne pourront pas excéder 2048 tokens de longueurs. Pour plusieurs tâches comme la génération et la traduction, il doit contenir des exemples pour que le modèle soit efficace (par exemple pour une traduction, donner 2 ou 3 phrases traduites de l'anglais au français).

La completion est le texte généré par le modèle en réponse au prompt envoyé. Il prend également la forme d'un texte. Lorsqu'on envoie une requête à l'API avec notre prompt, on peut aussi jouer sur différents paramètres faisant varier la completion. Les plus utiles sont maxTokens qui permet de choisir la taille de la réponse et temperature qui permet de changer son "déterminisme", c'est-à-dire que plus il est proche de 0, plus on aura une réponse factuelle, et plus il est proche de 1, plus le modèle prendra des "libertés" dans sa réponse.

Les tokens peuvent s'apparenter à ce qu'on appelle le contexte linguistique en français. Cependant, un mot ne correspond pas forcément à un token, par exemple GPT-3 explique que le nom propre "Descartes" se décomposera en 3 tokens : "Desc", "art" et "es". La limite de 2048 tokens pour le prompt et la completione revient donc à une limite d'environ 1500 mots.

=Quelques chiffres=

- Le réseaux de neurones qui a permis d'entraîner GPT-3 est fait de 96 couches. A titre de comparaison, son dauphin Turing-NLG (Microsoft) en utilisait 78 et GPT-2 en utilisait 48.

- Cette intelligence artificielle utilisée manipule non pas des mots mais des vecteurs construits à partir du vocabulaire qu'il connait et la fréquence d'apparition de ces mots. Seulement ici ces vecteurs ne comportent pas que 2 dimensions mais 12288. On appelle ce paramètre le word-embedding.

- L'ordinateur utilisé pour l’entraîner figure parmi les 10 plus puissants du monde et il est doté d'environ 10 000 cartes graphiques (Quadro RTX 8000). Cet entraînement sur un seul GPU prendrait 355 ans et coûterait 4.6 millions de dollars d'après lambda-computing.

- Etant l'un des premiers modèles aussi généralistes, il existe très peu de benchmarks avec des modèles concurrents mais on peut trouver cette comparaison entre les différentes variantes de GPT-3. On a demandé à chacune deux d'enlever des symboles aléatoires au milieu d'un mot en lui donnant de 0 à 100 exemples auparavant :



= Limites et dangers =
 * Le modèle n'a été entraîné que sur de l'anglais, tous les prompts doivent donc lui être écrits en anglais.
 * Sa completion peut parfois perdre de la cohérence si on lui demande de formuler de long textes, il a tendance à se répéter dans ce cas de figure.
 * Le modèle n'est pas performant lorsqu'on lui passe des textes avec des sous-entendus, il ne distingue pas le sens implicite des textes. Il est également peu efficace lorsqu'on lui passe par exemple un texte à trou.


 * L'API ne permet pas encore à ses utilisateurs ou du moins à tous ses utilisateurs de faire de fine-tuning, c'est-à-dire entraîner (encore plus) GPT-3 à des tâches spécifiques
 * La consommation est astronomique : l'entrainement d'un seul processeur a dégagé autant d'équivalent carbone qu'un vol au dessus des Etats-Unis (étude complète ici)
 * Tirant la majeure partie de ses données d'entraînement sur internet, GPT-3 est très sujet aux préjugés et aux discriminations :



= Démonstration =

Une démonstration est disponible.

= Sources =
 * 1) OpenAI: OpenAI API (accessible seulement après inscription sur la liste d'attente)
 * 2) OpenAI: About OpenAI
 * 3) OpenAI: OpenAI timeline
 * 4) Siecle Digital: OpenAI devient une société à « but lucratif plafonné » pour attirer de nouveaux capitaux
 * 5) Siecle Digital: GPT-3 : OpenAI dévoile son impressionnant modèle de traitement de langage naturel
 * 6) Wikipedia: OpenAI
 * 7) LesNumériques: GPT-3, l'intelligence artificielle qui écrit des articles (presque) seule
 * 8) elyase: awesome-gpt3 (dépot qui recense les démonstrations existantes de GPT-3)
 * 9) Le Monde: GPT-3, l’intelligence artificielle qui a appris presque toute seule à presque tout faire (Laurent Besacier est cité dans l'article !)
 * 10) Priya Shree: The Journey of Open AI GPT models
 * 11) Sigmoid: GPT-3: All you need to know about the AI language model
 * 12) lambdalabs: OpenAI's GPT-3 Language Model: A Technical Overview
 * 13) dugas.ch: The GPT-3 Architecture, on a Napkin (vulgarisation du fonctionnement des réseaux de neurones et leur application à GPT-3)
 * 14) OpenAI: Language Models are Few-Shot Learners (étude menée par des chercheurs d'OpenAI sur les performances de leur modèle linguistique)
 * 15) College of Information and Computer Sciences University of Massachusetts Amherst: Energy and Policy Considerations for Deep Learning in NLP (étude de l'université d'Amherst sur l'impact environnemental de l'entraînement de réseaux de neurones)
 * 16) Anthony Alford: AI Training Method Exceeds GPT-3 Performance with 99.9% Fewer Parameters (article évoquant une nouvelle méthode de deep learning, PET, qui nécessite moins de paramètres et qui semble efficace avec suffisamment d'exemples)

= Veille Technologique 2020 =
 * Année : VT2020
 * Sujet : OpenAI GPT-3
 * Slides : slides ([[Media:GPT-3-presentation.pdf|version pdf]])
 * Auteurs : Baptiste Boléat