Quand chatGPT d’OpenAI aide à coder en Python
- 2022-12-15
- Publié par : Christophe DELEUZE
- Catégorie : Python
En ce moment, il se passe quelque chose d’intéressant dans le monde informatique, notamment côté IA.
OpenAI, qui est une entreprise à « but lucratif plafonné » en intelligence artificielle basée à San Francisco et qui était, avant 2019, une association à but non lucratif, vient de sortir de son chapeau un nouveau type d’algorithme assez bluffant nommé : GPT-3.
Quelques mots sur GPT-3
De cet algorithme est sorti deux choses :
- Dall-E, qui permet de générer des images à partir de texte ;
- ChatGPT qui est un chatbot capable de créer un échange de manière naturelle sur n’importe quel sujet.
GPT-3 est l’abréviation de Generative Pre-training Transformer 3. Il s’agit d’un modèle de Deep Learning composé d’algorithmes capables de reconnaître des modèles de données et qui peuvent également apprendre par le biais d’exemples. Son apprentissage est basé sur le traitement du langage naturel et a été entraîné avec 175 milliards de paramètres. Dans cet article (en anglais), OpenAI explique comment fonctionne et a été entraîné ChatGPT : « Nous avons entraîné ce modèle à l’aide de l’apprentissage par renforcement à partir de la rétroaction humaine (RLHF), en utilisant les mêmes méthodes qu’avec InstructGPT (des modèles intégrant l’humain dans la boucle), mais avec de légères différences dans la configuration de la collecte de données ».
Alors, ne nous voilons pas la face, ce n’est évidemment pas encore à la portée de tous de pouvoir entraîner ce type de réseau, car en plus de fournir la puissance de calcul, il faut aussi avoir les données (et les droits légaux de les utiliser), mais cela va sans doute très vite se démocratiser.
Arrêtons ici les considérations techniques, et flirtons avec le frivole en jouant un peu avec leur chat bot afin de voir si nous pouvons faire des choses pertinentes en rapport avec la programmation Python.
L'introduction de cet article selon chatGPT
Commençons simple et faisons comme tout le monde, demandons à ChatGPT ce qu’il peut nous dire sur OpenAI, GPT & lui-même :
Maintenant que nous avons laissé le chat bot s’exprimer et se présenter, rentrons dans le vif du sujet.
Utiliser chatGPT comme un interpréteur Python
Ce qui permet de se faire une idée de la qualité d’un chat bot, c’est sa capacité à répondre de manière cohérente à un échange écrit avec un être Humain. Pour cela, le chat bot doit analyser le texte et garder en mémoire le contexte de l’échange avec l’utilisateur. C’est exactement cela que nous allons tester dans les exemples suivants.
Plutôt que d’attaquer mollement, rentrons dans le vif du sujet de manière efficace avec un exemple concret demandant au chat bot de répondre à une demande complexe composée d’une suite d’instructions qui nécessitera de la part du bot : interprétation, contextualisation et suivi d’instructions. Concrètement, nous allons voir comment se comporte ChatGPT quand on lui demande d’être un interpréteur Python.
Jusque-là, c’est déjà pas mal et assez impressionnant. Poussons un peu plus loin la démonstration et essayons de voir comment ChatGPT réagit en lui demandant de résoudre une équation dont l’une des variables est issue du contexte précédent et dont la seconde n’est pas définie, ce qui devrait entraîner une erreur.
On notera que le chat a été capable de conserver correctement le contexte et qu’il a été aussi capable d’ajouter une note pertinente pour expliquer sa réponse. Pas mal non ?
En étant attentif au premier pavé d’instructions que nous avons demandées au chat, on remarquera que nous lui avions spécifié de ne pas afficher d’explications, ce qu’il fait en général et qui est très pratique. Or, pour sa défense, le chat fait clairement la distinction entre les explications du code et des commentaires. Il est donc capable, dans une certaine mesure, de fournir des réponses subtiles et c’est assez remarquable. Si nous lui demandions de ne pas ajouter de note, il n’en fournirait plus. Faite le test et vous verrez.
Maintenant, corrigeons l’équation en définissant la variable b et en refaisons le calcul.
Encore une fois, on remarque que chatGPT garde bien en mémoire les instructions dictées au début de la conversation et qu’il se cantonne simplement à générer des snippets de code sans explication, en dehors du cas où nous avons intentionnellement généré une erreur.
Factoriser du code Python à la demande
Mais ChatGPT peut faire encore mieux. Demandons-lui de factoriser le code écrit précédemment.
Sans surprise, le chat a réussi à récupérer le code et l’a intégré dans une fonction. J’apprécie aussi tout particulièrement le soin qu’il a apporté au nommage de la fonction. Évidemment, nous sommes dans un cas simple. Ce qui serait intéressant, c’est de voir ce qu’il peut faire avec de la factorisation de code dans des cas plus complexes, mais je laisse à vos soins d’essayer de pousser les limites du service.
Modifier du code Python à la demande
Si ChatGPT sait factoriser du code, peut-il le modifier ? Peut-on, en langage naturel, itérer sur des modifications de code ?
C’est ici que la démonstration est assez impressionnante et ouvre des perspectives. Sa capacité à traduire des instructions en langage naturel vers du code Python est pointue et efficace. La réponse colle exactement à la demande et valide le fait que l’on peut utiliser ChatGPT pour itérer encore et encore sur des modifications de code. Ce chat Bot un donc un outil qui pourrait réellement avoir une plus-value pour aider un développeur ou un étudiant dans l’apprentissage d’un langage de programmation.
Rechercher des exemples de code Python
Nous avons déjà pas mal débroussaillé les capacités de ChatGPT. Toutefois, avant d’aborder le mot de la fin, voici ce que le chat bot peut encore nous dire quand on lui demande des exemples de code comme : afficher une régression linéaire.
Et voici ce qu’il nous dit quand on lui demande un comment envoyer un message sur WhatsApp en utilisant une librairie spécifique :
La note est toujours pertinente, mais elle est en anglais et nous, sur pythoniste.fr, nous essayons de vulgariser le Python en français, alors soyons exigeant !
Le mot de la fin
Les réponses fournies par ChatGPT sont vraiment bluffantes et on comprend facilement l’engouement de la communauté informatique face à ces résultats.
Les débouchés de ce type d’algorithme promettent d’être très intéressants et vont sans aucun doute ouvrir de nouvelles perspectives dans l’univers de l’informatique :
- Aide à l’apprentissage ;
- Soutiens au développeur ;
- Analyse de code ;
- Compréhension de texte ;
- Génération de texte ;
- …
Je vous invite réellement à suivre, au moins de loin, les évolutions de ce type d’algorithme, car en fonction de la capacité qu’il aura à se démocratiser dans le public et le privé, il sera précurseur de pas mal de changements en perspectives ! Vivement la version 4 de cet algo pour voir ce qu’il pourra faire de plus, mais n’oubliez pas qu’en l’état, cet algorithme ne remplace pas un développeur et qu’il apportera aussi son lot de problématique notamment dans le domaine d’apprentissage. Quid de la dépendance à ce service par de futurs développeurs ? Où de la dégradation de l’acquisition de compétences en développement informatique par des étudiants qui n’utiliseraient que cet outil ?
Cela promet de faire parler encore beaucoup tout en ouvrant plein de questions et de possibilités en perspectives.
Si vous voulez tester par vous-même, voici les liens :
Merci beaucoup, c’est très utile et instructif ce que vous donne. Merci