DeepMind a créé un Système d’IA nommé AlphaCode qu’il dit “écrit des programmes informatiques à un niveau compétitif”. La filiale d’Alphabet a testé son système par rapport aux défis de codage utilisés dans les compétitions humaines et a constaté que son programme atteignait un « rang estimé » le plaçant dans le top 54 % des codeurs humains. Le résultat est un pas en avant significatif pour le codage autonome, déclare DeepMind, bien que les compétences d’AlphaCode ne soient pas nécessairement représentatives du type de tâches de programmation auxquelles est confronté le codeur moyen.

Oriol Vinyals, chercheur principal chez DeepMind, a déclaré Le bord par e-mail que la recherche en était encore à ses débuts, mais que les résultats ont rapproché l’entreprise de la création d’une IA flexible de résolution de problèmes – un programme capable de relever de manière autonome les défis de codage qui sont actuellement le domaine des seuls humains. « À plus long terme, nous sommes enthousiasmés par [AlphaCode’s] potentiel pour aider les programmeurs et les non-programmeurs à écrire du code, à améliorer la productivité ou à créer de nouvelles façons de créer des logiciels », a déclaré Vinyals.

AlphaCode a été testé contre des défis organisés par Force de code, une plate-forme de codage compétitive qui partage les problèmes hebdomadaires et publie des classements pour les codeurs similaires au système de notation Elo utilisé aux échecs. Ces défis sont différents du type de tâches auxquelles un codeur peut être confronté lors de la création, par exemple, d’une application commerciale. Ils sont plus autonomes et nécessitent une connaissance plus large des algorithmes et des concepts théoriques en informatique. Considérez-les comme des énigmes très spécialisées qui combinent logique, mathématiques et expertise en codage.

dans une exemple défi sur lequel AlphaCode a été testé, les concurrents sont invités à trouver un moyen de convertir une chaîne de caractères aléatoires répétés s et vous lettres dans une autre chaîne des mêmes lettres en utilisant un ensemble limité d’entrées. Les concurrents ne peuvent pas, par exemple, simplement taper de nouvelles lettres, mais doivent utiliser une commande “retour arrière” qui supprime plusieurs lettres dans la chaîne d’origine. Vous pouvez lire une description complète du défi ci-dessous :

Un exemple de défi intitulé “Retour arrière” qui a été utilisé pour évaluer le programme de DeepMind. Le problème est de difficulté moyenne, le côté gauche montrant la description du problème et le côté droit montrant des exemples de cas de test.
Image : DeepMind / Codeforces

Dix de ces défis ont été introduits dans AlphaCode exactement dans le même format qu’ils sont donnés aux humains. AlphaCode a ensuite généré un plus grand nombre de réponses possibles et les a triées en exécutant le code et en vérifiant la sortie comme le ferait un concurrent humain. “L’ensemble du processus est automatique, sans sélection humaine des meilleurs échantillons”, ont déclaré Yujia Li et David Choi, co-responsables de l’article AlphaCode. Le bord par e-mail.

AlphaCode a été testé sur 10 des défis relevés par 5 000 utilisateurs sur le site Codeforces. En moyenne, il s’est classé parmi les 54,3 % des meilleures réponses, et DeepMind estime que cela donne au système un Elo Codeforces de 1238, ce qui le place dans les 28 % des meilleurs utilisateurs qui ont concouru sur le site au cours des six derniers mois.

“Je peux dire en toute sécurité que les résultats d’AlphaCode ont dépassé mes attentes”, a déclaré le fondateur de Codeforces, Mike Mirzayanov, dans un communiqué partagé par DeepMind. « J’étais sceptique [sic] Car même dans des problèmes concurrentiels simples, il faut souvent non seulement implémenter l’algorithme, mais aussi (et c’est la partie la plus difficile) l’inventer. AlphaCode a réussi à se situer au niveau d’un nouveau concurrent prometteur.

Un exemple d’interface d’AlphaCode s’attaquant à un défi de codage. L’entrée est donnée telle quelle aux humains à gauche et la sortie générée à droite.
Image : DeepMind

DeepMind note que l’ensemble de compétences actuel d’AlphaCode n’est actuellement applicable que dans le domaine de la programmation compétitive, mais que ses capacités ouvrent la porte à la création de futurs outils qui rendent la programmation plus accessible et un jour entièrement automatisée.

De nombreuses autres entreprises travaillent sur des applications similaires. Par exemple, Microsoft et le laboratoire d’IA OpenAI ont adapté le programme générateur de langage GPT-3 de ce dernier pour fonctionner en tant que programme de saisie semi-automatique qui termine les chaînes de code. (Comme GPT-3, AlphaCode est également basé sur une architecture d’intelligence artificielle connue sous le nom de transformateur, qui est particulièrement apte à analyser du texte séquentiel, à la fois en langage naturel et en code). Pour l’utilisateur final, ces systèmes fonctionnent exactement comme la fonction Smart Compose de Gmails – suggérant des moyens de terminer tout ce que vous écrivez.

De nombreux progrès ont été réalisés dans le développement de systèmes de codage d’IA ces dernières années, mais ces systèmes sont loin d’être prêts à simplement prendre en charge le travail des programmeurs humains. Le code qu’ils produisent est souvent bogué, et parce que les systèmes sont généralement formés sur des bibliothèques de code public, ils reproduisent parfois du matériel protégé par le droit d’auteur.

Dans une étude d’un outil de programmation d’IA nommé Copilot développé par le référentiel de code GitHub, les chercheurs ont découvert qu’environ 40 % de ses résultats contenaient des failles de sécurité. Analystes de sécurité ont même proposé que de mauvais acteurs pourraient intentionnellement écrire et partager du code avec des portes dérobées cachées en ligne, qui pourraient ensuite être utilisées pour former des programmes d’IA qui inséreraient ces erreurs dans de futurs programmes.

De tels défis signifient que les systèmes de codage d’IA seront probablement intégrés lentement dans le travail des programmeurs – en commençant par des assistants dont les suggestions sont traitées avec suspicion avant qu’on ne leur fasse confiance pour effectuer le travail par eux-mêmes. Autrement dit : ils ont un apprentissage à faire. Mais jusqu’à présent, ces programmes apprennent vite.