L'IA génératrice de code - c'est-à-dire une IA capable d'écrire du code source dans différents langages de programmation à partir d'une invite - promet de réduire les coûts liés au développement logiciel tout en permettant aux développeurs de se concentrer sur des tâches créatives et moins répétitives. Mais si des laboratoires de recherche comme OpenAI d'Elon Musk et DeepMind d'Alphabet ont mis au point de puissantes IA génératrices de code, bon nombre des systèmes les plus performants ne sont pas disponibles en open source. Les entreprises à faibles ressources n'y ont pas accès et cette situation limite leurs recherches dans le domaine.
Par exemple, les données d'entraînement de Codex d'OpenAI, qui alimente la fonction Copilot de GitHub, n'ont pas été rendues publiques, ce qui empêche les chercheurs d'affiner le modèle d'IA ou d'en étudier certains aspects, comme l'interopérabilité. Pour remédier à cela, des chercheurs de l'université Carnegie Mellon (CMU) - Frank Xu, Uri Alon, Graham Neubig et Vincent Hellendoorn - ont développé PolyCoder, un générateur de code basé sur le modèle de langage GPT-2 d'OpenAI. Il dispose d'environ 2,7*milliards de paramètres et a été entraîné sur une base de données de 249 Go de code dans une douzaine de langages de programmation.
Précisément, PolyCoder a été entraîné sur des données provenant de plusieurs dépôts de GitHub, couvrant 12 langages de programmation populaires : C, C#, C++, Go, Java, JavaScript, PHP, Python, Ruby, Rust, Scala et TypeScript. L'ensemble de données non filtrées totalisait 631 Go de données et 38,9 millions de fichiers. L'équipe a déclaré qu'elle a choisi d'entraîner PolyCoder avec GPT-2 en raison de contraintes budgétaires. PolyCoder est disponible en open source et les chercheurs espèrent qu'il pourra démocratiser la recherche dans le domaine de la génération de code par l'IA, qui est jusqu'à présent dominée par des entreprises bien financées.
Les chercheurs estiment que PolyCoder est plus performant que les autres modèles dans la génération de code en langage C. Cependant, Codex l'a toujours devancé dans d'autres langages. « PolyCoder surpasse notamment Codex et tous les autres modèles dans le langage C. En comparant uniquement les modèles open source, PolyCoder est plus performant que le modèle GPT-Neo 2.7B de taille similaire en C, JavaScript, Rust, Scala et TypeScript », notent-ils. « Dans les 11 autres langages, tous les autres modèles open source, y compris le nôtre, sont significativement plus mauvais (perplexité plus élevée) que Codex », ont ajouté les chercheurs du CMU.
Un nombre croissant d'organisations explorent l'IA génératrice de code. Lors de sa conférence des développeurs Build en mai 2021, Microsoft a présenté une nouvelle fonctionnalité de Power Apps qui exploite le modèle de langage GPT-3 d'OpenAI pour aider les gens à choisir des formules. ControlFlag d'Intel est capable de détecter de manière autonome les erreurs dans le code. Et TransCoder de Facebook convertit le code d'un langage de programmation en un autre. Récemment, DeepMind a annoncé AlphaCode, qui, selon le laboratoire, est une IA génératrice de code capable de concurrencer les programmeurs humains.
DeepMind affirme qu'AlphaCode s'est classé en moyenne parmi les 54,3 % les mieux placés dans les concours récents auxquels ont participé plus de 5 000 personnes. Les concours ont eu lieu sur Codeforces, une plateforme de concours de programmation. Mais son entraînement a nécessité "des centaines de pétaflops/s-jour" dans les centres de données de Google. Un pétaflop/s-jour (pfs-jour) consiste à effectuer 1015 opérations de réseau neuronal par seconde pendant une journée, soit un total d'environ 1020 opérations. Le produit du temps de calcul est une commodité mentale, similaire au kilowattheure pour l'énergie.
Cependant, les chercheurs du CMU notent que "presque personne", en dehors des entreprises disposant de ressources importantes, ne peut former des modèles de la taille d'AlphaCode ou de Codex. Une étude réalisée en 2020 par la startup AI21 Labs a évalué le coût de la formation d'un modèle de génération de texte avec environ 1,5 milliard de paramètres - soit environ la moitié de la taille de PolyCoder - entre 80 000 et 1,6 million de dollars. Copilot compte 12 milliards de paramètres. « Dans une certaine mesure, nous espérons que nos efforts d'ouverture du code source convaincront les autres de faire de même », ont déclaré les chercheurs.
« Mais le plus important est que la communauté soit en mesure de former ces modèles elle-même. Notre modèle a repoussé la limite de ce que vous pouvez former sur un seul serveur - tout ce qui est plus grand nécessite un cluster de serveurs, ce qui augmente considérablement le coût », ont-ils ajouté. En outre, PolyCoder a la particularité d'avoir été entraîné non seulement avec des fichiers de code, mais aussi avec des informations en langage naturel provenant de Stack Overflow, le site de questions-réponses pour développeurs. En comparaison, les ensembles de données utilisés pour former Codex n'ont pas été mis à la disposition du public.
De plus, leur sortie API suit un modèle de "boîte noire", empêchant ainsi les chercheurs d'ajuster le modèle d'IA ou d'étudier certains aspects de celui-ci, comme son interopérabilité. Un autre des objectifs de ces chercheurs lors de la création de PolyCoder en open source est d'empêcher que cette classe de modèles soit poussée à générer des programmes avec des bogues ou du code malveillant (comme c'est déjà le cas avec Copilot), surtout s'ils aboutissent à des vulnérabilités difficiles à détecter.
Source : Rapport d'étude des chercheurs du CMU (PDF), PolyCoder
Et vous ?
Quel est votre avis sur le sujet ?
Que pensez-vous de la prolifération des IA génératrices de code ?
Les développeurs ont-ils à craindre pour leurs postes ?
Pensez-vous qu'elles pourront un jour coder en toute autonomie sans une intervention humaine ?
Avec la popularisation des générateurs de code et des outils low-code/no-code, à quoi pourrait ressembler l'avenir du développement logiciel ?
Les entreprises pourraient-elles à l'avenir décider de ne compter que sur ces systèmes afin de réduire les coûts du développement logiciel ?
Pensez-vous que les générateurs de code basés sur l'IA pourront générer du code plus maintenable que les codeurs humains ? Seront-ils moins sujets aux bogues ?
Voir aussi
Project Turing : Microsoft et Nvidia créent un modèle de langage qui a 105 couches et 530 milliards de paramètres et nécessite 280 GPU A100, mais le système est encore biaisé
Open AI présente DALL-E (comme GPT-3), un modèle qui crée des images à partir de texte pour un large éventail de concepts exprimables en langage naturel
L'IA Codex d'OpenAI fait ses débuts en programmation et peut déjà coder dans une dizaine de langages. L'IA pourra-t-elle bientôt décharger les développeurs de certaines tâches, voire les remplacer ?
GPT-3, le système de génération de texte d'OpenAI, produit désormais 4,5 milliards de mots par jour, avec une précision de 91 %
Copilot, l'outil d'IA commercial de GitHub, est critiqué par la communauté du logiciel open source pour sa reproduction aveugle des blocs de code