Six conseils pour mieux coder avec ChatGPT
MaisonMaison > Blog > Six conseils pour mieux coder avec ChatGPT

Six conseils pour mieux coder avec ChatGPT

Apr 05, 2023

Vous pouvez également rechercher cet auteur dans PubMed Google Scholar

Illustration par les jumeaux du projet

À moins que vous n'ayez vécu sous un rocher, vous connaissez ChatGPT. Le chatbot, piloté par l'intelligence artificielle (IA) et créé par OpenAI à San Francisco, en Californie, fournit des réponses étrangement humaines aux questions des utilisateurs (appelées invites) sur presque tous les sujets. ChatGPT est formé sur un vaste corpus de texte, et sa capacité à s'engager dans une conversation textuelle signifie que les utilisateurs peuvent affiner ses réponses. Même si ses réponses initiales sont bancales, il finit souvent par produire des résultats précis, y compris du code logiciel.

Les chercheurs peuvent utiliser ChatGPT pour déboguer et annoter du code, traduire des logiciels d'un langage de programmation à un autre et effectuer des opérations par cœur, telles que le traçage de données. Une prépublication de mars a indiqué que le programme pouvait résoudre 76 % des 184 tâches d'un cours d'introduction à la bioinformatique, comme travailler avec des feuilles de calcul, après un seul essai et 97 % en sept tentatives1.

C'est une bonne nouvelle pour les chercheurs qui se sentent mal à l'aise avec le codage ou qui n'ont pas le budget pour employer un programmeur à plein temps. Pour eux, les chatbots peuvent être un outil de démocratisation.

Pourtant, malgré toute leur sensibilité apparente, les chatbots ne sont pas intelligents. Ils ont été appelés perroquets stochastiques, faisant écho au hasard à ce qu'ils ont vu auparavant. Amy Ko, informaticienne à l'Université de Washington à Seattle, invoque un quiz américain de longue date pour décrire les limites de l'outil, écrivant sur le site de médias sociaux Mastodon : "ChatGPT est comme un ancien candidat désespéré à Jeopardy qui a cessé de suivre la pop culture en 2021 mais veut vraiment revenir dans le jeu, et est aussi un robot sans conscience, agence, moralité, cognition incarnée ou vie intérieure émotionnelle. » (Les données utilisées pour former ChatGPT ne s'étendent qu'en 2021.)

En bref, ChatGPT et les outils associés basés sur de grands modèles de langage (LLM), qui incluent Microsoft Bing et GitHub Copilot, sont des aides à la programmation incroyablement puissantes, mais doivent être utilisées avec prudence. Voici six façons de le faire.

Les chatbots fonctionnent mieux pour les petites tâches de programmation discrètes, telles que le chargement de données, la réalisation de manipulations de données de base et la création de visualisations et de sites Web. Mais ce n'est pas la même chose que le génie logiciel, explique Neil Ernst, informaticien à l'Université de Victoria au Canada.

ChatGPT : cinq priorités de recherche

"L'ingénierie logicielle est bien plus que la simple résolution d'un casse-tête de programmation", explique Ernst. "Il faut réfléchir aux frameworks de test, écrire du code maintenable et comprendre les compromis impliqués dans la construction d'un système" - comme celui entre la vitesse et la lisibilité. "Je ne pense pas que les outils actuels résolvent l'un de ces problèmes."

Cela leur laisse de nombreuses tâches à accomplir, comme se souvenir de la syntaxe pour créer des visualisations avec Matplotlib, une bibliothèque graphique pour le langage de programmation Python. En ce sens, les chatbots sont comme une interface conversationnelle avec Stack Overflow, un forum de questions et réponses en ligne pour les programmeurs. "Ce n'est pas quelque chose que tout le monde aime écrire", déclare Ernst, "et cela nous fait gagner du temps pour poser les questions analytiques difficiles que nous pourrions avoir sur les données."

Les chatbots sont également bons pour expliquer pourquoi le code ne fonctionne pas. Emery Berger, informaticien à l'Université du Massachusetts à Amherst, a exploité ces capacités pour créer plusieurs outils utiles. L'un, appelé cwhy, utilise ChatGPT pour expliquer les erreurs du compilateur dans le code écrit dans les langages de programmation C, C++ et Rust. Un autre, ChatDBG, fournit une interface conversationnelle pour le débogage, et un troisième, Scalene, utilise l'IA pour suggérer des optimisations de code afin d'améliorer les performances.

Les chatbots peuvent même traduire le code d'un langage de programmation à un autre. Mathieu Coppey, biophysicien à l'Institut Curie à Paris, utilise ChatGPT pour l'aider à passer de MATLAB, son langage de prédilection, à Python. En utilisant Google et les forums en ligne, il a généralement besoin de jours pour faire fonctionner son code Python. "Maintenant, je peux le faire en une heure environ", dit-il.

Les chatbots ne savent peut-être pas toujours de quoi ils parlent, mais ils ont certainement l'air de le faire. Dans certains cas, l'IA ne comprend pas la question ; à d'autres moments, il fournit une réponse incorrecte. Lorsque le code ne s'exécute pas, ces erreurs sont évidentes. Parfois, cependant, le code s'exécute mais donne le mauvais résultat.

Selon une étude2 co-écrite par la linguiste Emily Morgan de l'Université de Californie à Davis, les chatbots - comme le code écrit par l'homme sur lequel ils ont été formés - créent souvent ce qu'elle appelle des "bugs simples et stupides". Ces erreurs sur une seule ligne, telles que l'utilisation de > au lieu de >= dans une instruction conditionnelle, sont faciles à corriger, mais difficiles à trouver. "Si vous n'en savez pas assez pour faire la différence entre quelque chose de correct et quelque chose qui n'a aucun sens, vous pourriez vous attirer des ennuis", dit-elle.

Ce que ChatGPT et l'IA générative signifient pour la science

Iza Romanowska, une scientifique de la complexité qui étudie les civilisations anciennes à l'Institut d'études avancées d'Aarhus au Danemark, a utilisé ChatGPT pour produire du code dans un langage appelé NetLogo. Parce qu'il y a moins de code en ligne écrit dans NetLogo que dans les langages Python et R, ChatGPT le maîtrise moins bien. Parfois, l'IA parsème son code suggéré de fonctions qui n'existent pas réellement, dit-elle - un comportement parfois appelé hallucination.

L'essentiel n'est pas d'accepter aveuglément ce que ChatGPT vous donne - lisez-le attentivement et testez-le. Assurez-vous qu'il fonctionne comme prévu dans les "cas extrêmes" - par exemple, un algorithme pour trier n nombres inclut-il le nième nombre ? Patrick Lam, informaticien à l'Université de Waterloo au Canada, déclare : "Je ne ferais pas plus confiance à cela que je ne peux le jeter."

Code de sortie des chatbots qui reflète leurs données de formation. Ce n'est pas toujours une bonne chose, dit Ko. "La qualité globale du code sur le Web qui est partagé, sur lequel ces [chatbots] sont formés, est en fait assez faible."

Tout comme le code aléatoire en ligne est peu susceptible d'être particulièrement efficace ou robuste, il en va de même pour le code généré par le chatbot. Cela peut ne pas fonctionner correctement sur de grands ensembles de données, par exemple, et peut contenir des failles de sécurité.

L'IA pourrait-elle vous aider à rédiger votre prochain article ?

Brendan Dolan-Gavitt, informaticien à l'Université de New York, explique que lorsque l'outil de programmation Copilot de Github a été lancé en 2021, lui et son équipe l'ont testé dans 89 scénarios liés à la sécurité. L'un était la possibilité de vérifier les requêtes malformées à l'aide du langage SQL qui pourraient corrompre une base de données - connue sous le nom d'attaque par injection SQL3. "Environ 40 % du temps, Copilot produisait du code vulnérable." C'est une cible mouvante - lorsque Dolan-Gavitt a mis ces scénarios dans une version plus récente du LLM sous-jacent ChatGPT, appelée GPT-4, le taux d'erreur est tombé à 5 %.

Pourtant, il vaut la peine de vérifier votre code. Mais tenez également compte de l'application - tout n'est pas essentiel à la mission. L'interface Web d'une base de données ou d'un outil de visualisation, par exemple, peut nécessiter une vigilance accrue. Mais si vous savez à quoi devrait ressembler la réponse à votre problème de programmation, "allez-y", déclare l'informaticien Sayash Kapoor de l'université de Princeton dans le New Jersey, "car il est facile de vérifier si vous vous trompez".

Le codage basé sur le chatbot, dit Ko, "n'est pas une sorte d'expérience unique". C'est une conversation. "Vous écrivez quelque chose, vous obtenez quelque chose en retour, vous le lisez avec scepticisme, vous demandez plus de détails, vous le demandez pour réparer quelque chose."

Gangqing (Michael) Hu, qui dirige le centre de bioinformatique de la West Virginia University à Morgantown, a capitalisé sur ce flux de travail itératif pour développer une méthode que les débutants en bioinformatique peuvent utiliser pour optimiser les invites de chatbot, appelée OPTIMAL4. Les utilisateurs fournissent des invites détaillées, testent les réponses et renvoient au chatbot pour ajuster ses réponses. Cela peut inclure des questions sur les erreurs ainsi que des ajustements à l'invite elle-même. "La communication est la clé", explique Hu.

Si vous êtes bloqué, essayez d'ajuster les paramètres, suggère Xijin Ge, bioinformaticien à l'Université d'État du Dakota du Sud à Brookings. Le paramètre "température" de ChatGPT, par exemple, contrôle la créativité : plus la température est élevée, plus la sortie est créative. "Parfois, ça marche", dit Ge.

Mais pas toujours — dans certains cas, « vous devrez intervenir et prendre le relais », dit Ko.

Les chatbots ne sont pas des personnes, mais il peut être utile de les traiter de cette façon. « Traitez cette IA comme un stagiaire d'été », conseille Ge – un étudiant qui travaille dur et qui veut plaire, mais aussi inexpérimenté et sujet aux erreurs.

Évitez toute ambiguïté et décomposez votre problème en plus petits morceaux, suggère Paul Denny, informaticien à l'Université d'Auckland, en Nouvelle-Zélande.

Pôle NatureTech

Autre conseil : demandez au chatbot d'assumer un rôle, tel qu'un biologiste qui parle couramment Python. Spécifiez les outils ou les bibliothèques de programmation que vous souhaitez utiliser. De telles directives peuvent aider le chatbot à entrer "dans le bon espace probabiliste", dit Ko - c'est-à-dire à se concentrer sur le texte qui est le plus susceptible de suivre l'invite.

Par exemple, une invite dans l'étude de Hu4 a demandé à ChatGPT : "Agis en tant que bioinformaticien expérimenté compétent dans l'analyse de données ChIP-Seq, vous m'aiderez en écrivant du code avec un nombre de lignes aussi minimal que possible. Réinitialisez le fil si on vous le demande. Répondez " OUI" si comprendre."

Et, si possible, fournissez le code de départ, les commentaires et les résultats attendus. "Des exemples peuvent vraiment aider ChatGPT à le cibler dans la bonne direction", déclare Dong Xu, informaticien à l'Université du Missouri, en Colombie.

Enfin, les LLM évoluent constamment et deviennent plus puissants. C'est une bonne nouvelle pour les chercheurs, même si cela les gardera sur leurs gardes. La longueur des invites augmente, permettant des réponses plus nuancées. Et de nouveaux outils voient constamment le jour. Un plug-in appelé Code Interpreter transforme ChatGPT en un analyste de données numériques, permettant aux utilisateurs de télécharger des ensembles de données, de poser des questions sur leurs données et de télécharger les résultats. Comme l'a dit un blogueur sur l'IA, "C'est comme avoir une conversation avec vos données. C'est cool ?"

Nature618, 422-423 (2023)

doi : https://doi.org/10.1038/d41586-023-01833-0

Piccolo, SR et al. Préimpression sur https://arxiv.org/abs/2303.13528 (2023).

Jesse, K. et al. Préimpression sur https://arxiv.org/abs/2303.11455 (2023).

Pearce, H. et al. Préimpression sur https://arxiv.org/abs/2108.09293 (2021).

Shue, E. et al. Combien. Biol. https://doi.org/10.15302/J-QB-023-0327 (2023).

Article Google Scholar

Télécharger les références

ChatGPT : cinq priorités de recherche

Ce que ChatGPT et l'IA générative signifient pour la science

L'IA pourrait-elle vous aider à rédiger votre prochain article ?

Comment j'utilise ChatGPT de manière responsable dans mon enseignement

Comment les IA de génération de langage pourraient transformer la science

Pôle NatureTech

Pourquoi la nature ne permettra pas l'utilisation de l'IA générative dans les images et les vidéos

Édito 07 JUIN 23

ChatGPT : consignes de signalement standard pour une utilisation responsable

Correspondance 06 JUIN 23

L'apprentissage par transfert permet des prédictions en biologie des réseaux

Article 31 23 MAI

Vers l'apprentissage automatique quantique

Coup de projecteur 24 MAI 23

Ordinateurs quantiques : à quoi servent-ils ?

Coup de projecteur 24 MAI 23

Réécrire le plan de l'ordinateur quantique

Perspectives 24 MAI 23

Pourquoi la nature ne permettra pas l'utilisation de l'IA générative dans les images et les vidéos

Édito 07 JUIN 23

ChatGPT : consignes de signalement standard pour une utilisation responsable

Correspondance 06 JUIN 23

L'apprentissage par transfert permet des prédictions en biologie des réseaux

Article 31 23 MAI

Kiel, Schleswig-Holstein (DE)

Centre Helmholtz pour la recherche océanique de Kiel (GEOMAR)

Samedi 8 juillet 2023, Tokyo Dimanche 9 juillet 2023, Osaka L'inscription pour cet événement est désormais ouverte !

Tokyo et Osaka, Japon

Carrières Nature

Basé sur les efforts conjoints de tout le personnel et des étudiants ainsi que sur le soutien substantiel de tous les secteurs de la société.

Pékin, Chine

Collège des sciences de l'eau, Université normale de Pékin

L'Agence de la santé animale et végétale (APHA) est une agence exécutive du ministère de l'Environnement, de l'Alimentation et des Affaires rurales, et travaille au nom de la S

Addlestone, Surrey

Agence de la santé animale et végétale

Une organisation de recherche interdisciplinaire où la science et la technologie de pointe conduisent à la découverte d'Insights percutants

Nouvelle zone de Pudong, Shanghai

Institut BeiGene

618