ChatPaper.aiChatPaper

Les grands modèles de langage pour le code échouent à compléter du code contenant des bogues potentiels

Large Language Models of Code Fail at Completing Code with Potential Bugs

June 6, 2023
Auteurs: Tuan Dinh, Jinman Zhao, Samson Tan, Renato Negrinho, Leonard Lausen, Sheng Zha, George Karypis
cs.AI

Résumé

Les grands modèles de langage pour le code (Code-LLMs) ont récemment apporté des avancées considérables dans la complétion de code, une fonctionnalité fondamentale de l'assistance à la programmation et de l'intelligence du code. Cependant, la plupart des travaux existants ignorent la présence potentielle de bugs dans le contexte du code utilisé pour la génération, qui sont inévitables dans le développement logiciel. Par conséquent, nous introduisons et étudions le problème de la complétion de code bogué, inspiré par le scénario réaliste des suggestions de code en temps réel où le contexte contient des bugs potentiels — des anti-modèles qui peuvent devenir des bugs dans le programme complété. Pour étudier cette tâche de manière systématique, nous introduisons deux jeux de données : l'un avec des bugs synthétiques dérivés de modifications d'opérateurs altérant la sémantique (buggy-HumanEval) et l'autre avec des bugs réalistes issus de soumissions d'utilisateurs à des problèmes de codage (buggy-FixEval). Nous constatons que la présence de bugs potentiels dégrade significativement les performances de génération des Code-LLMs hautement performants. Par exemple, les taux de réussite de CodeGen-2B-mono sur les cas de test de buggy-HumanEval chutent de plus de 50 % en présence d'un seul bug potentiel dans le contexte. Enfin, nous explorons plusieurs méthodes post-hoc pour atténuer l'effet négatif des bugs potentiels et constatons qu'il reste un écart important dans les performances après atténuation.
English
Large language models of code (Code-LLMs) have recently brought tremendous advances to code completion, a fundamental feature of programming assistance and code intelligence. However, most existing works ignore the possible presence of bugs in the code context for generation, which are inevitable in software development. Therefore, we introduce and study the buggy-code completion problem, inspired by the realistic scenario of real-time code suggestion where the code context contains potential bugs -- anti-patterns that can become bugs in the completed program. To systematically study the task, we introduce two datasets: one with synthetic bugs derived from semantics-altering operator changes (buggy-HumanEval) and one with realistic bugs derived from user submissions to coding problems (buggy-FixEval). We find that the presence of potential bugs significantly degrades the generation performance of the high-performing Code-LLMs. For instance, the passing rates of CodeGen-2B-mono on test cases of buggy-HumanEval drop more than 50% given a single potential bug in the context. Finally, we investigate several post-hoc methods for mitigating the adverse effect of potential bugs and find that there remains a large gap in post-mitigation performance.
PDF20December 15, 2024