REPOEXEC : Évaluer la génération de code avec un benchmark exécutable au niveau du dépôt
REPOEXEC: Evaluate Code Generation with a Repository-Level Executable Benchmark
June 17, 2024
Auteurs: Nam Le Hai, Dung Manh Nguyen, Nghi D. Q. Bui
cs.AI
Résumé
La capacité des CodeLLMs à générer du code exécutable et fonctionnellement correct à l'échelle d'un dépôt de code reste largement inexplorée. Nous présentons RepoExec, un nouveau benchmark pour évaluer la génération de code à l'échelle d'un dépôt. RepoExec se concentre sur trois aspects principaux : l'exécutabilité, la correction fonctionnelle grâce à la génération automatisée de cas de test avec un taux de couverture élevé, et des contextes inter-fichiers soigneusement conçus pour générer du code avec précision. Notre travail explore un scénario contrôlé où les développeurs spécifient les dépendances de code nécessaires, mettant au défi le modèle d'intégrer ces éléments avec exactitude. Les expériences montrent que si les LLMs pré-entraînés surpassent les modèles ajustés par instruction en termes de correction, ces derniers excellent dans l'utilisation des dépendances fournies et démontrent des capacités de débogage. Nous introduisons également un nouveau jeu de données ajusté par instruction qui se concentre sur les dépendances de code et montrons que les CodeLLMs affinés sur notre jeu de données ont une meilleure capacité à exploiter ces dépendances de manière efficace. RepoExec vise à fournir une évaluation complète de la fonctionnalité du code et de son alignement avec l'intention des développeurs, ouvrant la voie à des CodeLLMs plus fiables et applicables dans des scénarios réels. Le jeu de données et le code source sont disponibles à l'adresse suivante : https://github.com/FSoft-AI4Code/RepoExec.
English
The ability of CodeLLMs to generate executable and functionally correct code
at the repository-level scale remains largely unexplored. We introduce
RepoExec, a novel benchmark for evaluating code generation at the
repository-level scale. RepoExec focuses on three main aspects: executability,
functional correctness through automated test case generation with high
coverage rate, and carefully crafted cross-file contexts to accurately generate
code. Our work explores a controlled scenario where developers specify
necessary code dependencies, challenging the model to integrate these
accurately. Experiments show that while pretrained LLMs outperform
instruction-tuned models in correctness, the latter excel in utilizing provided
dependencies and demonstrating debugging capabilities. We also introduce a new
instruction-tuned dataset that focuses on code dependencies and demonstrate
that CodeLLMs fine-tuned on our dataset have a better capability to leverage
these dependencies effectively. RepoExec aims to provide a comprehensive
evaluation of code functionality and alignment with developer intent, paving
the way for more reliable and applicable CodeLLMs in real-world scenarios. The
dataset and source code can be found
at~https://github.com/FSoft-AI4Code/RepoExec.Summary
AI-Generated Summary