Les chercheurs de la CMU proposent DocPrompting : une approche en langage naturel de la génération de code en récupérant la documentation du code

Les bibliothèques de code source accessibles au public évoluent et se développent constamment. Ainsi, il est difficile pour les modèles de code de rester à jour avec toutes les API accessibles en formant uniquement ces modèles sur des référentiels de code existants. DocPrompting est une nouvelle façon de générer du code en langage naturel qui utilise explicitement la documentation en demandant les composants de documentation appropriés en réponse à une intention NL.

La flexibilité de DocPrompting signifie qu’il peut être utilisé avec n’importe quel langage de programmation et est indépendant du modèle neuronal spécifique utilisé. Pour aider les développeurs, docprompting peut afficher des sections de documentation et écrire du code basé sur ces sections. En scannant la documentation, le code LM (tel que Codex ou CodeT5) peut générer des appels à des bibliothèques et des fonctions que vous ne rencontrerez jamais dans ses données de formation.

Comment ça fonctionne

🚨 Lisez notre dernière newsletter AI🚨

Pour commencer, le récupérateur de documents accédera au pool de documentation pour le code récupéré et, en utilisant l’intention NL, extraira tous les documents applicables. Le générateur de code insère ensuite la documentation dans une invite qui produit le code. De nouveaux contenus (tels que des documents pour des bibliothèques nouvellement publiées) peuvent être ajoutés à l’ensemble de documentation du magasin de données externe sans réentraîner aucune partie du modèle. Cela permet à DocPrompting d’utiliser la documentation nouvellement ajoutée et de produire du code qui utilise des bibliothèques et des fonctions inédites ou inutilisées. Le framework DocPrompting est universel et peut être utilisé avec n’importe quel langage de programmation ou infrastructure majeur.

Étude et analyse par des chercheurs

Un groupe de chercheurs a présenté un ensemble de critères nouvellement sélectionnés pour tester à l’avenir les modèles de génération de code basés sur la récupération. Les deux scripts shell fonctionnent où les chercheurs ont dû écrire des commandes shell complexes basées sur l’intention et la cartographie de la programmation Python où ils ont dû générer des réponses en Python aux requêtes NL ont été utilisées pour évaluer DocPrompting. Les chercheurs rendent compte d’une métrique nouvellement sélectionnée avant de discuter de la répartition métrique CoNaLa récemment populaire. Les chercheurs fournissent un ensemble de documentation D universel pour chaque norme de formation de retriever, y compris des exemples et de la documentation Oracle Dn.

Selon les auteurs de l’étude, les modèles utilisant DocPrompting battent régulièrement leurs homologues générant uniquement du code NL. L’évaluation basée sur l’exécution de CoNaLa constate une augmentation de 2,85 % du roulement à 1 (gain relatif de 52 %) ​​lors de l’utilisation de DocPrompting sur des modèles de base déjà puissants comme CodeT5.

DocPrompting surpasse constamment les dernières méthodes dans le nouvel ensemble de données NL->Bash “tldr”. Dans le cas de CodeT5 et GPT-Neo1.3B, par exemple, le pourcentage de correspondances exactes peut augmenter jusqu’à 6,9 %.

Selon les chercheurs, l’une des principales raisons est que la documentation comprend des descriptions en langage naturel et des signatures de fonctions, ce qui facilite le mappage entre les intentions NL et le code. Le chevauchement de n-grammes entre les intentions NL et les extraits de code qui leur correspondent a été déterminé par les chercheurs (NLcode), et le chevauchement entre les cibles NL et les 10 principaux documents récupérés a été déterminé par les chercheurs ((NL + code docs). La quantité d’informations partagées entre les n-grammes augmente de manière exponentielle lorsque la documentation est incluse. En d’autres termes, la récupération de la documentation aide à établir la fidélité du code car elle aide à combler le fossé entre les “termes d’intention” et les “termes du code”.

En conclusion, DocPrompting est un moyen simple de générer du code en disposant de la documentation appropriée. DocPrompting améliore de manière fiable les paradigmes NLcode à travers plusieurs paradigmes de base puissants et importants et deux langages de programmation. En utilisant le benchmark Python CoNaLa bien connu, DocPrompting booste les modèles de base puissants comme CodeT5 de 2,85 % en rollover @ 1 (52 % de gain relatif) dans l’évaluation basée sur l’exécution ; Dans la nouvelle version de l’ensemble de données Bash tldr, DocPrompting augmente CodeT5 et GPT-Neo-1.3B jusqu’à 6,9 % de correspondances exactes et Codecs de 6,78 scores charBLEU. Ces découvertes ouvrent la voie à un avenir prometteur pour la génération de NLcode. D’autres améliorations sont possibles grâce à une formation coopérative du récupérateur et du générateur, qui devrait éviter les erreurs en cascade, et grâce à un codage plus intelligent de la nature structurée des textes volumineux.


scanner le papier Et github. Tout le mérite de cette recherche revient aux chercheurs de ce projet. N’oubliez pas non plus de vous inscrire 14k + ML Sous RedditEt canal de discordeEt Courrieloù nous partageons les dernières nouvelles sur la recherche en IA, des projets d’IA sympas, et plus encore.


Dhanshree Shenwai est un ingénieur en informatique avec une solide expérience dans les entreprises FinTech couvrant les domaines de la finance, des cartes, des paiements et de la banque avec un vif intérêt pour les applications d’IA. Elle est passionnée par l’exploration des nouvelles technologies et des développements dans le monde en évolution d’aujourd’hui, ce qui facilite la vie de chacun.


Enregistrer un commentaire

Plus récente Plus ancienne

نموذج الاتصال