La génération de code est-elle la prochaine frontière des applications de l'IA ?
Les systèmes d'IA deviennent étonnamment habiles pour gagner des jeux de société (AlphaGo et Deep Blue) et créer des œuvres d'art (Stable Diffusion), mais qu'en est-il de la création de logiciels ? La dernière expérience de DeepMind laisse entrevoir une nouvelle frontière dans les applications de l'IA. Microsoft explore également cette frontière avec un programme de suggestion de code appelé Copilot, proposé sur GitHub. Amazon dispose d'un outil logiciel similaire, appelé CodeWhisperer. Ces systèmes de génération de code n'aspirent pas forcément à remplacer les programmeurs humains, mais l'on est quand même tenté de poser la question.
« Les performances qu'ils sont capables d'atteindre sur des problèmes assez difficiles sont très impressionnantes », déclare Armando Solar-Lezama, chef du groupe de programmation assistée par ordinateur au Massachusetts Institute of Technology (MIT). AlphaCode va au-delà du précédent porte-étendard de l'écriture de codes d'IA : Codex, un système publié en 2021 par OpenAI. Ce laboratoire avait déjà mis au point GPT-3, un modèle de langage étendu capable d'imiter et d'interpréter du texte en langage naturel après avoir été entraîné sur des milliards de mots provenant de livres numériques, d'articles de Wikipédia et d'autres sources.
En affinant GPT-3 sur plus de 100 gigaoctets de code provenant de Github, OpenAI a créé Codex. Le logiciel peut écrire du code lorsqu'on lui demande une description courante de ce qu'il est censé faire, par exemple compter les voyelles dans une chaîne de texte. Mais ses performances sont médiocres lorsqu'il s'agit de résoudre des problèmes délicats. Les créateurs d'AlphaCode se sont concentrés sur la résolution de ces problèmes difficiles. Pour cela, ils ont d'abord alimenté un grand modèle de langage avec plusieurs gigaoctets de code provenant de GitHub, afin de le familiariser avec la syntaxe et les conventions de codage.
Ils l'ont ensuite entraîné à traduire des descriptions de problèmes en code, en utilisant des milliers de problèmes collectés lors de concours de programmation. À titre d'exemple, un problème peut demander à un programme de déterminer le nombre de chaînes binaires de longueur "n" qui n'ont pas de zéros consécutifs. Lorsqu'on lui soumet un nouveau problème, AlphaCode génère des solutions de code candidates (en Python ou en C++) et élimine les mauvaises. Auparavant, les modèles tels que Codex généraient des dizaines ou des centaines de solutions candidates, mais DeepMind a demandé à AlphaCode d'en générer jusqu'à plus d'un million.
Pour les filtrer, AlphaCode ne garde d'abord que les 1 % de programmes qui passent les tests accompagnant les problèmes. Pour réduire encore le champ, il regroupe les programmes conservés en fonction de la similarité de leurs résultats avec les entrées inventées. Ensuite, il soumet des programmes de chaque groupe, un par un, en commençant par le plus grand groupe, jusqu'à ce qu'il tombe sur un programme réussi ou qu'il atteigne 10 soumissions (le maximum que les humains soumettent dans les concours). Le fait de soumettre des codes provenant de différents clusters lui permet de tester un large éventail de tactiques de programmation.
Selon Kevin Ellis, informaticien à l'université Cornell qui travaille sur le codage IA, c'est l'étape la plus innovante du processus d'AlphaCode. DeepMind a rapporté cette semaine qu'AlphaCode a résolu environ 34 % des problèmes qui lui ont été assignés. (Sur des repères similaires, Codex aurait atteint un pourcentage de réussite à un chiffre). « C'est un rappel spectaculaire qu'OpenAI et Microsoft n'ont pas le monopole des exploits des grands modèles de langage. Loin de là, AlphaCode surpasse à la fois GPT-3 et Github Copilot de Microsoft », a déclaré Oren Etzioni, PDG de l'Allen Institute for Artificial Intelligence de Seattle.
Pour tester davantage ses prouesses, DeepMind a inscrit AlphaCode à des concours de codage en ligne. Dans les concours comptant au moins 5000 participants, l'IA de DeepMind a surpassé 45,7 % des programmeurs. Les chercheurs ont également comparé ses programmes avec ceux de sa base de données d'entraînement et ont constaté qu'il ne dupliquait pas de grandes sections de code ou de logique. Il génèrerait quelque chose de nouveau. « Il est toujours impressionnant de constater à quel point les méthodes d'apprentissage automatique sont efficaces lorsqu'elles sont mises à l'échelle », a déclaré Ellis.
L'IA remplacera-t-elle les programmeurs humains dans un avenir proche ?
Wojciech Zaremba, cofondateur d'OpenAI et co-auteur de l'article sur Codex, a déclaré : « les résultats sont stupéfiants ». Selon Yujia Li, informaticien chez DeepMind et coauteur de l'article publié jeudi par la société dans la revue Science, le codage de l'IA pourrait avoir des applications autres que la victoire aux concours. Il pourrait faire le travail de base des logiciels, libérant ainsi les développeurs pour qu'ils travaillent à un niveau plus élevé ou plus abstrait, ou aider les non-codeurs à créer des programmes simples. Cela laisse entendre que ces systèmes ne sont pas destinés à remplacer les programmeurs humains, mais plutôt à les "aider".
David Choi, un autre co-auteur de l'étude, imagine faire fonctionner le modèle en sens inverse : "traduire le code en explications de ce qu'il fait, ce qui pourrait profiter aux programmeurs qui essaient de comprendre le code des autres. « Il y a beaucoup plus de choses que vous pouvez faire avec des modèles qui comprennent le code en général », dit-il. Pour l'instant, DeepMind souhaite réduire les erreurs du système. Yujia Li affirme que même si AlphaCode génère un programme fonctionnel, il fait parfois des erreurs simples, comme créer une variable et ne pas l'utiliser. Mais ce n'est pas, les critiques soulignent également d'autres problèmes.
AlphaCode nécessite des dizaines de milliards d'opérations par problème, une puissance de calcul que seules les plus grandes entreprises technologiques possèdent. Et les problèmes qu'il a résolus lors des concours de programmation en ligne étaient étroits et autonomes. Mais la programmation dans le monde réel nécessite souvent la gestion de gros paquets de code à plusieurs endroits, ce qui exige une compréhension plus globale du logiciel. L'étude souligne en outre le risque à long terme d'un logiciel qui s'améliore de manière récursive. Certains experts estiment qu'une telle autoamélioration pourrait conduire à une IA super-intelligente.
AlphaCode ravive le débat de longue haleine sur les promesses et les dangers potentiels de l'IA, tout comme l'a fait l'IA AlphaGo lorsqu'il a démontré la maîtrise par la machine du légendaire jeu de Go. Bien que ce scénario puisse sembler lointain, les chercheurs souhaitent que le domaine du codage de l'IA mette en place des garde-fous, des contrôles et des équilibres intégrés. Selon l'étude, ces mesures permettraient d'éviter la naissance potentielle de Skynet. « Même si ce type de technologie connaît un succès retentissant, il convient de la traiter de la même manière qu'un programmeur au sein d'une entreprise », explique Solar-Lezama.
« Vous ne voulez jamais d'une organisation où un seul programmeur pourrait faire tomber toute l'organisation », a-t-il ajouté. Par ailleurs, la programmation n'est pas le seul domaine où les progrès rapides de l'IA suscitent la controverse. Les systèmes d'IA suivants nourrissent également les débats dans la communauté :
- un programme d'OpenAI appelé ChatGPT a généré un torrent de buzz dans la communauté technologique, grâce à sa capacité à répondre aux demandes d'information par des réponses détaillées et des documents qui peuvent aller des dissertations aux lettres de démission impressionnantes ;
- les programmes de génération d'œuvres d'art basés sur l'IA, tels que Lensa, DALL-E et Stable Diffusion, ont suscité un débat sur la question de savoir si ces programmes ne profitent pas injustement des millions d'œuvres d'art archivées créées par des mains humaines - et s'ils ne risquent pas de détruire les futurs marchés pour les artistes vivants ;
- des robots ont récemment affronté des joueurs humains dans des jeux de stratégie qui, contrairement aux dames ou aux échecs, reposent sur des évaluations d'informations imparfaites sur les joueurs adverses. Le programme DeepNash de DeepMind se concentre sur le jeu de société Stratego, tandis que le programme Cicero de Meta se concentre sur un jeu de domination du monde appelé Diplomacy. Ces avancées amènent certains à se demander si l'IA pourrait être utilisée pour conseiller les planificateurs politiques (ou les escrocs) dans la vie réelle.
Source : Rapport de l'étude
Et vous ?
Quel est votre avis sur le sujet ?
Que pensez-vous des caractéristiques et des capacités de l'IA AlphaCode ?
Selon vous, les programmeurs humains doivent-ils craindre pour leurs emplois dans le futur ?
Que pensez-vous des capacités des IA de génération d'œuvres d'art telles que Lensa, DALL-E et Stable Diffusion ?
Selon vous, les IA de génération d'œuvres d'art représentent-elles une menace pour les artistes ?
Selon vous, quelles sont les préoccupations que posent les IA de génération d'œuvres d'art en matière de droit d'auteur ?
Que pensez-vous des récentes prouesses dans le secteur de l'intelligence artificielle ?
Craignez-vous une arrivée potentielle de Skynet dans un proche avenir ?
Voir aussi
DeepMind déclare que son intelligence artificielle dénommée AlphaCode est aussi bonne qu'un « programmeur humain moyen » : les travailleurs de la filière ont-ils du souci à se faire ?
L'automatisation pourrait supprimer 12 millions d'emplois en Europe d'ici les 20 prochaines années, selon une étude de Forrester Research
Stable Diffusion de Stability AI serait le modèle d'IA le plus important de tous les temps, contrairement à GPT-3 et DALL-E 2, il apporte des applications du monde réel ouvertes pour les utilisateurs