IA-t-il un copilote dans l'avion ?

Rédigé par Amélie Guillaumot & Romain Pialat

 - 

26 avril 2023


Peut-on utiliser ChatGPT comme un assistant dans notre travail quotidien, quelles sont ses limites quand il ne s’agit plus de blagues, quelles interrogations est-il nécessaire de se poser quand on utilise un outil tel que celui proposé par OpenAI ?

Dans cette deuxième partie, nous revenons principalement sur la thématique du développement informatique, qui aura fait beaucoup de bruit sur les internets, en détaillant, exemples à l’appui, les utilisations possibles de ChatGPT.

Du coup, ChatGPT, copilote ou capitaine ?

Besoin d'un coup de main ?

Publié le 04 avril 2023

« Il me faudrait un script python qui déplace tous les fichiers du dossier 'data' qui contiennent le mot 'secret' dans leur nom, dans le dossier 'secret_data' qui se trouve au même niveau que 'data', et qui les chiffre avec une clé de 16 octets exactement, qu'il me demandera en prompt. Il me faut un mécanisme de confirmation pour la clé (par exemple la demander deux fois), et pour l'algorithme de chiffrement je voudrais un AES-CBC-MAC. »

Sur ces paroles votre chef sort de votre bureau et vous laisse avec votre café que vous pensiez boire tranquillement en lisant vos mails. Vous avez bien suivi un module de cryptographie pendant vos études, AES ça vous parle mais alors CBC et MAC ? C'était il y a longtemps. Et de toute façon, vous n’êtes pas développeur non plus. Il va falloir aller jeter un œil sur de la documentation python pour savoir quelle librairie utiliser pour tout cela. Votre café est froid, vos mails ne sont pas ouverts, ce lundi matin commence bien.

Besoin d'un coup de main ?

scriptpython.jpg
 

 

Réponse donnée par ChatGPT quand on lui donne en invite le texte entre guillemets.

 

À la fois espéré et redouté par les développeurs, ChatGPT n'est pas limité à la génération de textes en tout genre, mais peut aussi s'atteler à la résolution de problèmes scientifiques, mathématiques et surtout informatiques. En proposant une interface ressemblant à un Environnement de Développement Intégré (ou IDE en anglais), les programmes proposés par l'IA reprennent les codes du développement informatique, avec ses couleurs, ses indentations et sa manière de rédiger.

Nous nous demandons ici dans quelle mesure ce chatbot pourrait devenir l'assistant du développeur, proposer des pistes comme corriger des erreurs d'inattention, voire écrire entièrement certaines des parties d'un programme.

 

    1. Quel rôle pour ChatGPT ?

 

De manière générale, ChatGPT trouve son utilité dans la rapidité à formuler des réponses cohérentes sur un sujet donné. Il en va de même concernant les programmes informatiques qu'il nous propose, si vous détaillez suffisamment votre requête.

Pas envie d'écrire ce script ? Ou de réfléchir à comment faire des comparaisons de tableaux dans tel ou tel langage ? Plus la peine de taper des mots clés sur un moteur de recherches et d'ouvrir cinq onglets Stack Overflow avant de trouver la réponse qui sera la plus proche de ce que vous cherchez, ChatGPT aurait déjà tout lu pour vous et vous proposerait une solution adaptée à votre demande.

D’ailleurs, certains s'interrogent sur l'avenir des forums d'entraide, remplacé irrémédiablement par un contact rapide et simple avec ChatGPT. Pour d'autres c'est le futur des réponses de l'IA qui est incertain : à quoi ressemblera le contenu des prochaines versions de Chat-GPT, entraînées sur un internet pollué de contenu prémâché produits par l'IA.

 

capture_decran_du_2023-03-30_16-28-17.png
 

ChatGPT a ici été conditionné pour traduire en espagnol, car c’était ce qui était demandé précédemment dans le fil de la discussion. C’est donc une blague pour illustrer qu’il fait des erreurs. Alors qu’il en fait que si on le conditionne pour. En tout cas dans ce cas-là. Donc c’est un mauvais exemple, en plus d’être une mauvaise blague.

 

Certains outils, comme Copilote, proposent déjà un service d'aide au développement, en corrigeant les erreurs, proposant des suggestions pour les commentaires, etc. Mais quand il s'agit de programmer une fonction entière, la comparaison entre ChatGPT et l'outil de GitHub ne laissait aucune place au doute, comme le montrait Mathis Hammel dans un thread où il proposait des challenges de programmation aux deux outils.

On voit ici que ChatGPT peut sembler très utile pour de l'aide ponctuelle, mais ne sera pas toujours à 100% dans le vrai. Dans le cas d'une fonction trop complexe ou d'un manque de précision, il finira probablement par vous proposer des méthodes obsolètes ou des librairies qui n'existent tout simplement pas. Bien que régulièrement mis à jour afin de corriger ces erreurs (notamment en mathématiques) il est bon de rester prudent et d'accepter que ChatGPT ne pourra pas toujours tout programmer pour vous.

Quelles sont donc les limites de cette IA générative en tant qu'assistante du développeur et comment l'utiliser au mieux, pour améliorer son code et gagner du temps, sans prendre de risques ?

 

    2. Utilisations possibles

 

Hormis du code très concret comme vu au-dessus, ChatGPT peut vous aider de multiples manières en tant que développeur.

Plusieurs fils (« threads ») sur Twitter ont déjà résumé des actions possibles, souvent impliquant d’envoyer votre code dans le prompt, et donc de donner vos données potentiellement sensible à OpenAI. Vous pouvez de cette manière demander à ChatGPT de nettoyer votre code, d’y ajouter des commentaires, de donner des noms plus explicites à vos variables et fonctions, de faire de la traduction d’un langage à un autre, etc., des usages pratiques pour mettre rapidement le pied à l’étrier sur un nouveau projet.

Néanmoins, de telles pratiques ne sont pas sans risques. Comme discuté dans l'article 2 de cette série, la fuite de données privées vers OpenAI reste un problème majeur lorsque vous envoyez votre code dans l’invite de ChatGPT.

 

error.png
En réponse à une demande d’explication de l’erreur « The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() »

 

    3. Les joies du chat ?

 

De par sa maitrise de notre langage couplée avec celle des langages de programmation, ChatGPT permet de vulgariser, d’expliquer, voire de programmer. Les méthodes qu'il propose sont souvent justes et marchent pour des programmes précis, ou de petites fonctions. Tout comme il aura du mal à rédiger un long texte sans se répéter, comme en témoignent les nombreux exemples montrant comment identifier du texte généré par ChatGPT, l'IA générative aura du mal à vous proposer un programme en entier sans faire d'erreur. Un prompt trop complexe vous retournera soit un mélange de différents codes qui, de loin, ont l'air de fonctionner mais en réalité vous demanderont du temps de débuggage, soit, de manière plus prudente, un mot précisant que la demande est trop compliquée accompagné d'une version haut-niveau du code à écrire.

En dehors de cela, il faut aussi savoir que ChatGPT n'intègre pas toutes les bonnes pratiques de code dans sa façon de programmer. Il peut y avoir un manque d'optimisation ou des incompréhensions de la demande qui peuvent mener à des pertes de données et – plus inquiétant – des failles de sécurité. Il est nécessaire de vérifier le code que vous exécutez, et de ne pas mettre les propositions de ChatGPT en "production" sans les avoir validées.

Cette IA générative est donc un bon assistant dans un cadre de création et d'exploration, il vous fera gagner du temps et découvrir des choses : il ne remplacera pas les développeurs en informatique mais pourrait, comme les autres outils d’aide à la programmation fondés sur l’IA, modifier en profondeur les pratiques des professionnels.

 

Sommaire

- IArrête moi si tu peux
- IA-t-il un (co)pilote dans l'avion ?
- IArnaques, Crimes et Botanique

Cet article fait partie du dossier sur les IA génératives, qui commence ici !

 


Illustration - LINC avec StableDiffusion


Article rédigé par Amélie Guillaumot & Romain Pialat , Designer & Ingénieur R&D au LINC