IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Des chercheurs publient en open source "PolyCoder", un générateur de code avec 2,7 milliards de paramètres,
Qui surpasserait Codex dans la génération de code en C

Le , par Bill Fassinou

127PARTAGES

5  0 
Les prouesses réalisées ces dernières années dans le domaine du traitement du langage naturel (NLP) ont ouvert la voie à une série d'IA génératrices de code dans divers langages de programmation. Après GitHub Copilot, AlphaCode et Codex, des chercheurs de l'université Carnegie Mellon ont présenté récemment PolyCoder, un générateur de code basé sur le modèle de langage GPT-2 d'OpenAI qui a été entraîné sur une base de données de 249 Go de code dans 12 langages de programmation. Les auteurs de PolyCoder affirment qu'il est capable d'écrire en C avec une plus grande précision que tous les modèles connus, y compris Codex.

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

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de TJ1985
Membre expérimenté https://www.developpez.com
Le 12/03/2022 à 8:54
J'aimerais beaucoup avoir l'avis d'un utilisateur expérimenté de ces systèmes. J'aimerais comprendre pratiquement comment les choses se passent, ce qu'on fournit au système, jusqu'où il faut spécifier et quoi.
Accessoirement, pourquoi générer du code source de haut niveau et pas directement un assembleur ?
2  0 
Avatar de tontonCD
Membre habitué https://www.developpez.com
Le 14/03/2022 à 10:30
"pourquoi générer du code source de haut niveau et pas directement un assembleur" je pense que c'est pour pouvoir relire : une IA est très capable de se "tromper", généralement de manière inattendue (c'est justement là le pb). Et aussi pour figer le code une fois qu'il est obtenu et l'améliorer, comme un fork.

Ceci dit pareil, comment on l'utilise ? Il me semble comprendre qu'il serait adapté plus pour des programmes résultants utilisant des frameworks d'IA ?
0  0