Maison  >  Article  >  Périphériques technologiques  >  L'Université Jiao Tong de Shanghai publie CodeApex, un modèle d'évaluation de programmation bilingue à grande échelle. Les machines ont-elles vraiment commencé à mettre les humains au défi d'écrire du code ?

L'Université Jiao Tong de Shanghai publie CodeApex, un modèle d'évaluation de programmation bilingue à grande échelle. Les machines ont-elles vraiment commencé à mettre les humains au défi d'écrire du code ?

王林
王林avant
2023-09-05 23:29:111299parcourir

Construire des machines capables d'écrire leur propre code est un objectif poursuivi par les pionniers de l'informatique et de l'intelligence artificielle. Avec le développement rapide des grands modèles de type GPT, un tel objectif devient plus proche que jamais.

L'émergence des grands modèles de langage a attiré de plus en plus l'attention des chercheurs sur les capacités de programmation des modèles. Dans cette situation, le laboratoire APEX de l'Université Jiao Tong de Shanghai a lancé CodeApex, un ensemble de données de référence bilingue axé sur l'évaluation de la compréhension de la programmation et des capacités de génération de code des LLM.

Pour évaluer la capacité de compréhension de la programmation des grands modèles de langage, CodeApex a conçu trois types de questions à choix multiples : la compréhension conceptuelle, le raisonnement de bon sens et le raisonnement multi-sauts. De plus, CodeApex utilise également des questions algorithmiques et des cas de test correspondants pour évaluer les capacités de génération de code des LLM. CodeApex a évalué un total de 14 grands modèles de langage sur des tâches de codage. Parmi eux, GPT3.5-turbo présente la meilleure capacité de programmation, atteignant respectivement une précision d'environ 50 % et 56 % sur ces deux tâches. On constate que les grands modèles de langage ont encore beaucoup à faire dans les tâches de programmation. Construire une machine capable d'écrire son propre code est un avenir très prometteur.

LUniversité Jiao Tong de Shanghai publie CodeApex, un modèle dévaluation de programmation bilingue à grande échelle. Les machines ont-elles vraiment commencé à mettre les humains au défi décrire du code ?

  • Site Web : https://apex.sjtu.edu.cn/codeapex/
  • Code : https://github.com/APEXLAB/CodeApex.git
  • Paper : https://apex.sjtu.edu.cn/codeapex/paper/

Introduction

La compréhension de la programmation et la génération de code sont des tâches clés en génie logiciel et dans l'amélioration Joue un rôle clé dans la productivité des développeurs, en améliorant la qualité du code et en automatisant le processus de développement logiciel. Cependant, ces tâches restent difficiles pour les grands modèles en raison de la complexité et de la diversité sémantique du code. Par rapport au traitement ordinaire du langage naturel, l'utilisation de LLM pour générer du code nécessite davantage d'accent sur la grammaire, la structure, le traitement des détails et la compréhension du contexte, et comporte des exigences extrêmement élevées en matière d'exactitude du contenu généré. Les approches traditionnelles incluent des modèles basés sur des règles de grammaire, des modèles basés sur des modèles et des modèles basés sur des règles, qui s'appuient souvent sur des règles conçues manuellement et des algorithmes heuristiques dont la couverture et la précision sont limitées.

Ces dernières années, avec l'émergence de modèles pré-entraînés à grande échelle tels que CodeBERT et GPT3.5, les chercheurs ont commencé à explorer l'application de ces modèles dans les tâches de compréhension de la programmation et de génération de code. Ces modèles intègrent des tâches de génération de code lors de la formation, leur permettant de comprendre et de générer du code. Cependant, une évaluation équitable des progrès des LLM dans la compréhension et la génération de code est difficile en raison du manque d'ensembles de données de référence standard, accessibles au public, de haute qualité et diversifiés. Par conséquent, l’établissement d’un ensemble de données de référence couvrant largement la sémantique et la structure du code est crucial pour promouvoir la recherche sur la compréhension de la programmation et la génération de code.

Les ensembles de données de référence de code existants présentent des problèmes d'applicabilité et de diversité lorsqu'ils sont appliqués aux LLM. Par exemple, certains ensembles de données sont plus adaptés à l’évaluation des LLM de modélisation de langage bidirectionnel de type Bert. Cependant, les ensembles de données de référence de codes multilingues existants (tels que Human-Eval) contiennent des problèmes relativement simples, manquent de diversité et ne peuvent implémenter que certains codes fonctionnels de base.

Afin de combler les lacunes ci-dessus, le laboratoire de gestion des données et des connaissances APEX de l'université Jiao Tong de Shanghai a construit une nouvelle référence d'évaluation pour la compréhension et la génération de code de grands modèles - CodeApex. En tant qu'ensemble de données de référence bilingue (anglais, chinois) révolutionnaire, CodeApex se concentre sur l'évaluation de la compréhension de la programmation et des capacités de génération de code des LLM.

LUniversité Jiao Tong de Shanghai publie CodeApex, un modèle dévaluation de programmation bilingue à grande échelle. Les machines ont-elles vraiment commencé à mettre les humains au défi décrire du code ?

La scène expérimentale globale de CodeApex est présentée dans l'image ci-dessus.

La première tâche de compréhension de la programmation comprend 250 questions à choix multiples, qui sont divisées en compréhension conceptuelle, raisonnement de bon sens et raisonnement multi-sauts. Les questions utilisées pour les tests sont sélectionnées parmi les questions de l'examen final de différents cours (programmation, structures de données, algorithmes) dans les collèges et universités, ce qui réduit considérablement le risque que les données soient déjà dans le corpus de formation du LLM. CodeApex a testé la capacité de compréhension du code des LLM dans trois scénarios : 0-shot, 2-shot et 5-shot, et a également testé l'impact des modes Réponse seule et Chaîne de pensée sur la capacité des LLM.

La deuxième génération de code de tâche comprend 476 problèmes d'algorithmes basés sur C++, couvrant des points de connaissance courants des algorithmes, tels que la recherche binaire, la recherche en profondeur d'abord, etc. CodeApex donne une description du problème et un prototype de fonction qui implémente le problème, et nécessite des LLM pour compléter la partie principale de la fonction. CodeApex propose également deux scénarios : fonction uniquement et fonction avec contexte. La différence entre eux est que le premier n'a qu'une description de la fonction cible, tandis que le second, en plus de la description de la fonction cible, est également fourni. avec le code d'appel et l'heure de la fonction cible. Contraintes d'espace, description des entrées et des sorties.

Les résultats expérimentaux montrent que différents modèles fonctionnent différemment dans les tâches liées au code, et GPT3.5-turbo présente une excellente compétitivité et des avantages évidents. De plus, CodeApex a comparé les performances des LLM dans des scénarios bilingues, révélant des résultats différents. Dans l'ensemble, il existe encore une marge considérable d'amélioration de la précision des LLM dans le classement CodeApex, ce qui indique que le potentiel des LLM dans les tâches liées au code n'a pas encore été pleinement exploité.

Compréhension du code

Pour intégrer pleinement de grands modèles de langage dans des scénarios de production de code réels, la compréhension de la programmation est essentielle. La compréhension de la programmation nécessite la capacité de comprendre le code sous tous ses aspects, tels que la maîtrise de la syntaxe, la compréhension du flux d'exécution du code et la compréhension de l'algorithme d'exécution.

CodeApex a extrait 250 questions à choix multiples des questions d'examen final de l'université en tant que données de test. Ces données de test sont divisées en trois catégories : compréhension conceptuelle, raisonnement de bon sens et raisonnement à plusieurs sauts.

LUniversité Jiao Tong de Shanghai publie CodeApex, un modèle dévaluation de programmation bilingue à grande échelle. Les machines ont-elles vraiment commencé à mettre les humains au défi décrire du code ?

Le mode Test comprend deux catégories : Réponse uniquement et Chaîne de pensée.

LUniversité Jiao Tong de Shanghai publie CodeApex, un modèle dévaluation de programmation bilingue à grande échelle. Les machines ont-elles vraiment commencé à mettre les humains au défi décrire du code ?

Résultats expérimentaux et conclusions

Les résultats de l'évaluation en chinois et en anglais de CodeApex sur la tâche de compréhension du code sont présentés dans les deux tableaux suivants. (Le modèle le plus performant est indiqué en gras ; le modèle suivant le plus performant est souligné.)

LUniversité Jiao Tong de Shanghai publie CodeApex, un modèle dévaluation de programmation bilingue à grande échelle. Les machines ont-elles vraiment commencé à mettre les humains au défi décrire du code ?

LUniversité Jiao Tong de Shanghai publie CodeApex, un modèle dévaluation de programmation bilingue à grande échelle. Les machines ont-elles vraiment commencé à mettre les humains au défi décrire du code ?

Les conclusions suivantes peuvent en être tirées :

  • Comparaison des compétences bilingues. La version chinoise a obtenu des résultats plus élevés que la version anglaise. Il y a deux raisons principales : (1) Les descriptions des questions sources proviennent des examens finaux des universités chinoises, de sorte que les questions du test ont été initialement présentées en chinois. Même s’ils sont traduits en anglais, ils contiennent encore certaines habitudes linguistiques propres aux Chinois. Par conséquent, lorsque ces questions anglaises biaisées sont introduites dans les LLM, du bruit peut être introduit dans les résultats de codage du modèle. (2) La plupart des modèles évalués sont principalement formés sur des données chinoises, ce qui conduit à de mauvais résultats.
  • Comparaison des capacités de différents types de questions. Dans ces trois catégories de problèmes, environ la moitié des modèles ont obtenu les meilleurs résultats en termes de compréhension conceptuelle, ce qui suggère qu'ils contenaient probablement des connaissances sur les concepts de programmation pendant leur formation. La plupart des modèles obtiennent de meilleurs résultats en matière de raisonnement de bon sens que de raisonnement multi-sauts, ce qui indique que la puissance des LLM diminue considérablement avec l'augmentation des étapes d'inférence.
  • Le rôle du modèle de chaîne de pensée CoT. La précision de la plupart des modèles en mode CoT est proche ou inférieure à celle du mode Réponse seule. Il y a deux raisons à ce phénomène : (1) La taille du modèle évalué n'atteint pas la taille du modèle avec la capacité d'émergence CoT. Des recherches antérieures pensaient que l’émergence du CoT exigeait que les LLM aient au moins 60 paramètres B. Lorsque le nombre de paramètres est insuffisant, la configuration CoT peut introduire du bruit supplémentaire et la réponse générée par les LLM est instable. GPT3.5-turbo a atteint le point d’émergence de capacités émergentes et peut atteindre une plus grande précision dans les paramètres CoT. (2) Pour répondre à des questions de compréhension conceptuelle et de raisonnement de bon sens, le raisonnement en plusieurs étapes est moins nécessaire. Par conséquent, les capacités CoT des LLM ne peuvent pas aider à résoudre ce type de problème. Cependant, pour les problèmes d'inférence multi-sauts, certains modèles (tels que ChatGLM2, educhat et GPT3.5-turbo) ont considérablement amélioré la précision dans les scénarios CoT. (CodeApex exclut CodeT5 des paramètres CoT en raison de son incapacité à générer des réponses via des chaînes de pensée.)

Génération de code

La formation de grands modèles de langage pour générer du code précis et exécutable est une tâche difficile. CodeApex évalue principalement la capacité des LLM à générer des algorithmes basés sur une description donnée et évalue automatiquement l'exactitude du code généré via des tests unitaires. Les tâches de génération de code de

CodeApex comprennent 476 problèmes d'algorithmes basés sur C++, couvrant des points de connaissance courants des algorithmes, tels que la recherche binaire et les algorithmes graphiques. CodeApex donne une description du problème et un prototype de fonction qui implémente le problème, et nécessite des LLM pour compléter la partie principale de la fonction.

LUniversité Jiao Tong de Shanghai publie CodeApex, un modèle dévaluation de programmation bilingue à grande échelle. Les machines ont-elles vraiment commencé à mettre les humains au défi décrire du code ?

CodeApex propose deux scénarios : fonction uniquement et fonction avec contexte. Le scénario Fonction uniquement fournit uniquement une description de la fonction cible, tandis que le scénario Fonction avec contexte fournit non seulement une description de la fonction cible, mais fournit également le code appelant, les contraintes de temps et d'espace, ainsi qu'une description des entrées et sorties de la fonction cible.

LUniversité Jiao Tong de Shanghai publie CodeApex, un modèle dévaluation de programmation bilingue à grande échelle. Les machines ont-elles vraiment commencé à mettre les humains au défi décrire du code ?

Résultats et conclusions expérimentaux

Chaque version linguistique utilise deux stratégies d'invite (fonction uniquement et fonction avec contexte). Pour s'aligner sur les scénarios de test du code humain, les mesures d'évaluation incluent AC@1, AC@all et AC rate. Les résultats de la tâche de génération de code pour chaque modèle sont présentés dans les deux tableaux suivants. (Meilleure performance : gras ; deuxième meilleure performance : souligner.)

LUniversité Jiao Tong de Shanghai publie CodeApex, un modèle dévaluation de programmation bilingue à grande échelle. Les machines ont-elles vraiment commencé à mettre les humains au défi décrire du code ?

LUniversité Jiao Tong de Shanghai publie CodeApex, un modèle dévaluation de programmation bilingue à grande échelle. Les machines ont-elles vraiment commencé à mettre les humains au défi décrire du code ?

Les conclusions suivantes peuvent être tirées :

  • GPT3.5-turbo surpasse les 11 autres LLM, avec un score moyen de plus de 50 %.
  • WizardCoder et StarCoder se sont classés deuxième et troisième, mettant en évidence des améliorations significatives dans les capacités de génération de code grâce à un réglage fin basé sur le code.
  • Dans la tâche de génération de code, il n'y a pas de différence de performances évidente entre les modèles actuellement testés sur les types de questions en chinois et en anglais.

De plus, CodeApex fournit la proportion de code compilable dans chaque scénario. Après avoir connecté la fonction générée à la fonction principale, le code compilé est vérifié via des cas de test.

LUniversité Jiao Tong de Shanghai publie CodeApex, un modèle dévaluation de programmation bilingue à grande échelle. Les machines ont-elles vraiment commencé à mettre les humains au défi décrire du code ?

Vous pouvez voir :

  • La plupart des modèles sont capables de générer plus de 50 % de code compilable, ce qui prouve la capacité des LLM à comprendre les prototypes de fonctions.
  • Souvent, fournir des informations contextuelles sur une fonction peut aider les LLM à générer du code compilable.

Conclusion

CodeApex, en tant que référence bilingue axée sur la capacité de programmation des LLM, évalue la compréhension de la programmation et les capacités de génération de code de grands modèles de langage. En termes de compréhension de la programmation, CodeApex a évalué les capacités de différents modèles dans trois catégories de questions à choix multiples. En termes de génération de code, CodeApex utilise le taux de réussite des cas de code de test pour évaluer les capacités du modèle. Pour ces deux tâches, CodeApex a soigneusement conçu des stratégies Prompt et les a comparées dans différents scénarios. CodeApex est évalué expérimentalement sur 14 LLM, y compris des LLM généraux et des modèles LLM spécialisés basés sur le réglage fin du code.

Actuellement, GPT3.5 a atteint un niveau relativement bon en termes de capacités de programmation, atteignant respectivement environ 50 % et 56 % de précision dans les tâches de compréhension de la programmation et de génération de code. CodeApex montre que le potentiel des grands modèles de langage pour les tâches de programmation n'a pas encore été pleinement exploité. Nous prévoyons que dans un avenir proche, l’exploitation de grands modèles de langage pour la génération de code révolutionnera le domaine du développement logiciel. À mesure que le traitement du langage naturel et l’apprentissage automatique progresseront, ces modèles deviendront plus puissants et plus aptes à comprendre et à générer des extraits de code. Les développeurs trouveront un allié sans précédent dans leurs efforts de codage, puisqu’ils pourront s’appuyer sur ces modèles pour automatiser des tâches fastidieuses, augmenter leur productivité et améliorer la qualité des logiciels.

À l'avenir, CodeApex publiera davantage de tests (tels que la correction de code) pour tester les capacités de code des grands modèles de langage. Les données de test de CodeApex continueront également à être mises à jour pour ajouter des problèmes de code plus diversifiés. Dans le même temps, des expériences humaines seront également ajoutées à la liste CodeApex pour comparer les capacités de codage de grands modèles de langage avec les niveaux humains. CodeApex fournit une référence pour la recherche sur les capacités de programmation de grands modèles de langage et favorisera le développement et la prospérité de grands modèles de langage dans le domaine du code.

Introduction au Laboratoire APEX

Le Laboratoire de gestion des données et des connaissances APEX de l'Université Jiao Tong de Shanghai a été créé en 1996. Son fondateur est le professeur Yu Yong, directeur de la classe ACM. Le laboratoire s'engage à explorer la technologie de l'intelligence artificielle qui extrait et gère efficacement les données et résume les connaissances. Il a publié plus de 500 articles universitaires internationaux et poursuit des applications pratiques dans des scénarios pratiques. Au cours des 27 dernières années, le laboratoire APEX est devenu un pionnier mondial dans de nombreuses vagues technologiques mondiales. Le laboratoire a commencé à étudier la technologie de base du Web sémantique (maintenant connu sous le nom de Knowledge Graph) en 2000, et a commencé à étudier les moteurs de recherche et les moteurs de recherche personnalisés. recommandations en 2003. La technologie des systèmes a commencé à étudier la théorie et les algorithmes de l'apprentissage par transfert en 2006, a commencé à explorer la technologie d'apprentissage profond en 2009 et a développé une bibliothèque de formation de réseaux neuronaux basée sur GPU. Tout en produisant des résultats de recherche scientifique et de mise en œuvre fructueux, APEX Lab a également développé une solide équipe de recherche en science des données et en apprentissage automatique, comprenant Xue Guirong, Zhang Lei, Lin Chenxi, Liu Guangcan, Wang Haofen, Li Lei, Dai Wenyuan, Li Zhenhui, Chen. Tianqi, Zhang Weinan, Yang Diyi et d'autres anciens élèves exceptionnels dans le domaine de l'intelligence artificielle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer