Génération de code de niveau compétition avec AlphaCode

La programmation est un outil puissant et omniprésent pour résoudre des problèmes. Le développement de systèmes capables d’aider les programmeurs, voire de générer des programmes de manière autonome, pourrait rendre la programmation plus productive et plus accessible. Toutefois, intégrer jusqu’à présent les avancées de l’intelligence artificielle s’est révélé particulièrement difficile. Les récents modèles linguistiques à grande échelle ont démontré une capacité impressionnante à générer du code, et sont désormais capables de traiter des tâches de programmation simples. Toutefois, leur performance reste médiocre lorsqu’ils sont évalués sur des problèmes plus complexes et inédits, qui exigent des compétences de résolution de problèmes allant au-delà de la simple traduction d’instructions en code. Par exemple, les problèmes de programmation compétitive, qui nécessitent une compréhension approfondie des algorithmes et une interprétation fine du langage naturel, restent extrêmement difficiles. Pour combler cet écart, nous présentons AlphaCode, un système de génération de code capable de produire des solutions originales à ces problèmes exigeant une réflexion plus profonde. Dans des évaluations simulées sur des compétitions récentes de programmation sur la plateforme Codeforces, AlphaCode a obtenu en moyenne un classement parmi les 54,3 % meilleurs, dans des concours comptant plus de 5 000 participants. Nous avons identifié trois composantes essentielles pour atteindre une performance fiable et de qualité : (1) un ensemble de données d’entraînement et d’évaluation étendu et propre, dédié à la programmation compétitive ; (2) des architectures transformer à grande échelle et efficaces à échantillonner ; et (3) un échantillonnage à grande échelle des modèles afin d’explorer l’espace de recherche, suivi d’un filtrage basé sur le comportement des programmes, réduisant ainsi le nombre de soumissions à un petit ensemble pertinent.