VT2020-OpenAI GPT-3-Fiche: Difference between revisions

From air
Jump to navigation Jump to search
No edit summary
No edit summary
 
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
= Appache Pinot =
= OpenAI =


[[File:Openai-cover.png|300px|thumb|right|Logo d'openAI visible sur leur [https://openai.com/ site]]]
== Abstract ==


«''Pinot is a real-time distributed OLAP datastore, built to deliver scalable real-time analytics with low latency. It can ingest from batch data sources (such as Hadoop HDFS, Amazon S3, Azure ADLS, Google Cloud Storage) as well as stream data sources (such as Apache Kafka).
Pinot was built by engineers at LinkedIn and Uber and is designed to scale up and out with no upper bound. Performance always remains constant based on the size of your cluster and an expected query per second (QPS) threshold.''» - Documentation officielle de Appache Pinot


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 [https://openai.com/blog/introducing-openai/ 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.
== Origine ==
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 =
== Présentation des Fonctionnalités ==


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.


== Avantages ==


[[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===


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 :
== Limites ==
;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 ?"


= Exemples d'utilisation =


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.
== Uber eats ==


===Les concepts clés de GPT-3===
«''Uber eatsà créé UberEats Rstaurent Manager qui est dashboard d'analyse de données très complet qui permet au propriétaire d'un établissement de restauration de connaître toutes les données relatives auxx commandes liées à UberEats.
Celà permet par exemple de récupérer des données concernant des informations relatives à la satisfacction client, aux menus les plus populaires, les ventes ou la qualité du service.
Grâce à la technologie Appache Pinot il est donc possible à tout moment de savoir pour le gérant le niveau de traffic relatif à UberEats pour son restaurent.''»


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 [https://lambdalabs.com/blog/demystifying-gpt-3/ 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 :

[[File:Benchmark.png|820px|thumb|center|Comparaison de la précision des variantes en fonction du nombre d'exemples donnés dans le prompt (étude complète [https://arxiv.org/abs/2005.14165 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 [https://arxiv.org/abs/1906.02243 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 :


[[File:Racial-sentiment.png|627px|thumb|center| 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 [https://arxiv.org/abs/2005.14165 ici])]]

= Démonstration =

Une [https://air.imag.fr/index.php/VT2020-GPT-3-Demo démonstration] est disponible.


= Sources =
= Sources =
#[https://beta.openai.com/dashboard?supportSignUp=true&supportForgotPassword=true&email=bat.boleat13%40gmail.com&message=Your%20email%20was%20verified.%20You%20can%20continue%20using%20the%20application.&success=true&code=success# OpenAI: '''OpenAI API'''] (accessible seulement après inscription sur la [https://share.hsforms.com/1Lfc7WtPLRk2ppXhPjcYY-A4sk30 liste d'attente])
#https://docs.pinot.apache.org/
#https://www.youtube.com/watch?v=cNnwMF0pOJ8]
#[https://openai.com/about/ OpenAI: '''About OpenAI''']
#https://www.youtube.com/watch?v=mRkWT_EU99M
#[https://openai.com/timeline/ OpenAI: '''OpenAI timeline''']
#[https://siecledigital.fr/2019/03/13/openai-devient-une-societe-a-but-lucratif-plafonne-pour-attirer-de-nouveaux-capitaux/ Siecle Digital: '''OpenAI devient une société à « but lucratif plafonné » pour attirer de nouveaux capitaux''']
#https://medium.com/@gowthamy/big-data-battle-batch-processing-vs-stream-processing-5d94600d8103
#[https://siecledigital.fr/2020/07/21/gpt-3-limpressionnant-modele-de-traitement-du-langage-naturel-dopenai/ Siecle Digital: '''GPT-3 : OpenAI dévoile son impressionnant modèle de traitement de langage naturel''']
#https://github.com/zzhang5/zooinspector
#[https://fr.wikipedia.org/wiki/OpenAI Wikipedia: '''OpenAI''']
#https://github.com/npawar/pinot-tutorial
#[https://www.lesnumeriques.com/appli-logiciel/gpt-3-l-intelligence-artificielle-qui-ecrit-des-articles-presque-seule-a154707.html LesNumériques: '''GPT-3, l'intelligence artificielle qui écrit des articles (presque) seule''']
#https://github.com/apache/incubator-pinot
#[https://github.com/elyase/awesome-gpt3 elyase: '''awesome-gpt3 (dépot qui recense les démonstrations existantes de GPT-3)''']
#https://pinot.apache.org/
#[https://www.lemonde.fr/sciences/article/2020/11/03/gpt-3-l-intelligence-artificielle-qui-a-appris-presque-toute-seule-a-presque-tout-faire_6058322_1650684.html#:~:text=GPT%2D3%20appartient%20%C3%A0%20la,partir%20de%20donn%C3%A9es%20d'entra%C3%AEnement. Le Monde: '''GPT-3, l’intelligence artificielle qui a appris presque toute seule à presque tout faire'''] (Laurent Besacier est cité dans l'article !)
#https://docs.pinot.apache.org/basics/getting-started
#[https://medium.com/walmartglobaltech/the-journey-of-open-ai-gpt-models-32d95b7b7fb2 Priya Shree: '''The Journey of Open AI GPT models''']
#[https://www.sigmoid.com/blogs/gpt-3-all-you-need-to-know-about-the-ai-language-model/ Sigmoid: '''GPT-3: All you need to know about the AI language model''']
#[https://lambdalabs.com/blog/demystifying-gpt-3/ lambdalabs: '''OpenAI's GPT-3 Language Model: A Technical Overview''']
#[https://dugas.ch/artificial_curiosity/GPT_architecture.html dugas.ch: '''The GPT-3 Architecture, on a Napkin'''] (vulgarisation du fonctionnement des réseaux de neurones et leur application à GPT-3)
#[https://arxiv.org/abs/2005.14165 OpenAI: '''Language Models are Few-Shot Learners'''] (étude menée par des chercheurs d'OpenAI sur les performances de leur modèle linguistique)
#[https://arxiv.org/abs/1906.02243 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)
#[https://www.infoq.com/news/2020/10/training-exceeds-gpt3/ 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 =
= Veille Technologique 2020 =
* Année : [[VT2020]]
* Année : [[VT2020]]
* Sujet : Appache Pinot
* Sujet : OpenAI GPT-3
* Slides : [[Media:VT2020-AppachePinot-Presentation.pdf|Slides]]
* Slides : [https://baptboleat.github.io/gpt3-presentation/ slides] ([[Media:GPT-3-presentation.pdf|version pdf]])
* Auteur : RUZAFA Rémy
* Auteurs : Baptiste Boléat

Latest revision as of 11:19, 3 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.

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

  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