Pour rendre le texte généré automatiquement plus humain et utile, OpenAI a créé le modèle de langage “Generative Pre-trained Transformer 3” (GPT-3), qui génère un texte humain réaliste.
Avec juste une petite quantité de texte en entrée, GPT-3 a été utilisé pour écrire des articles, des poèmes, des histoires, des reportages et des dialogues qui peuvent être utilisés pour produire d’énormes volumes d’une excellente copie.
GPT-3 a été développé par OpenAI, une société de recherche sur l’IA cofondée par Elon Musk et a été considérée comme l’avancée la plus importante et la plus utilisable en IA depuis des années. Il contient 175 milliards de paramètres d’apprentissage, ce qui le rend 10 fois plus grand que n’importe quel modèle de langage jamais construit.
Apprenez à utiliser GPT-3 de différentes manières passionnantes et utiles, de l’utiliser comme aide à la rédaction au développement d’une boîte de discussion complexe, en la concevant pour converser avec vous sur vos sujets préférés.
Prérequis de GPT3
Travailler avec OpenAI
OpenAI Playground est une plate-forme Web pour jouer et modéliser des solutions basées sur GPT-3. Ici, nous allons travailler sur un projet et essayer quelques prototypes pour résoudre une variété de problèmes.
Nous verrons également comment convertir le travail que vous avez effectué dans le Playground en un programme Python autonome dans le prochain blog.
Exigences
Pour suivre les exemples de ce tutoriel, tout ce dont vous avez besoin est une licence OpenAI GPT-3.
Actuellement, OpenAI exécute un programme bêta pour GPT-3, et vous pouvez leur demander directement une licence bêta.
Vous aurez besoin d’avoir un Python 3.6 ou plus récent, uniquement si vous êtes intéressé par l’écriture d’applications GPT-3 en Python.
Le Playground d’OpenAI
Comme mentionné ci-dessus, le GPT-3 doit être formé pour produire la sortie de texte souhaitée, et cela peut être facilement fait dans l’OpenAI Playground.
Avant de commencer, comprenez l’aspect principal de cette interface :
sur le côté droit, la barre latérale propose quelques options pour configurer le type de GPT-3 qu’il est censé produire.
Pour interagir avec le moteur GPT-3, il y a une grande zone de texte. Le paragraphe en gras est ce que GPT-3 reçoit en entrée. L’aspect clé de la formation du moteur est de lui apprendre quel type de texte doit être généré en lui donnant des exemples.
La deuxième apparition du préfixe est la dernière partie de l’entrée, nous donnons à GPT-3 une section qui a un préfixe et du texte, suivi d’une ligne qui a le préfixe. Cela indique à GPT-3 qu’il doit produire du texte pour terminer le deuxième paragraphe afin qu’il corresponde au ton et au style du premier paragraphe.

Lorsque vous avez terminé avec le texte de formation et les options définies comme requis, appuyez sur « Soumettre » en bas, et GPT-3 examine le texte saisi et initie plus de texte à faire correspondre. Si vous appuyez à nouveau sur « Soumettre », GPT-3 s’exécute à nouveau et produit un autre bloc de texte.
Préréglages GPT-3
Connectez-vous à OpenAI Playground, familiarisez-vous avec l’interface.
Dans la barre de navigation, dans le coin supérieur droit, sélectionnez l’un des modèles de langage :
dans ce didacticiel, nous allons utiliser le modèle DaVinci, qui est le plus avancé à l’heure actuelle, assurez-vous de l’utiliser également. Une fois que vous avez appris à travailler avec le Playground, vous pouvez essayer d’autres modèles et travailler avec eux également.

Au-dessus de la zone de texte, il y a une autre liste déroulante avec l’étiquette « Charger un préréglage… »
Ici, OpenAI permet certains préréglages prêts à être utilisés pour différentes utilisations de GPT-3.
Sélectionnez le préréglage « anglais vers français ». Après avoir choisi un préréglage, le contenu de la zone de texte est mis à jour avec un texte d’entraînement prédéterminé pour celui-ci. Les paramètres de la barre latérale droite sont également mis à jour.
Dans le cas du modèle « anglais vers français », le texte affiche quelques phrases en anglais, chacune avec sa traduction en français :

Comme dans l’exemple ci-dessus, chaque ligne commence par un préfixe. Étant donné que cette application comporte des lignes anglaises et des lignes françaises, le préfixe est différent pour aider GPT-3 à donner un sens au modèle.
Remarque : il y a un préfixe anglais vide au bas du texte, où nous pouvons entrer le texte que nous aimerions que GPT-3 traduise en français. Entrez une phrase en anglais, puis appuyez sur le bouton « Soumettre » pour que GPT-3 génère la traduction française. Voici l’exemple que j’ai utilisé :

Chaque préréglage fourni par OpenAI est facile à utiliser et accessible, ce serait une bonne idée d’essayer d’autres préréglages. Les préréglages « Q&A » et « Résumer pour un élève de 2e année » sont fortement recommandés.
Création d’applications GPT-3
Les préréglages fournis par OpenAI Playground sont amusants à utiliser et à travailler, vous pouvez utiliser vos idées pour utiliser le moteur GPT-3. Dans cette section, nous allons explorer toutes les options fournies dans le Playground pour créer les applications.
La génération d’une solution basée sur GPT-3 nécessite d’écrire le texte d’entrée pour entraîner le moteur et d’ajuster les paramètres de la barre latérale en fonction de vos besoins.
Pour suivre les exemples de cette section, assurez-vous de réinitialiser Playground à ses paramètres par défaut. Pour ce faire, supprimez tout le texte de la zone de texte et, si vous avez sélectionné un préréglage, cliquez sur le « x » à côté de son nom pour le supprimer.
Température
Le réglage le plus important pour contrôler la sortie du moteur GPT-3 est la « température ». Il est responsable du caractère aléatoire du texte généré. Une valeur de 0 indique que le moteur est prédéfini, ce qui signifie qu’il créera la même sortie quel que soit le texte d’entrée. Une valeur de 1 rend le moteur très créatif et prend la majorité des risques.

Commençons le prototypage d’une application en réglant la température sur 0. Le paramètre « Top P » a également un certain contrôle sur le caractère aléatoire de la réponse, alors assurez-vous qu’il est à sa valeur par défaut de 1. Réglez tous les autres paramètres également sur leur valeur par défaut valeurs.
Cette configuration aidera GPT-3 à agir comme prévu, ce sera un bon début pour essayer les choses.
Vous pouvez taper du texte et appuyer sur « Soumettre » pour voir comment GPT-3 ajoute plus de texte. Dans l’exemple ci-dessous, le texte « Python est » a été saisi et le reste a été généré par GPT-3.

Sachez que GPT-3 n’aime pas les chaînes d’entrée qui se terminent par un espace car cela provoque des comportements imprévisibles. Vous pouvez être prêt à ajouter un espace après le dernier mot de votre entrée, mais gardez à l’esprit que cela peut causer des problèmes. Si par erreur vous laissez un ou plusieurs espaces à la fin de votre saisie, le Playground affichera un avertissement.
Augmentez la température à 0,5. Supprimez le texte généré ci-dessus, Avec le texte : ‘Python est’, cliquez sur « Soumettre ». Désormais, GPT-3 a plus de liberté pour terminer la phrase. En conséquence :

pour voir comment GPT-3 devient plus ou moins créatif, essayez différentes valeurs de température avec ses réponses. Remettez la valeur de température à 0 et réexécutez la requête d’origine « Python est ».
Longueur de la réponse
Vous avez dû le remarquer, GPT-3 s’arrête souvent au milieu d’une phrase. Vous pouvez utiliser le paramètre « Longueur de la réponse » pour contrôler la quantité de texte à générer.
Le paramètre par défaut pour la longueur de réponse est 64, ce qui signifie que 64 jetons seront ajoutés au texte, un jeton étant défini comme un mot ou un signe de ponctuation.
Avec la température définie sur 0 et une longueur de 64 jetons, et le texte : « Python est ». Maintenant, vous pouvez appuyer une deuxième fois sur le bouton « Soumettre » pour que GPT-3 attache un autre ensemble de 64 jetons ajoutés à la fin.

L’image ci-dessus se termine par une phrase incomplète, pour éviter ce problème, vous pouvez définir la longueur sur une valeur supérieure à ce dont vous avez besoin, puis supprimer la partie incomplète à la fin.
Préfixes
L’utilisation d’un court préfixe pour chaque ligne de texte peut aider GPT-3 à mieux comprendre la réponse attendue. Considérez le scénario suivant : nous voulons que GPT-3 génère des noms pour les variables métasyntaxiques que nous pouvons utiliser dans notre code. Ce sont des variables d’espace réservé couramment utilisées dans les exemples de codage, tels que foo et bar.
GPT-3 peut être entraîné en affichant l’une de ces variables et en lui permettant d’en générer d’autres. Nous pouvons à nouveau utiliser foo comme entrée, mais cette fois, nous allons appuyer sur Entrée et déplacer le curseur sur une nouvelle ligne pour dire à GPT-3 que la réponse doit être sur la ligne suivante. Malheureusement, cela ne fonctionne pas car GPT-3 ne comprend pas ce que nous voulons :

le GPT-3 n’est pas capable de comprendre que nous voulons plus de lignes comme celle que nous avons entrée.
Essayons d’ajouter un préfixe, var: foo comme entrée, et tapez également var: dans la deuxième ligne pour forcer GPT-3 à suivre notre modèle. Maintenant, la deuxième ligne est incomplète contrairement à la première ligne, nous donnons des indications claires que nous voulons ajouter « quelque chose comme foo ».

Arrêter les séquences
L’option « Arrêter les séquences », qui apparaît en bas de la barre latérale droite, permet de définir une ou plusieurs séquences lorsqu’elles sont générées et force le GPT-3 à s’arrêter.
En suivant l’exemple de la section précédente, nous aimerions n’avoir qu’une seule nouvelle variable à chaque fois que nous appelons le moteur GPT-3. Nous pouvons utiliser le même préfixe comme séquence d’arrêt puisque nous préfixons chaque ligne avec var: et amorçons le moteur en insérant le préfixe seul dans la dernière ligne de l’entrée.
Trouvez les « Séquences d’arrêt » dans la barre latérale et entrez var : suivi de Tab.

Cliquez maintenant sur « Soumettre » et modifiez le texte d’entrée pour inclure var : foo dans la première ligne et uniquement var : dans la seconde. Le résultat est maintenant une variable unique :

Tapez var: à nouveau dans la troisième ligne du texte d’entrée et soumettez, et vous en obtiendrez une de plus.

Texte de départ
Chaque fois que nous voulons demander une réponse, nous devons taper le préfixe de la ligne que GPT-3 doit compléter.
Dans les paramètres, l’option « Injecter le texte de départ » indique au Playground le texte à joindre automatiquement à l’entrée avant d’envoyer une demande à GPT-3. Placez le curseur dans ce champ et tapez var :

Avec var : foo, vous pouvez réduire le texte à une seule ligne. Appuyez sur Entrée pour déplacer le curseur au début de la deuxième ligne, puis appuyez sur « Soumettre » pour afficher la variable suivante. Chaque fois que vous soumettez, vous en recevrez un nouveau avec les préfixes ajoutés automatiquement.

Utilisation de plusieurs préfixes
Le générateur de noms de variables que nous avons utilisé dans les sections précédentes adopte l’approche directe consistant à afficher GPT-3 sous forme d’échantillon de texte et à en demander davantage.
Une autre façon de s’engager avec GPT-3 est de lui faire effectuer un certain type d’analyse et de transformation sur le texte d’entrée avant de générer le résultat. À titre d’exemple de ce type d’interaction, nous n’avons vu jusqu’à présent que le paramètre de traduction de l’anglais vers le français. D’autres options incluent les chatbots de questions-réponses, le fait que GPT-3 corrige les erreurs grammaticales dans le texte d’entrée, et des options encore plus ésotériques comme la transformation des instructions de conception en anglais en HTML.
L’utilisateur et GPT-3 ont une conversation dans ces projets, ce qui nécessite l’utilisation de deux préfixes pour distinguer les lignes qui appartiennent à l’utilisateur et les lignes qui appartiennent à GPT-3.
Pour présenter cette approche de projet, nous allons créer un tweet bot qui recevra une notion compliquée de l’utilisateur et répondra avec une explication de base qu’un enfant de cinq ans peut comprendre.
En cliquant sur le symbole de la poubelle, vous pouvez restaurer votre Playground dans son état d’origine.

Nous allons montrer à GPT-3 un exemple d’interaction pour nous aider à créer un générateur de tweets. Le préfixe Clé : sera utilisé sur la ligne qui montre l’élément que nous voulons expliquer, tandis que tweet : sera utilisé sur la ligne qui contient l’explication.
Assurez-vous d’utiliser des mots simples dans la réponse qui sera utilisée pour la formation, afin de générer d’autres réponses dans un style similaire
Définissez l’option « Inject Start Text » sur [enter]tweet : pour que le Playground injecte le préfixe pour le GPT -3 ligne automatiquement.
Pour que GPT-3 sache quand s’arrêter, nous devons en outre définir une séquence d’arrêt. Pour s’assurer que GPT-3 sait que les lignes « key » n’ont pas besoin d’être créées, nous pouvons utiliser key: ici. N’oubliez pas que vous devez appuyer sur la touche Tab pour terminer la saisie de la séquence d’arrêt dans ce champ.

Parce que la séquence d’arrêt est la façon dont nous arrêtons GPT-3, j’ai défini la longueur de réponse au maximum de 512. J’ai également réduit le curseur de température à 0,25 pour éviter que les réponses ne soient trop exagérées ou aléatoires, mais cela est un domaine dans lequel vous pouvez expérimenter différents paramètres pour voir ce qui vous convient le mieux.

Redémarrer le texte
Si vous avez commencé à expérimenter avec le générateur de tweet dans la dernière section, vous avez peut-être remarqué qu’à chaque fois que vous souhaitez poser une nouvelle question au bot, vous devez retaper la chose : préfixe.
L’option « Injecter le texte de redémarrage » dans la barre latérale peut être utilisée pour saisir automatiquement le préfixe suivant en insérant automatiquement du texte après la réponse GPT-3. J’ai tapé la clé : préfixe, suivi d’un espace.

Il est beaucoup plus facile d’interagir avec GPT-3 et qu’il nous explique les choses maintenant !

L’option
« Top P » Le paramètre « Top P » est une technique différente pour gérer le caractère aléatoire et la créativité du texte généré par GPT-3. Un seul parmi Température et Top P doit être utilisé, selon les directives OpenAI, donc si vous en utilisez un, assurez-vous que l’autre est réglé sur 1.
Je voulais observer comment les réponses GPT-3 différaient lorsque Top P était utilisé au lieu de Température, j’ai donc réglé Température sur 1 et Top P sur 0,25 :
Comme vous pouvez le voir, il n’y a pas beaucoup de différence, mais je pense que les réponses sont de moindre qualité. Considérez la réponse du voyage dans le temps, qui est une explication terrible, ainsi que la façon dont GPT-3 répète le concept de recherche d’informations dans deux des réponses.
J’ai augmenté Top P à 0,5 pour voir si je pouvais améliorer ces réponses

. En conséquence, la température de 0,5 est trop élevée à cette fin, et les réponses de GPT-3 deviennent plus ambiguës et informelles.
Après avoir expérimenté plusieurs projets et utilisé à la fois Temperature et Top P, j’ai conclu que Top P offre un meilleur contrôle pour les applications où GPT-3 est censé générer du texte avec précision et exactitude, tandis que Temperature est le meilleur pour les applications qui nécessitent des éléments uniques et créatifs. , ou même des réponses amusantes.
pour le mais j’ai trouvé que l’utilisation de Top P avec une valeur de 0,5 produit les meilleurs résultats.
Préréglages personnalisés
Nous avons expérimenté la majorité des choix de configuration et avons une première application intéressante sous la forme du tweet bot.
Vous devez enregistrer le bot et les paramètres qui vous conviennent le mieux avant de passer au projet suivant.
Commencez par réinitialiser le texte pour n’inclure que la partie de formation du texte, ainsi que la définition d’un microphone dans la troisième ligne, plus la chose : préfixe. Utilisez l’icône de la disquette pour enregistrer le projet en tant que préréglage une fois le texte remis à l’apprentissage initial :

Pour chaque préréglage enregistré, vous pouvez fournir un nom et une description.
Si vous souhaitez partager ce préréglage avec d’autres, vous pouvez utiliser le bouton de partage. Pour partager un préréglage, vous recevrez une URL à partager avec vos amis :

Pénalités pour la fréquence et la présence
Jetons un coup d’œil à deux autres options que nous n’avons pas encore explorées. Les curseurs « Frequency Penalty » et « Presence Penalty » vous permettent de déterminer le niveau de répétition que GPT-3 est autorisé dans ses réponses.

La pénalité de fréquence réduit la probabilité qu’un mot soit choisi à nouveau plus il a déjà été utilisé. La pénalité de présence ne tient pas compte de la fréquence d’utilisation d’un mot, mais uniquement de son apparition dans le texte.
La distinction entre ces deux alternatives est mineure, mais considérez la pénalité de fréquence comme une méthode pour éviter les répétitions de mots et la pénalité de présence comme un moyen d’éviter les répétitions de sujet.
Je n’ai pas été en mesure de comprendre comment ces deux alternatives fonctionnent. En général, j’ai observé que si ces paramètres sont définis sur zéro, GPT-3 ne se répétera pas en raison de la randomisation fournie par les paramètres Température et/ou Top P. Dans les rares cas où j’ai remarqué une duplication importante, j’ai simplement réglé les deux curseurs sur 1 et le problème a été résolu.
Voici un exemple où j’ai donné à GPT-3 une description du langage de programmation Python (que j’ai basé sur sa réponse) et lui ai ensuite demandé de décrire le langage JavaScript. Voici ce que j’ai avec les pénalités de température, de fréquence et de présence réglées sur zéro :

Cette description, comme vous pouvez le voir, n’est pas très bonne. JavaScript est un langage de script, selon GPT-3, et il est basé sur un prototype deux fois. J’obtiens une bien meilleure définition lorsque je règle les deux valeurs de pénalité de répétition sur 1 :

L’option « Best Of »
GPT-3 peut générer de nombreuses réponses à une requête en utilisant l’option « Best Of ». Après cela, le Playground choisit le plus beau et le présente.


Je n’ai pas trouvé de bon usage pour cette option car je ne sais pas comment une décision est prise entre plusieurs options. Lorsque cette option est définie sur une valeur autre que 1, le Playground arrête d’afficher les réponses au fur et à mesure qu’elles sont générées en temps réel, car il doit recevoir la liste complète des réponses avant de sélectionner la meilleure.
Affichage des probabilités de mots
« Afficher les probabilités », la dernière option de la barre latérale des options, est une fonctionnalité de débogage qui vous permet d’examiner pourquoi certains jetons ont été choisis.
Activez à nouveau le paramètre du bot tweet. Réglez « Afficher les probabilités » sur « Le plus probable », puis redémarrez le démarrage en utilisant le mot « livre » comme commande. Le texte résultant va être colorisé :

plus le fond d’un mot est sombre, plus il a de chances d’être choisi. Lorsque vous cliquez sur un mot, une liste de tous les mots considérés à cet endroit du texte apparaît. Ci-dessus, vous pouvez voir que j’ai sélectionné le terme « écrit », qui a une teinte claire, et il s’est avéré être la deuxième option la plus populaire après « pages ». En raison de la randomisation des paramètres Top P et/ou Température, ce mot a été choisi à la place du favori.
Lorsque cette option est définie sur « Le moins probable », la coloration est inversée, avec des arrière-plans plus sombres attribués aux mots qui ont été sélectionnés alors qu’ils n’étaient pas un choix probable.
Si vous choisissez « Full Spectrum », les mots les moins probables et les plus probables seront colorisés, avec des tons verts pour les plus probables et des rouges pour les moins probables.

GPT-3 humanise la communication avec le public et les clients de plusieurs manières, allant de la réponse aux requêtes de nombreuses manières à la génération de texte humain réaliste. Il peut être formé à divers aspects en termes de préréglages, de température, de longueur de réponse, de préfixes, de séquences d’arrêt, etc., non seulement pour produire automatiquement des résumés de texte et des codes de programmation, mais aussi pour discuter, écrire des applications, créer du contenu, écrire un e-mail, ou un article de blog, jouez aux échecs et pouvez même discuter avec vous.
Il surpasse les modèles linguistiques affinés basés sur des données de formation spécifiques à une tâche pour une variété de tâches linguistiques en utilisant seulement quelques exemples et descriptions de tâches. GPT-3 réussit également bien les activités non linguistiques qui impliquent le raisonnement, comme l’arithmétique.
Sans aucun doute, c’est aussi passionnant que cela peut paraître, maintenant à vous de jouer !