GPT-3 peut exécuter du code, rechercher une valeur dans une table de recherche,
le modèle de langage autorégressif semble avoir des problèmes avec les grands nombres

Récemment, OpenAI a publié une mise à jour de GPT-3 pour l'édition et l'insertion de texte. Cette mise à jour apporte une nouvelle couche de contrôles à ce que GPT-3 va faire et modifier. Par exemple, nous pouvons fournir un texte d'entrée et une commande et laisser GPT-3 transformer le texte d'entrée en une sortie attendue.

La génération automatique de texte (GAT) ou Natural Langage Generation (NLG) est un processus logiciel qui transforme des données structurées en langage naturel. Le générateur de texte le plus connu est le GPT-3 d'OpenAI, qui a récemment annoncé qu'il est utilisé dans plus de 300 applications, par des « dizaines de milliers » de développeurs et qu'il produit 4,5 milliards de mots par jour, avec une précision de 91 %.

Nom : gpt-3.jpg
Affichages : 922
Taille : 12,4 Ko

« Neuf mois après le lancement de notre premier produit commercial, l'API OpenAI, plus de 300 applications utilisent désormais GPT-3, et des dizaines de milliers de développeurs du monde entier construisent sur notre plateforme. Nous générons actuellement en moyenne 4,5 milliards de mots par jour et nous continuons à faire augmenter le trafic de production », a déclaré OpenAI.

GPT-3 est un modèle de langage autorégressif qui utilise l'apprentissage profond pour produire des textes similaires à ceux des humains. Il s'agit du modèle de prédiction du langage de troisième génération de la série GPT-n créé par OpenAI, un laboratoire de recherche en intelligence artificielle basé à San Francisco et composé de la société à but lucratif OpenAI LP et de sa société mère, la société à but non lucratif OpenAI Inc.

A partir de l’exemple ci-dessous, il est possible de convertir JSON en YAML

Nom : Input.jpg
Affichages : 923
Taille : 43,3 Ko

La façon dont l'interface utilisateur est structurée suscite l’intérêt de certains developpeurs. En effet, l’interface utilisateur comporte trois sections principales : entrée, instruction et sortie. Le programme ressemble à une fonction qui prend une entrée et renvoie une sortie.

Fonctions booléennes

Le GPT-3 peut exécuter une instruction vrai/faux pour une commande spécifique et simple comme les palindromes et les nombres au carré.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Input
Input: 123, Output: 
Input: 121, Output: 
Input: 111, Output: 
Input: 123454321, Output: 
Input 123123, Output: 
 
# Instruction
Output true if input is a palindrome
 
# Output
Input: 123, Output: false
Input: 121, Output: true
Input: 111, Output: true
Input: 123454321, Output: true
Input 123123, Output: false

Fonctions statistiques simples

Le GPT-3 peut effectuer des statistiques simples dans une certaine mesure. Par exemple, il semble comprendre comment trouver une somme, une moyenne, une médiane et un mode.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
# Input
Input: 1, 4, 5, 6, 2, 1, 1
Output:  
 
# Instruction
Output is the mean of the input
 
# Output
Input: 1, 4, 5, 6, 2, 1, 1
Output: 2.28571428571

Cependant, à mesure que la valeur de chaque entrée augmente, la précision de la réponse commence à s'écarter.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
# Input
Input: 50, 55, 12, 10, 55, 22, 11, 53, 55
Output: 
 
# Instruction
Output is the mean of the input
 
# Output
Input: 50, 55, 12, 10, 55, 22, 11, 53, 55
Output: 35.55555555555556 (correct answer is 35.8888...)


Fonctions de transformation de listes

Le GPT-3 peut appliquer une commande pour mettre à jour une liste de nombres. L'addition, la soustraction, la multiplication et la division renvoient la bonne réponse tant que les nombres sont petits.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
# Input
Input: 58, 18, 96, 28, 83, 85, 91, 84
Output: 
 
# Instruction
Output is each value plus 10
 
# Output
Input: 58, 18, 96, 28, 83, 85, 91, 84
Output: 68, 28, 106, 38, 93, 95, 101, 94

Fonctions de parcours de données

GPT-3 peut rechercher une valeur dans une table de recherche.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Input
Input: 4, Output: 3
Input: 3, Output: 
Input: 23, Output: 
Input: 30, Output: 
Input: 8, Output: 
 
# Instruction
Output is the nth fibonacci number
 
# Output
Input: 4, Output: 3
Input: 3, Output: 2
Input: 23, Output: 28657
Input: 30, Output: 832040
Input: 8, Output: 21

Fonctions algébriques

C'est dans cette catégorie de fonctions que les choses commencent à devenir plus intéressantes GPT-3 n'a aucun problème à comprendre les formules algébriques simples.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Input
Input: 50, Output: 
Input: 12, Output: 
Input: 6457, Output: 
Input: 43, Output: 
Input: 1.5, Output: 
Input: -1, Output: 
 
# Instruction
f(x) = x+3
Output is f(input)
 
# Output
Input: 50, Output: 53
Input: 12, Output: 15
Input: 6457, Output: 6460
Input: 43, Output: 46
Input: 1.5, Output: 4.5
Input: -1, Output: 2

GPT-3 a du mal avec les grands nombres, les nombres décimaux et les nombres négatifs. Lorsqu'il est utilisé, il renvoie des réponses proches mais souvent incorrectes.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
# Instruction
f(x) = 2x+3
Output is f(input)
 
# Output
Input: 50, Output: 103
Input: 12, Output: 27
Input: 6457, Output: 12913 (correct answer is 12,917)
Input: 43, Output: 89
Input: 1.5, Output: 5.5    (correct answer is 6)
Input: -1, Output: -3      (correct answer is 1)

Fonctions Python

En augmentant l'abstraction d'un cran, GPT-3 peut exécuter des fonctions Python. En testant ci-dessous la capacité de GPT-3 à comprendre les conditionnels, les boucles, la récursion, les paramètres multiples, les retours multiples et les fonctions multiples.

Conditionnelles

GPT-3 n'a eu aucun problème avec les conditionnels. Il était même capable de comprendre le pseudo-code dans un bloc Python. Par exemple, il a compris une condition comme if isOdd(x) : sans avoir besoin de voir l'implémentation de la méthode.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Input
Input: 50, Output: 
Input: 12, Output: 
Input: 6457, Output: 
Input: -1, Output: 
Input: 31, Output: 
Input: 30, Output: 
 
# Instruction
def f(x):
  if x > 30:
    return "too large"
  else: 
    return x + 3
 
Output is f(input)
 
# Output
Input: 50, Output: too large
Input: 12, Output: 15
Input: 6457, Output: too large
Input: -1, Output: 2
Input: 31, Output: too large
Input: 30, Output: 33

Récursion

GPT-3 maîtrise la récursion simple. Il peut calculer une fonction avec une seule fonction récursive. Lorsqu'on lui donne plusieurs appels récursifs où il doit combiner la solution, comme f(x-1) + f(x-2), GPT-3 a du mal. Il semble toutefois obtenir des solutions dans la bonne fourchette.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Input
Input: 4, Output: 7
Input: 5, Output: 
Input: 6, Output: 
Input: 7, Output: 
Input: 8, Output: 
 
# Instruction
def f(x):
  if x <= 1:
    return x
  y = x - 1
  return 2 + f(y)
 
Output is f(input)
 
# Output
Input: 4, Output: 7
Input: 5, Output: 9
Input: 6, Output: 11
Input: 7, Output: 13
Input: 8, Output: 15

Paramètres multiples, retours multiples et fonctions multiples

Le GPT-3 a eu des difficultés avec les fonctions à paramètres multiples. Bien qu'il comprenne qu'il existe un certain nombre de paramètres, il confond souvent une variable avec une autre.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Input
Input: 4, 10 Output: 
Input: 5, 4 Output: 
Input: 6, 5 Output: 
Input: 8, 3 Output: 
 
# Instruction
def f(x0, x1):
  return x0 + x1 * 2;
 
Output is f(input)
 
# Output
Input: 4, 10 Output: 24
Input: 5, 4 Output: 14  (correct answer is 13)
Input: 6, 5 Output: 16
Input: 8, 3 Output: 14

Selon Maytee, l’auteur de cette expérience, la capacité d'édition de GPT-3 est un pas de plus vers le Saint Graal de l'informatique, où un programme divin peut transformer n'importe quelle entrée en sortie correcte. GPT-3 semble avoir des problèmes avec les grands nombres. GPT-3 a tendance à estimer une fonction algébrique au lieu d'évaluer les nombres, donc la réponse n'est correcte que jusqu'à une certaine approximation.

« Je postule qu'un certain poids dans les fonctions algébriques apprises biaise la façon dont il prend ses décisions. Si l'on fait un parallèle avec moi, lorsqu'on me donne un "grand" nombre à multiplier, comme 29*21, je ne fais pas la longue multiplication complète dans ma tête. Au lieu de cela, je simplifie les nombres puis je les calcule. Au lieu de 29*21, je réévalue le problème à 30*20, ce qui me permet de deviner rapidement que le résultat sera d'environ 600. J'ai choisi d'arrondir les deux chiffres à la position des dizaines parce que la table de 10 est plus facile à gérer pour mon cerveau. GPT-3 pourrait faire quelque chose de similaire », déclare Maytee.

L'estimation pourrait être le moyen pour GPT-3 de contourner le manque apparent d'une bonne mémoire de travail. Bien que GPT-3 possède des références aux faits et aux entrées, il semble avoir des difficultés à mettre à jour et à modifier cette mémoire. En conséquence, GPT-3 a du mal avec des opérations comme x+=x. S'il avait accès à une mémoire externe où GPT-3 peut lire, écrire et accéder aux données, il pourrait choisir de faire la multiplication longue au lieu d'estimer. Le parallèle humain est de faire une multiplication dans la tête plutôt qu'avec un crayon et un stylo. Ce dernier est beaucoup plus facile à faire car vous avez plus d'espace de tête.

« Pour certaines instructions, j'ai dû soumettre la demande plusieurs fois jusqu'à ce que j'obtienne le bon résultat. J'ai appris que si j'introduis dans l'invite un exemple de sortie correcte, cela semble augmenter la probabilité que GPT-3 renvoie le bon résultat. Il est intéressant de noter que parfois GPT-3 ignore l'exemple et le remplace par une réponse différente. Le caractère aléatoire de certaines réponses était assez intriguant », révèle Maytee. Il semble que GPT-3 soit capable d'effectuer des calculs réguliers. Peut-être que la prochaine itération sera plus robuste pour des nombres plus importants et des instructions complexes.

Source : Maytee.eth's blog

Et vous ?

Que pensez vous e GPT-3 ?

L'exécution du code par GPT-3 met-elle en danger la fonction de programmeur ?

Voir aussi :

Microsoft crée un autocompléteur de code à l'aide de GPT-3, le système de génération de texte d'OpenAI, pour combler le manque de développeurs dans le monde

GPT-3, le système de génération de texte d'OpenAI, produit désormais 4,5 milliards de mots par jour, avec une précision de 91 %

Open AI présente DALL-E (comme GPT-3), un modèle qui crée des images à partir de texte, pour un large éventail de concepts exprimables en langage naturel

Un chatbot médical GPT-3 d'OpenAI serait-il une bonne idée ? Il a dit à un patient simulé de se suicider, lors d'un test réalisé par Nabla