Encore une IA qui veut coder à notre place ?!

Alors comme ça vous vous remettez à peine de votre frayeur à la sortie de GitHub Copilot l’année dernière ? Désolé de vous décevoir, mais l’IA de Microsoft ne sera plus seule à vous concurrencer sur votre propre terrain : la société DeepMind affirme que son intelligence artificielle AlphaCode serait capable de coder aussi bien — voire mieux — qu’un humain !


(askip oui.)

Dans un billet publié sur son blog la semaine dernière, DeepMind explique s’intéresser à l’application des techniques du Machine Learning pour le code. La société, qui fait partie du lab IA d’Alphabet (la maison-mère de Google) rappelle que sa mission vise à faire de l’intelligence artificielle l’invention la plus utile pour l’humanité, et que leurs systèmes ont besoin pour cela d’être dotés d’une capacité à résoudre des problèmes.

Et il faut avouer que dans le domaine de la programmation, on en a à revendre des problèmes à résoudre, hein oui ?

Leur dernier système en date, AlphaCode, a été confronté à plusieurs épreuves de compétitions de programmation, notamment sur la plateforme mondialement connue Codeforces, qui héberge régulièrement des challenges auquels participent des dizaines de milliers de développeurs dans le but de tester leurs compétences en programmation.

DeepMind indique que sur une sélection de 10 épreuves récentes (plus récentes que leur jeu de données) éprouvées par environ 5000 participants chacune, AlphaCode est parvenu à se hisser au même niveau qu’un participant moyen (top 54%).

Pour atteindre une telle performance, l’équipe de chercheurs derrière AlphaCode explique que la solution s’est entraînée dans un premier temps sur une sélection de projets publics sur GitHub, et a ajusté son approche (fine-tuning) en établissant des liens entre des problèmes de concours de code et leurs solutions.

Au moment de sa mise à l’épreuve, AlphaCode génère une quantité massive de programmes Python et C++ en réponse aux problèmes à résoudre (les épreuves de Codeforces donc) puis filtre, ajuste et évalue toutes ces solutions pour en ressortir un lot des 10 programmes qui performent le mieux.

Il est important de préciser que les challenges de code ont été remis à AlphaCode sous le même format que pour les participants humains (énoncés sous forme rédigée). Le système a de lui-même généré son large ensemble de réponses possibles en se basant sur sa compréhension des énoncés et les a affinées en exécutant le code et vérifiant la sortie comme un participant l’aurait fait.

Les équipes de DeepMind précisent que l’intégralité du processus est automatique, sans aucune assistance sur la sélection des meilleures solutions possibles au moment de la résolution du problème. De même, ce genre de challenge est construit de manière à forcer une réflexion et ne pas reposer sur le simple copié / collé d’algorithmes ou projets déjà existants.

Vous la sentez, la différence avec GitHub Copilot ?

Car DeepMind l’affirme : AlphaCode pourrait être utilisé pour mettre au point des assistants de programmation, mais surtout un jour produire ses propres programmes, de quoi démontrer la puissance et le potentiel des modèles de deep learning pour des tâches nécessitant un esprit critique.

Alors qu’une étude a démontré que 40% du code généré par GitHub Copilot était susceptible de contenir des failles de sécurité, et que des analystes en sécurité alertent sur le fait que des personnes mal intentionnées pourraient volontairement partager du code embarquant des backdoors sur GitHub afin que celui-ci se retrouve dans d’autres projets “grâce” à Copilot, l’ajout de cette notion d’analyse et d'évaluation dans ce type d’outil pourrait permettre — à défaut de tout bonnement voler nos jobs 👀  (meuh non) — de construire des assistants de programmation plus soucieux de ces problématiques.

Si vous souhaitez en savoir (beaucoup) plus sur la manière dont fonctionne AlphaCode, vous pouvez consulter le papier scientifique (prépublication) des équipes de DeepMind.

Suivre Les Joies du Code sur Twitter