Améliorer l'IA pour résoudre les problèmes lors des concours de codage

Améliorer l'IA pour résoudre les problèmes lors des concours de codage

Interview Les capacités des grands modèles de langage commerciaux à résoudre des problèmes de programmation compétitifs peuvent être considérablement améliorées en guidant soigneusement leurs processus grâce à une ingénierie intelligente et rapide.

Pour le démontrer, Codium AI, basée en Israël, a construit AlphaCodium et libéré le logiciel sur GitHub ce mois-ci. AlphaCodium n'est pas un grand modèle de langage en soi. Il s'agit plutôt d'une méthode qui améliore les capacités de résolution de problèmes des outils d'IA générative comme GPT-4 en utilisant ce que le PDG Itamar Friedman appelle « l'ingénierie des flux ».

Tout d’abord, une question de programmation est introduite dans le grand modèle de langage sous-jacent, et il lui est demandé de décrire et de résumer le problème. Ces informations guident ensuite la manière dont il doit commencer à résoudre le problème. AlphaCodium définit des éléments, comme ce que devraient être les entrées et les sorties, lorsqu'il propose une solution. Tout cela est précisé en langage naturel.

Le modèle commence alors à générer du code conforme aux spécifications qu’il vient de décrire. Les concours de programmation demandant aux candidats de coder selon les spécifications fournissent généralement des tests montrant ce qu'un script doit produire pour une entrée donnée. AlphaCodium génère davantage de ces cas de test, puis exécute les solutions possibles pour vérifier si le code fonctionne comme prévu.

S'il ne parvient à correspondre à aucun des résultats définis dans aucun des tests, le modèle génère différentes solutions jusqu'à ce qu'elles réussissent tous les tests ou qu'il échoue. Des erreurs peuvent survenir lorsque son code ne se compile pas ou est tout simplement erroné.

Vous pouvez voir les différentes étapes du processus d’ingénierie des flux dans le diagramme ci-dessous. Il est en grande partie divisé en une phase de prétraitement, où le système analyse le problème en langage naturel, et une étape d'itération du code, où il exécute des solutions possibles contre des tests publics et générés par l'IA.

alphacodium

Toutes les grandes étapes qui guident AlphaCodium dans la génération de code pour résoudre les problèmes

"Nous ne prenons pas le problème et n'allons pas vers le modèle et lui disons : 'Hé, s'il vous plaît, générez la solution finale'", a déclaré Friedman. Le registre. "Nous demandons au modèle de redéfinir ce problème sous forme de puces." Le simplifier et diviser les éléments en morceaux permet au modèle de générer plus facilement du code pour différentes parties d'un algorithme.

Essentiellement, l’ingénierie des flux est une procédure qui guide le processus de résolution de problèmes du modèle en le divisant en étapes bien définies. L'inviter à « diviser le code généré en petites sous-fonctions, avec des noms et des fonctionnalités significatifs », nous dit-on, conduit à moins de bogues et rend le code plus facile à tester et à corriger.

"Nous avons essentiellement consacré 95 % de notre temps à l'ingénierie des flux, et seulement 5 % à l'ingénierie des invites, et nous n'avons pas modifié les invites pour chaque [étape]", a ajouté Friedman.

Les ingénieurs de Codium ont testé les performances de leur modèle sur des centaines de problèmes utilisés dans les parties de vérification et de test de l'ensemble de données CodeForces compilé par Google DeepMind il y a deux ans. Ils affirment qu'AlphaCodium résolvait mieux les problèmes de codage que les modèles AlphaCode et AlphaCode2 de Google DeepMind.

Dans les résultats rapportés dans un arXiv papier [PDF], AlphaCodium a été capable de répondre correctement à 44 % des questions, contre 24 % pour AlphaCode, tout en générant seulement cinq solutions par rapport aux dix solutions choisies par AlphaCode pour 107 problèmes de validation. Il est intéressant de noter que l'écart s'est réduit lorsqu'il s'agissait de 165 problèmes de test, AlphaCodium résolvant 29 pour cent, contre 28 pour cent pour AlphaCode.

AlphaCode sélectionne les dix solutions les plus prometteuses parmi des dizaines de milliers, voire des centaines de milliers, de scripts possibles qu'il génère, ce qui rend son exécution gourmande en calculs.

"Nous nous sommes concentrés beaucoup plus sur l'ensemble du flux de tests", a déclaré Friedman. « Pour [Google], ils ont fait énormément de travail sur la génération. Ils essaient de générer des centaines d’autres options et nous générons très peu de solutions, mais nous les testons très bien pour guider l’amélioration du code.

AlphaCodium est un tout petit peu meilleur que le dernier modèle AlphaCode2 de Google DeepMind, qui est 10,000 XNUMX fois plus efficace que son prédécesseur AlphaCode, a-t-il ajouté.

alphacodium_2

Comment AlphaCodium se compare à d'autres modèles de pointe en termes de précision et d'efficacité

Friedman s'est dit convaincu que les performances d'AlphaCodium ne sont pas dues à une fuite de données, le modèle sous-jacent ayant été formé et testé sur les mêmes problèmes. La version GPT-4 qui alimente AlphaCodium a été formée sur du texte extrait d'Internet jusqu'en septembre 2021, tandis que les problèmes sur lesquels elle a testé son système provenaient de l'ensemble de données CodeForces susmentionné qui a été publié beaucoup plus tard.

Cependant, une meilleure comparaison pomme par pomme qui évalue le processus d'ingénierie des flux consiste à examiner la capacité de GPT-4 à résoudre ces mêmes questions avec et sans application d'AlphaCodium. L'ancien GPT-4 ne pouvait répondre correctement qu'à 19 et 12 pour cent des problèmes dans les ensembles de validation et de test respectivement, contre 44 et 29 pour cent pour la variante alimentée par AlphaCodium.

En bref, il semble que la mise en œuvre d'un pipeline minutieux générant des données supplémentaires pour guider la manière dont le code est généré et améliorer le processus de test peut être plus efficace que d'essayer de former un grand modèle de langage à partir de zéro.

Codium a récemment publié un nouvel outil pour prendre en charge les développeurs Python, qui peuvent désormais appeler AlphaCodium pour résoudre directement un problème de codage dans leur IDE. Tu peux jouer avec ici. ®

Horodatage:

Plus de Le registre