
Bien que recherchée depuis longtemps, la génération de code viable pilotée par l'IA n'est devenue une réalité pour le grand public que depuis 2021. Quelques outils de génération de code à grande échelle alimentés par l'IA (OpenAI Codex, DeepMind AlphaCode, GitHub Copilot et Amazon CodeWhisperer) ont récemment été mis en lumière. Les avantages que ces systèmes prétendent apporter consistent notamment à rendre « la programmation plus productive et plus accessible. » Ils présentent également plusieurs défis.
Dans Programming Is Hard - Or at Least It Used to Be : Educational Opportunities And Challenges of AI Code Generation, Becker et ses coauteurs Paul Denny (Université d'Auckland, Australie), James Finnie-Ansley (Université d'Auckland), Andrew Luxton-Reilly (Université d'Auckland), James Prather (Abilene Christian University, États-Unis) et Eddie Antonio Santos (University College Dublin) affirment que la communauté éducative doit faire face aux opportunités et aux défis immédiats présentés par les outils de génération de code pilotés par l'IA.
Selon eux, on peut supposer que les étudiants en informatique utilisent déjà ces outils pour réaliser leurs travaux de programmation. Par conséquent, les politiques et les pratiques qui reflètent la nouvelle réalité doivent être élaborées le plus tôt possible.
Codex OpenAI
En septembre 2021, le New York Times a publié un article intitulé « L'I.A. peut maintenant écrire son propre code informatique. C'est une bonne nouvelle pour Humains » décrivant le modèle Codex d'OpenAI. OpenAI est un laboratoire de recherche en intelligence artificielle (IA) composé de la société à but lucratif OpenAI LP et de sa société mère, la société à but non lucratif OpenAI Inc. L'entreprise, considérée comme un concurrent de DeepMind (entreprise spécialisée dans l'intelligence artificielle appartenant à Google), mène des recherches dans le domaine de l'IA avec l'objectif déclaré de promouvoir et de développer une IA conviviale d'une manière qui profite à l'humanité dans son ensemble.
Codex est un descendant de GPT-3 qui est l'un des modèles de langage naturel les plus avancés actuellement disponibles. Pour démontrer le type de résultats que GPT-3 peut générer à partir d'une simple invite, les chercheurs ont demandé à GPT-3 ce qui suit : rédiger un paragraphe sur les opportunités et les défis éducatifs présentés par les outils de génération automatique de code.
Sa réponse a été la suivante :
Les outils de génération automatique de code présentent à la fois des opportunités et des défis éducatifs. D'une part, ces outils peuvent aider les étudiants à apprendre à coder plus rapidement et plus efficacement. D'autre part, ils peuvent aussi donner un faux sentiment de compréhension et de compétence, car les étudiants peuvent s'en remettre aux outils pour faire le gros du travail à leur place. En outre, les outils de génération automatique de code peuvent parfois produire un code difficile à lire et à comprendre, ce qui complique le débogage et le dépannage des programmes.
Codex peut prendre des invites en anglais et générer du code dans plusieurs langages de programmation, notamment JavaScript, Go, Perl, PHP, Ruby, Swift, TypeScript et shell, mais il serait « plus performant » en Python.
DeepMind AlphaCode
En février 2022, DeepMind a annoncé AlphaCode qui, comme Codex, utilise un modèle basé sur les transformateurs qui « écrit des programmes informatiques à un niveau compétitif ». Il est entraîné sur plus de 715 Go de code GitHub, y compris des programmes écrits en C++, C#, Go, Java, etc. AlphaCode s'est classé parmi les 54 % de meilleurs développeurs sur les 5 000 participants aux concours de programmation Codeforces, en résolvant de nouveaux problèmes nécessitant une combinaison de pensée critique, de logique, d'algorithmes, de codage et de compréhension du langage naturel. AlphaCode n'est pas actuellement disponible sous forme d'API ou autre.
Amazon CodeWhisperer
Amazon CodeWhisperer a été annoncé en juin 2022. Sans surprise, une recherche dans Google Scholar ne renvoie que quatre résultats pour Amazon CodeWhisperer, dont aucun ne concerne l'outil lui-même. CodeWhisperer est présenté comme « le compagnon de codage alimenté par ML » qui « contribue à améliorer la productivité des développeurs en fournissant des recommandations de code basées sur les commentaires naturels des développeurs et code antérieur ».
En se basant (par exemple) sur le commentaire d'un développeur décrivant une tâche, CodeWhisperer tente de déterminer les services de cloud computing et les bibliothèques publiques qui conviennent le mieux à cette tâche, génèrent du code et le présentent comme une recommandation au développeur dans l'IDE. Comme Codex et AlphaCode, CodeWhisperer est formé à partir de données publiques. Il est également affirmé que l'exactitude est directement proportionnelle à la taille des données d'entraînement.
Autres produits de génération de code d'IA
Bien que Codex, AlphaCode et CodeWhisperer soient les plateformes de génération de code pilotées par l'IA les plus connues, il en existe plusieurs autres, notamment Kite, Tabnine, Code4Me et FauxPilot, GitHub Copilotsur. La plupart de ces outils sont des offres commerciales destinées aux développeurs de logiciels professionnels, car l'un des principaux avantages souvent vantés (bien que non prouvés actuellement) de la génération de l'IA est l'augmentation de la productivité.
Copilot a été lancé en fin juin 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.
Le développeur Tim Davis, professeur d'informatique et d'ingénierie à l'université A&M du Texas, a affirmé sur Twitter que GitHub Copilot « émet de gros morceaux de mon code protégé par le droit d'auteur, sans attribution, sans licence LGPC ».
Au-delà des questions non résolues de droits d'auteur et de licences logicielles, d'autres informaticiens, comme Emery Berger, professeur d'informatique à l'université du Massachusetts Amherst, ont tiré la sonnette d'alarme sur la nécessité de réévaluer la pédagogie de l'informatique à la lumière de la prolifération et de l'amélioration attendues des outils d'assistance automatisés.
« Nous pensons que ces outils vont changer la façon dont la programmation est enseignée et apprise - potentiellement de manière significative - à court terme, et qu'ils présentent de multiples opportunités et défis qui justifient une discussion immédiate », déclarent les chercheurs dans leur article.
Une étude révèle que les assistants IA aident les développeurs à produire du code plus susceptible d'être bogué
« Nous avons constaté que les participants ayant accès à un assistant IA produisaient souvent plus de vulnérabilités de sécurité que ceux qui n'y avaient pas accès, avec des résultats particulièrement significatifs pour le chiffrement de chaînes et l'injection SQL », ont déclaré les auteurs de l'étude. « Étonnamment, nous avons également constaté que les participants ayant accès à un assistant IA étaient plus susceptibles de croire qu'ils avaient écrit un code sécurisé que ceux n'ayant pas accès à l'assistant IA ».
Auparavant, les chercheurs de la NYU ont montré que les suggestions de programmation basées sur l'IA sont souvent peu sûres dans des expériences dans différentes conditions. Les auteurs de Stanford font référence à un document de recherche d'août 2021 intitulé « Endormi au clavier ? Évaluation de la sécurité des...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.