Programmation compétitive avec Alphacode – Google DeepMind

 Programmation compétitive avec Alphacode – Google DeepMind


Recherche

Publié
Auteurs

L’équipe Alphacode

Remarque: Ce blog a été publié pour la première fois le 2 février 2022. Après la publication du document dans Science le 8 décembre 2022, nous avons fait des mises à jour mineures du texte pour le refléter.

Résoudre de nouveaux problèmes et fixer une nouvelle étape dans la programmation compétitive

Créer des solutions à des problèmes imprévus est la seconde nature de l’intelligence humaine – le résultat d’une pensée critique informée par l’expérience. La communauté de l’apprentissage automatique a fait d’énormes progrès dans la génération et la compréhension des données textuelles, mais les progrès de la résolution de problèmes restent limités à des problèmes de mathématiques et de programmation relativement simples, ou bien de récupérer et de copier des solutions existantes.

Dans le cadre de Mission de Deepmind Pour résoudre l’intelligence, nous avons créé un système appelé Alphacode qui écrit des programmes informatiques à un niveau compétitif. Alphacode a atteint un rang estimé dans les 54% des participants aux compétitions de programmation en résolvant de nouveaux problèmes qui nécessitent une combinaison de pensée critique, de logique, d’algorithmes, de codage et de compréhension du langage naturel.

Publié sur la couverture de la sciencenotre papier détaille Alphacode, qui utilise des modèles de langage basés sur les transformateurs pour générer du code à une échelle sans précédent, puis filtre intelligemment un petit ensemble de programmes prometteurs.

Nous avons validé nos performances en utilisant des compétitions organisées sur Forces codéesune plate-forme populaire qui organise des compétitions régulières qui attirent des dizaines de milliers de participants du monde entier qui viennent tester leurs compétences de codage. Nous avons sélectionné pour l’évaluation 10 concours récents, chacun plus récent que nos données de formation. Alphacode a placé à peu près le niveau du concurrent médian, marquant la première fois qu’un système de génération de code AI a atteint un niveau de performance concurrentiel dans les compétitions de programmation.

Pour aider les autres à s’appuyer sur nos résultats, nous avons publié notre ensemble de données de problèmes de programmation compétitifs et de solutions sur githuby compris des tests approfondis pour garantir que les programmes qui réussissent ces tests sont corrects – une fonctionnalité critique des ensembles de données actuels manquent. Nous espérons que cette référence entraînera de nouvelles innovations dans la résolution de problèmes et la génération de code.

Le problème provient des forces de code et la solution a été générée par Alphacode.

La programmation compétitive est une activité populaire et difficile; Des centaines de milliers de programmeurs participent à des compétitions de codage pour acquérir de l’expérience et présenter leurs compétences de manière amusante et collaborative. Pendant les compétitions, les participants reçoivent une série de longues descriptions de problèmes et quelques heures pour écrire des programmes pour les résoudre.

Les problèmes typiques comprennent la recherche de moyens de placer des routes et des bâtiments dans certaines contraintes ou de la création de stratégies pour gagner des jeux de société personnalisés. Les participants sont ensuite classés principalement en fonction du nombre de problèmes qu’ils résolvent. Les entreprises utilisent ces compétitions comme outils de recrutement et des types de problèmes similaires sont courants dans l’embauche de processus pour les ingénieurs logiciels.

« 

Je peux dire en toute sécurité que les résultats de l’alphacode ont dépassé mes attentes. J’étais sceptique car même dans des problèmes concurrentiels simples, il est souvent nécessaire non seulement de mettre en œuvre l’algorithme, mais aussi (et c’est la partie la plus difficile) à l’inventer. Alphacode a réussi à fonctionner au niveau d’un nouveau concurrent prometteur. J’ai hâte de voir ce qui nous attend!

Mike Mirzayanov, fondateur, Forces de code

Les capacités de résolution de problèmes nécessaires pour exceller dans ces compétitions dépassent les capacités des systèmes d’IA existants. Cependant, en combinant les progrès des modèles de transformateurs à grande échelle (qui ont récemment montré des capacités prometteuses pour générer du code) avec un échantillonnage et un filtrage à grande échelle, nous avons fait des progrès significatifs dans le nombre de problèmes que nous pouvons résoudre. Nous pré-entraînons notre modèle sur le code GitHub public sélectionné et l’a affiner sur notre ensemble de données de programmation compétitif relativement petit.

Au moment de l’évaluation, nous créons une quantité massive de programmes C ++ et Python pour chaque problème, des ordres de grandeur supérieurs aux travaux précédents. Ensuite, nous filtrons, regroupons et réincarré ces solutions à un petit ensemble de 10 programmes de candidats que nous soumettons pour une évaluation externe. Ce système automatisé remplace le processus de débogage des essais et d’erreurs des concurrents, de compilation, de tests et finalement de soumettre.

Avec l’autorisation des forces de code, nous avons évalué Alphacode en simulant la participation à 10 concours récents. Le travail impressionnant de la communauté de programmation compétitive a créé un domaine où il n’est pas possible de résoudre des problèmes à travers des raccourcis tels que la duplication des solutions observées auparavant ou d’essayer chaque algorithme potentiellement lié. Au lieu de cela, notre modèle doit créer des solutions nouvelles et intéressantes.

Dans l’ensemble, l’alphacode s’est placé à peu près au niveau du concurrent médian. Bien que loin de remporter des compétitions, ce résultat représente un saut substantiel dans les capacités de résolution de problèmes d’IA et nous espérons que nos résultats inspireront la communauté de programmation compétitive.

« 

La résolution de problèmes de programmation concurrentielle est une chose vraiment difficile à faire, nécessitant à la fois de bonnes compétences de codage et une créativité de résolution de problèmes chez l’homme. J’ai été très impressionné qu’Alphacode puisse progresser dans ce domaine, et ravi de voir comment le modèle utilise sa compréhension de sa déclaration pour produire du code et guider son exploration aléatoire pour créer des solutions.

Petr Mitrichev, ingénieur logiciel, Google et programmeur compétitif de classe mondiale

Pour l’intelligence artificielle pour aider l’humanité, nos systèmes doivent être en mesure de développer des capacités de résolution de problèmes. Alphacode s’est classé parmi les 54% parmi les compétitions de programmation du monde réel, un progrès qui démontre le potentiel des modèles d’apprentissage en profondeur pour les tâches qui nécessitent une pensée critique. Ces modèles exploitent avec élégance l’apprentissage automatique moderne pour exprimer des solutions aux problèmes en tant que code, revenant à la racine de raisonnement symbolique de l’IA il y a des décennies. Et ce n’est qu’un début.

Notre exploration dans la génération de code laisse une grande place à l’amélioration et fait allusion à des idées encore plus excitantes qui pourraient aider les programmeurs à améliorer leur productivité et à ouvrir le terrain aux personnes qui n’écrivent pas actuellement de code. Nous continuerons cette exploration et espérons que de nouvelles recherches entraîneront des outils pour améliorer la programmation et nous rapprocher d’une IA de résolution de problèmes.

Voir les solutions d’Alphacode et explorer le modèle à alphacode.deepmind.com



Source link

Related post