Mesurer la compétence aux défis de codage avec APPS

Bien que la programmation soit l'une des compétences les plus largement applicables dans la société moderne, les modèles d'apprentissage automatique actuels ne sont toujours pas capables de coder des solutions à des problèmes de base. Malgré son importance, il y a eu surprenamment peu de travaux consacrés à l'évaluation de la génération de code, et il peut être difficile d'évaluer rigoureusement les performances de cette génération. Pour relever ce défi, nous introduisons APPS, un banc d'essai pour la génération de code. Contrairement aux travaux antérieurs menés dans des contextes plus restreints, notre banc d'essai mesure la capacité des modèles à prendre une spécification linguistique naturelle quelconque et à générer un code Python satisfaisant. De manière similaire à la façon dont les entreprises évaluent les candidats développeurs logiciels, nous évaluons ensuite les modèles en vérifiant leur code généré sur des cas tests. Notre banc d'essai comprend 10 000 problèmes, allant de solutions simples en une ligne à des défis algorithmiques importants. Nous affinons les grands modèles linguistiques tant sur GitHub que sur notre ensemble d'entraînement, et nous constatons que la prévalence des erreurs syntaxiques diminue exponentiellement à mesure que les modèles s'améliorent. Des modèles récents comme GPT-Neo peuvent réussir environ 20 % des cas tests des problèmes introductifs, ce qui nous amène à conclure que les modèles d'apprentissage automatique commencent maintenant à apprendre comment coder. Alors que l'importance sociale de la génération automatique de code augmentera au cours des prochaines années, notre banc d'essai peut fournir une mesure importante pour suivre les progrès réalisés.