DeepMind crée une IA qui code aussi bien qu’un développeur moyen
Les équipes de DeepMind, filiale de Google, ont mis au point une IA capable de générer du code informatique pour résoudre un problème auquel elle n’a jamais été exposé auparavant. Ce modèle de deep learning a terminé en milieu de classement lors d’un concours de développeurs.
DeepMind semble bien décidé à faire de l’ombre à OpenAI, l’organisation à qui l’on doit le puissant modèle de traitement du langage GPT-3 et ses déclinaisons. Après avoir dévoilé le modèle Gopher, potentiellement plus performant que GPT-3, la filiale de Google spécialisée dans l’intelligence artificielle dévoile une IA dotée d’une certaine inventivité pour des tâches de programmation informatique. Dans un article de blog, les chercheurs de DeepMind montrent ce dont est capable ce modèle de deep learning nommé AlphaCode, qui est parvenu à terminer en milieu de classement lors d’un concours de développeurs.
Résolution de problèmes
AlphaCode a été spécialement entraîné pour écrire du code qui résout un problème donné. Des tâches utilisées par la plateforme Codeforces, qui propose régulièrement des concours permettant aux développeurs de tester leurs compétences. Selon l’équipe de DeepMind, il n'est pas possible de résoudre ces problèmes par des raccourcis comme la duplication de solutions déjà vues ou l'essai de tous les algorithmes potentiellement pertinents. Il s’agit typiquement de problèmes consistant à trouver des moyens de placer des routes et des bâtiments en respectant certaines contraintes, ou à créer des stratégies pour gagner des jeux de société.
Pré-entraînement, échantillonnage et tri
A l’instar des modèles de traitement de langage les plus performants, AlphaCode est basé sur un «transformeur». Ce type réseau de neurones a permis de pré-entraîner AlphaCode à partir d’une sélection de code public sur GitHub. Le modèle a ensuite été affiné sur un jeu de données issu de plusieurs concours de programmation sur Codeforces. AlphaCode a généré de nombreux codes pour répondre à chaque problème, échantillons qui sont ensuite triés pour ne garder que ceux qui résolvent correctement le problème posé. «L'échantillonnage à grande échelle suivi du filtrage est unique à notre configuration, et nous avons constaté que ce processus améliore considérablement le taux de résolution des problèmes», expliquent les concepteurs d’AlphaCode.
En participant à un concours réel sur Codeforces, AlphaCode a obtenu un score légèrement au-dessus de la médiane (54%). Pas de quoi décrocher facilement un job de développeur, mais les chercheurs se disent tout de même très satisfaits du résultat. Pour eux, cette «exploration de la génération de code laisse une grande place à l'amélioration et laisse entrevoir des idées encore plus passionnantes qui pourraient aider les programmeurs à améliorer leur productivité et ouvrir le domaine à des personnes qui n'écrivent pas de code actuellement».
Au-delà de la simple traduction d'instructions en code
Aux yeux des chercheurs, AlphaCode s’avère bien plus prometteur que d’autres modèles de génération de code informatique, telles que l’IA Codex d’OpenAI, au cœur de la solution d’assistance à la programmation GitHub Copilot. Cet outil suggère automatiquement et en temps réel des compléments de lignes de code. Une nouvelle version en développement est en outre en mesure de créer du code à partir de simples instructions en langage naturel. Cependant, les concepteurs d’AlphaCode estiment que «ces modèles ont encore des performances médiocres lorsqu'ils sont évalués sur des problèmes plus complexes, non vus, qui nécessitent des compétences de résolution de problèmes allant au-delà de la simple traduction d'instructions en code».