Les méthodes récentes de réparation de programme sont basées sur des approches d'apprentissage en profondeur. ChatGPT est l'une de ces nouvelles méthodes, qui n'est pas principalement destinée à la réparation automatisée de programmes, mais qui lui convient tout de même. Cependant, les performances de correction des bogues de ChatGPT ne sont pas encore claires.
Aussi, dans un article, des chercheurs ont évalué ChatGPT sur l'ensemble de référence de correction de bogues standard, QuixBugs, et ont comparé les performances avec les résultats de plusieurs autres approches rapportées dans la littérature.
C'est ainsi que les chercheurs ont donné 40 morceaux de code bogué à quatre systèmes de correction de code différents : ChatGPT, Codex, CoCoNut et Standard APR. Essentiellement, ils ont demandé à ChatGPT*: « Qu'est-ce qui ne va pas avec ce code*? » puis ont copié et collé le code dans la fonction de chat.
Lors du premier passage, ChatGPT a fait à peu près aussi bien que les autres systèmes. ChatGPT a résolu 19 problèmes, Codex en a résolu 21, CoCoNut en a résolu 19 et les méthodes APR standard en ont résolu sept. Les chercheurs ont trouvé que ses réponses étaient les plus similaires à Codex, ce qui n'était « pas surprenant, car ChatGPT et Codex appartiennent à la même famille de modèles de langage ».
Cependant, la possibilité de discuter avec ChatGPT après avoir reçu la réponse initiale a fait la différence, ce qui a finalement permis à ChatGPT de résoudre 31 questions et de surpasser facilement les autres, qui fournissaient des réponses plus statiques.
Et les chercheurs d'indiquer :
Un avantage puissant de ChatGPT est que nous pouvons interagir avec le système dans un dialogue pour spécifier une demande plus en détail[...]. Nous constatons que les performances de correction de bogues de ChatGPT sont compétitives par rapport aux approches communes d'apprentissage en profondeur CoCoNut et Codex et nettement meilleures que les résultats rapportés pour les approches de réparation de programme standard. Contrairement aux approches précédentes, ChatGPT offre un système de dialogue à travers lequel des informations supplémentaires, par exemple, la sortie attendue pour une certaine entrée ou un message d'erreur observé, peuvent être saisis. En fournissant de tels conseils à ChatGPT, son taux de réussite peut être encore augmenté, corrigeant 31 bogues sur 40, surpassant l'état de l'art.
Par exemple, lorsque les chercheurs ont posé la question illustrée ci-dessous, ils s'attendaient à ce que ChatGPT recommande de remplacer n^=n-1 par n&=n-1, mais la première chose que ChatGPT a dite a été*: « Je ne peux pas dire si le programme a un bogue sans plus d'informations sur le comportement attendu ». Sur la troisième réponse de ChatGPT, après plus d'incitations des chercheurs, il a trouvé le problème : « La fonction ne marche pas. Pour l'entrée 1, il semble s'agir d'une boucle infinie ».
Cependant, lorsque d'autres ont saisi la même question dans ChatGPT, il a répondu différemment. Plutôt que d'avoir à lui dire quel est le comportement attendu, il a deviné ce que c'était. ChatGPT apprend toujours sur la base des contributions des utilisateurs, et il semble qu'il ait appris ce que ce morceau de code est censé faire, peut-être des chercheurs qui ont réalisé l'étude. L'échange que les observateurs extérieurs ont eu était différent de celui des chercheurs et sera probablement différent la prochaine fois également pour d'autres curieux qui voudraient s'y essayer.
Une intégration de fonctionnalité dans les outils Microsoft ?
GitHub Copilot
Fin juin 2022, Copilot était proposé dans le cadre d'une Preview technique sur invitation uniquement, promettant de faire gagner du temps en répondant au code des utilisateurs par ses propres suggestions intelligentes. Ces suggestions sont basées sur des milliards de lignes de code public dont les utilisateurs ont publiquement contribué à GitHub, en utilisant un système d'IA appelé Codex de la société de recherche OpenAI.
GitHub décrit Copilot comme l'équivalent IA de la « programmation en paire », dans laquelle deux développeurs travaillent ensemble sur un seul ordinateur. L'idée est qu'un développeur peut apporter de nouvelles idées ou repérer des problèmes que l'autre développeur aurait pu manquer, même si cela nécessite plus d'heures de travail.
Dans la pratique, cependant, Copilot est plutôt un outil utilitaire de gain de temps, qui intègre les ressources que les développeurs devraient autrement chercher ailleurs. Lorsque les utilisateurs saisissent des données dans Copilot, l'outil leur suggère des extraits de code à ajouter en cliquant sur un bouton. Ainsi, ils n'ont pas à passer du temps à chercher dans la documentation de l'API ou à rechercher des exemples de code sur des sites spécialisés.
Un réseau neuronal dans GitHub Copilot est entraîné à l'aide de volumes massifs de données, constituées du code : des millions de lignes téléchargées par les 65 millions d'utilisateurs de GitHub, la plus grande plateforme au monde permettant aux développeurs de collaborer et de partager leur travail. Le but est que Copilot en apprenne suffisamment sur les modèles de code pour pouvoir faire du hacking lui-même. Il peut prendre le code incomplet d'un partenaire humain et terminer le travail en ajout les parties manquantes. Dans la plupart des cas, il semble réussir à le faire. GitHub prévoit de vendre l'accès à l'outil aux développeurs.
Comme pour la plupart des outils d'IA, GitHub souhaite également que Copilot devienne plus intelligent au fil du temps en fonction des données qu'il collecte auprès des utilisateurs. Lorsque les utilisateurs acceptent ou rejettent les suggestions de Copilot, son modèle d'apprentissage automatique utilisera ce retour d'information pour améliorer les suggestions futures, de sorte que l'outil deviendra peut-être plus humain à mesure qu'il apprendra.
Si l'approche de ChatGPT n'est pas la même, étant donné qu'il ne s'agit pas d'un outil spécialement conçu pour assister les développeurs, le chatbot pourrait néanmoins contribuer durant les phases de développement en indiquant aux développeurs où se trouvent leurs potentielles erreurs. Mais il s'agit d'une épée à double tranchant dans la mesure où si l'outil « apprend » de leur code, il se servira de ces connaissances pour aider d'autres personnes, exposant potentiellement des informations confidentielles comme cela a déjà été le cas avec Amazon.
Microsoft va intégrer ChatGPT dans Azure
Microsoft rendra bientôt la technologie de chat d'IA générative disponible dans le cadre de son service Azure OpenAI. Ce service est destiné aux entreprises et aux développeurs qui utilisent la plateforme Azure de Microsoft pour intégrer les technologies OpenAI dans leurs applications. Il fait partie d'un partenariat plus large entre Microsoft et OpenAI qui a débuté par un investissement d'un milliard de dollars de Microsoft dans le laboratoire d'IA basé à San Francisco en 2019.
Cela montre comment Microsoft se positionne effectivement comme le bras commercial d'OpenAI, une initiative qui pourrait lui donner un avantage sur les plateformes concurrentes Amazon Web Services (AWS) et Google Cloud Platform (GCP). Le service Azure OpenAI a été lancé en avant-première au printemps dernier, avant que ChatGPT ne soit largement disponible. Cependant, ChatGPT est disponible en tant que version bêta publique et il a été parfois difficile pour certains utilisateurs d'y accéder, en partie à cause de la forte demande suscitée par l'intérêt. Azure OpenAI étend désormais la disponibilité de ChatGPT à toutes les entreprises.
« Avec le service Azure OpenAI désormais disponible de manière générale, davantage d'entreprises peuvent demander à accéder aux modèles d'IA les plus avancés au monde », explique Microsoft. S'exprimant lors d'un panel du Wall Street Journal (WSJ) au Forum économique mondial (FEM) de Davos, en Suisse, la semaine dernière, le PDG de Microsoft, Satya Nadella, a déclaré que l'entreprise prévoyait bientôt de commercialiser largement des outils d'IA dans l'ensemble de ses produits. « Chaque produit de Microsoft aura certaines des mêmes capacités d'IA pour transformer complètement le produit », a déclaré Nadella, selon un compte rendu du WSJ.
Nadella a poursuivi en disant que les travailleurs devraient embrasser les nouveaux outils d'IA au lieu de les craindre. « La meilleure façon de s'y préparer est de ne pas parier contre cette technologie, et cette technologie vous aidant dans votre travail et votre processus commercial », a déclaré Nadella. En outre, le PDG de Microsoft a également prédit que la génération actuelle d'IA entraînera un changement majeur dans l'industrie. Lors de la table ronde organisée par le WSJ la semaine dernière, il a déclaré que les outils d'IA augmenteront la productivité humaine, ce qui favorisera la croissance économique et les salaires des employés.
« Nous avons besoin de quelque chose qui modifie réellement la courbe de la productivité afin d'avoir une véritable croissance économique », a-t-il déclaré. Mais alors que Microsoft travaille sur l'intégration de nouveaux systèmes d'IA dans ses produits et ses services, les récents licenciements généralisés au sein de l'entreprise ont affecté les équipes travaillant à l'intégration de ChatGPT. Selon certaines sources, une première vague d'environ 1 000 licenciements au sein de l'entreprise la semaine dernière comprenait des membres de l'équipe interne chargée d'intégrer la technologie ChatGPT dans le moteur de recherche Bing.
Source : Une analyse des performances de correction automatique des bogues de ChatGPT
Et vous ?
Que pensez-vous des résultats obtenus par chatGPT ?
S'il s'améliorait encore, seriez-vous tenté de l'utiliser pour identifier les erreurs éventuelles dans votre code ? Dans quelle mesure ?