REPOEXEC: Evalueer Codegeneratie met een Repository-Niveau Uitvoerbaar Benchmark
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
Samenvatting
Het vermogen van CodeLLMs om uitvoerbare en functioneel correcte code te genereren op het niveau van een repository is grotendeels onontgonnen gebied. Wij introduceren RepoExec, een nieuwe benchmark voor het evalueren van codegeneratie op repositoryniveau. RepoExec richt zich op drie hoofdaspecten: uitvoerbaarheid, functionele correctheid door middel van geautomatiseerde testcasegeneratie met een hoge dekkingsgraad, en zorgvuldig samengestelde contexten over meerdere bestanden heen om code nauwkeurig te genereren. Ons werk verkent een gecontroleerd scenario waarin ontwikkelaars de benodigde codeafhankelijkheden specificeren, wat het model uitdaagt om deze nauwkeurig te integreren. Experimenten tonen aan dat hoewel vooraf getrainde LLMs beter presteren in correctheid, instructie-getrainde modellen beter zijn in het benutten van de verstrekte afhankelijkheden en het demonstreren van debugmogelijkheden. We introduceren ook een nieuwe instructie-getrainde dataset die zich richt op codeafhankelijkheden en laten zien dat CodeLLMs die zijn afgestemd op onze dataset een beter vermogen hebben om deze afhankelijkheden effectief te benutten. RepoExec beoogt een uitgebreide evaluatie te bieden van codefunctionaliteit en afstemming op de intentie van de ontwikkelaar, waardoor de weg wordt geëffend voor betrouwbaardere en toepasbaardere CodeLLMs in realistische scenario's. De dataset en broncode zijn te vinden op~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.