Neovulga – Veille Vulgarisée – AlphaCode

Neovulga – Veille Vulgarisée – Alphacode

A Neovision, nous menons une veille scientifique constante pour rester à l’état de l’art. Chaque mois, les dernières avancées sont présentées à l’ensemble de l’équipe, que ce soit de nouveaux jeux de données, un nouveau papier de recherche… Nous passons toutes les actualités – ou presque – au crible. Dans notre ambition visant à mettre l’IA à la portée de tous, nous vous proposons régulièrement l’analyse vulgarisée d’un sujet technique présenté par notre cellule R&D.

Ici, nous traiterons de l’article scientifique Competition-Level Code Generation with AlphaCode, par DeepMind. 

Contexte

La programmation compétitive est une activité qui rassemble régulièrement des centaines de milliers de programmeurs. Dans le cadre de ces concours, les participants reçoivent un ensemble de problèmes logiques ou mathématiques à résoudre dans un temps imparti. Et ici, pas question d’utiliser une feuille de papier ou même un stylo, la résolution se fait uniquement par le biais de programmes informatiques.

Pour espérer se hisser dans le haut du classement, l’objectif est de réussir à résoudre le plus grand nombre de problèmes dans le temps imparti. Si ce classement est généralement basé sur le nombre de problèmes résolus, d’autres facteurs peuvent également être pris en compte comme la qualité du résultat, le temps d’exécution ou encore la taille du programme.

Jusqu’alors, les capacités de résolutions de problèmes requises allaient au-delà de ce que l’IA avait à offrir. Enfin, jusqu’à ce que DeepMind dévoile AlphaCode !

L’avancée présentée

AlphaCode écrit donc des programmes informatiques à un niveau compétitif. Pour exceller à cette tâche, il a préalablement été entraîné grâce à des codes disponibles publiquement sur GitHub. Un affinage a par la suite été réalisé avec un ensemble de données issues des résultats des compétitions de Codeforces.

AlphaCode a ensuite été confronté à une dizaine de problèmes dans le cadre des compétitions organisées sur Codeforces. Ils sont de même forme que ceux soumis aux autres participants, à savoir des énoncés rédigés en langue anglaise.

Une des spécificités de la programmation compétitive réside dans le nombre limité de solutions qu’il est possible de proposer. C’est pour cela qu’AlphaCode génère d’abord un grand nombre de solutions qui sont ensuite filtrées une première fois selon les performances. Un deuxième filtrage permet par la suite de conserver uniquement les solutions les plus différentes les unes des autres afin de maximiser les chances de succès.

Pourquoi c’est cool ?

Une chose est sûre, AlphaCode donne du fil à retordre aux compétiteurs humains ! Ses performances dépassent l’état de l’art en la matière. Les algorithmes créés se classent dans les 54% des meilleures réponses humaines. Quant à AlphaCode, il se place dans les 28% des meilleurs compétiteurs des 6 derniers mois.

En bref, bien qu’il n’agisse pour le moment que dans le cadre des compétitions de code, son potentiel est énorme.

Dr Arthur Bernard

L’édito d’Arthur

On est de plus en plus habitué à voir la machine capable de battre l’humain lorsqu’il s’agit de faire preuve de logique et de raisonnement. Mais la programmation peut être considérée comme une activité nécessitant une forte part de créativité qui la rend difficile pour une IA. 

Si AlphaCode n’obtient pas des résultats encore compétitifs avec les meilleurs humains, ses performances sont bien au-dessus de ce qui existe actuellement dans le domaine. Surtout qu’AlphaCode est capable de comprendre des énoncés complexes écrits en langage naturel et qui sont les mêmes que ceux qui seraient soumis à des humains. C’est donc une avancée aussi bien dans la génération de code que dans la compréhension du langage. 

Pour arriver à ce résultat, DeepMind s’est servi d’une architecture de Transformers – aujourd’hui très populaire pour la compréhension du langage – entraînée avec un algorithme d’apprentissage par renforcement. Si AlphaCode est aujourd’hui appliqué à un domaine très particulier, il est possible que ce genre d’outils puisse dans le futur aider quotidiennement au développement informatique.

L’article original, ci-dessous.

CONSULTER L'ARTICLE
Chloé Koch-Pageot
No Comments

Post a Comment

Neovision © 2022