Maison >Périphériques technologiques >IA >Traffic Engineering double la précision de la génération de code : de 19 % à 44 %
Les auteurs d'un nouvel article proposent un moyen "d'améliorer" la génération de code.
La génération de code est une capacité de plus en plus importante en intelligence artificielle. Il génère automatiquement du code informatique basé sur des descriptions en langage naturel en entraînant des modèles d'apprentissage automatique. Cette technologie a de larges perspectives d'application et peut transformer les spécifications logicielles en code utilisable, automatiser le développement back-end et aider les programmeurs humains à améliorer l'efficacité de leur travail.
Cependant, générer du code de haute qualité reste un défi pour les systèmes d'IA, par rapport aux tâches linguistiques telles que la traduction ou le résumé. Le code doit se conformer avec précision à la syntaxe du langage de programmation cible, gérer les cas extrêmes et les entrées inattendues avec élégance, et gérer avec précision les nombreux petits détails de la description du problème. Même de petites erreurs qui peuvent sembler inoffensives dans d'autres domaines peuvent complètement perturber la fonctionnalité d'un programme, entraînant l'échec de sa compilation ou de son exécution.
Récemment, des chercheurs de CodiumAI ont proposé AlphaCodium, une nouvelle méthode qui peut améliorer considérablement les capacités de génération de code des grands modèles de langage tels que GPT-4. Leur point est que le simple fait d’affiner la formulation des invites présente des limites inhérentes à la résolution de problèmes de codage complexes. Au lieu de cela, ils ont conçu un processus en plusieurs étapes axé sur la génération, l'exécution et le débogage itératifs du code par rapport aux cas de test, permettant au modèle d'apprendre de la pratique.
Dans les tâches en langage naturel, l'ingénierie des indices fait référence à l'ajustement minutieux de la formulation et de la structure des indices pour guider le modèle afin de produire le résultat souhaité. Par exemple, l'ajout de l'expression « Rédiger un résumé concis : » avant le texte saisi peut amener le modèle à générer un résumé plus précis.
L'ingénierie rapide s'est avérée très efficace dans la génération de texte pour guider le comportement de grands modèles de langage. Cependant, en ce qui concerne les problèmes de codage, les chercheurs ont constaté que même avec des ajustements approfondis et opportuns, seuls de petits gains peuvent être obtenus. Cette découverte donne à réfléchir. Par conséquent, générer du code de haute qualité nécessite encore d'autres solutions :
Ces exigences structurelles dépassent la portée de la génération de texte et ne peuvent pas être codées en dur dans l'invite. Les invites elles-mêmes manquaient des compétences de codage et des commentaires concrets nécessaires à l'apprentissage du modèle.
Pour relever ces défis, les chercheurs ont développé un processus itératif spécifiquement structuré pour les problèmes de génération de code. L'innovation clé consiste à utiliser les résultats d'exécution du code généré comme signaux d'apprentissage pour fournir un retour direct.
Le processus d'AlphaCodium comporte deux étapes principales :
En raisonnant progressivement sur les problèmes, en développant des hypothèses de solutions, en étendant la couverture des tests et en générant et en débogant du code de manière itérative, les modèles apprennent par l'expérience, les compétences mêmes requises pour une génération de code de haute qualité.
Figure 1. Exemple d'invite avec une sortie structurée (phase de génération de solution possible)
Les chercheurs ont découvert qu'il est préférable de concevoir des processus avec des interfaces et des objectifs clairs par rapport au module de modèles de bout en bout pour obtenir de meilleurs résultats. Chaque phase se concentre d'abord sur des sous-tâches plus simples pour acquérir des connaissances et découvrir des informations qui éclairent les phases en aval. Les étapes en amont telles que la génération de tests ne nécessitent pas de solution complète, mais uniquement un raisonnement de base.
Les chercheurs ont évalué AlphaCodium par rapport au benchmark CodeContests, qui contient des centaines de problèmes de codage issus de concours de programmation compétitifs.
Figure 2. Description du problème et réflexion - un exemple de question typique de CodeContests, auto-réflexion sur le problème basée sur l'intelligence artificielle. Bien que la description initiale soit longue et complexe, une bonne réflexion personnelle peut rendre le problème plus clair et plus cohérent, conduisant à des solutions de code améliorées
Par rapport au modèle GPT-4, AlphaCodium validera par rapport à une pointe unique fortement optimisée. Le code la précision de la génération sur le plateau est passée de 19 % à 44 %. Cet avantage est valable pour différentes tailles de modèles et ensembles de tests, et est nettement plus efficace qu'un projet d'indice distinct.
AlphaCodium fonctionne également nettement mieux que les méthodes publiées précédemment, telles que AlphaCode et CodeChain, tout en utilisant moins de ressources informatiques. Par exemple, en évitant la génération inutile de force brute, sa précision est comparable à celle d'AlphaCode tout en nécessitant 10 000 fois moins de requêtes de modèle.
Ces résultats démontrent l'intérêt de concevoir des systèmes d'IA de manière holistique autour des structures de tâches, plutôt que de les traiter comme des générateurs de texte à usage général. En intégrant l'exécution et le débogage itératifs de code, AlphaCodium aligne mieux le processus de formation avec l'objectif ultime de produire un code robuste et pratique.
Bien que démontrés face à un problème de programmation compétitif, les concepts utilisés dans AlphaCodium offrent une expérience plus largement applicable pour la génération de code faisant progresser l'IA :
AlphaCodium fournit un nouveau paradigme prometteur pour la génération de code basé sur les meilleures pratiques d'ingénierie logicielle. Des questions de recherche restent ouvertes concernant la généralisabilité et la surcharge de calcul. Mais les principes présentés ici (apprentissage par l’expérience, développement piloté par les tests, raisonnement modulaire et débogage itératif) semblent fournir une base solide pour améliorer les capacités de codage de l’IA.
Lien papier : https://arxiv.org/pdf/2401.08500.pdf.
Base de code : https://github.com/Codium-ai/AlphaCodium.
Titre original : « Flow Engineering » double la précision de la génération de code (19 % contre 44 %), auteur : Mike Young
Lien : https://notes.aimodels.fyi/flow-engineering-intensifies-for- génération de code/.
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!