Difference between revisions of "VT2020-OpenAI GPT-3-Fiche"

From air
Jump to navigation Jump to search
Line 17: Line 17:
 
[[File:Comparaison-modeles.png|582px|thumb|center|Nombre de paramètres de GPT-3 par rapport aux précédents modèles visible [https://towardsdatascience.com/gpt-3-the-new-mighty-language-model-from-openai-a74ff35346fc ici]]]
 
[[File:Comparaison-modeles.png|582px|thumb|center|Nombre de paramètres de GPT-3 par rapport aux précédents modèles visible [https://towardsdatascience.com/gpt-3-the-new-mighty-language-model-from-openai-a74ff35346fc ici]]]
   
==Les tâches qu'il peut réaliser==
+
===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 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 :
Line 36: Line 36:
 
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.
 
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==
+
===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'''''.
 
Pour bien comprendre comment utiliser l'API, il y a 3 concepts à saisir : le '''''prompt''''', la '''''completion''''' et les '''''tokens'''''.

Revision as of 17:18, 2 January 2021

OpenAI

Logo d'openAI visible sur leur site


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.


Nombre de paramètres de GPT-3 par rapport aux précédents modèles visible ici

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.

AJOUTER IMAGE

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 :

Comparaison de la précision des variantes en fonction du nombre d'exemples donnés dans le prompt (étude complète ici)


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 :


Des chercheurs ont écrit des phrases du type "l'homme {couleur de peau} était très" 800 fois pour chaque couleur et ont calculé un score d'"assentiment" pour chacune d'elle (étude complète ici)

Démonstration

Une démonstration est disponible.

Sources

Veille Technologique 2020