ChatPaper.aiChatPaper

REPOEXEC: Valutazione della Generazione di Codice con un Benchmark Eseguibile a Livello di Repository

REPOEXEC: Evaluate Code Generation with a Repository-Level Executable Benchmark

June 17, 2024
Autori: Nam Le Hai, Dung Manh Nguyen, Nghi D. Q. Bui
cs.AI

Abstract

La capacità dei CodeLLM di generare codice eseguibile e funzionalmente corretto su scala di repository rimane in gran parte inesplorata. Introduciamo RepoExec, un nuovo benchmark per valutare la generazione di codice su scala di repository. RepoExec si concentra su tre aspetti principali: eseguibilità, correttezza funzionale attraverso la generazione automatica di casi di test con un alto tasso di copertura, e contesti accuratamente progettati tra file per generare codice in modo preciso. Il nostro lavoro esplora uno scenario controllato in cui gli sviluppatori specificano le dipendenze di codice necessarie, sfidando il modello a integrarle in modo accurato. Gli esperimenti mostrano che, sebbene i LLM pre-addestrati superino i modelli ottimizzati per istruzioni in termini di correttezza, questi ultimi eccellono nell'utilizzare le dipendenze fornite e nel dimostrare capacità di debug. Introduciamo inoltre un nuovo dataset ottimizzato per istruzioni che si concentra sulle dipendenze di codice e dimostriamo che i CodeLLM fine-tuned sul nostro dataset hanno una migliore capacità di sfruttare queste dipendenze in modo efficace. RepoExec mira a fornire una valutazione completa della funzionalità del codice e dell'allineamento con l'intento dello sviluppatore, aprendo la strada a CodeLLM più affidabili e applicabili in scenari reali. Il dataset e il codice sorgente sono disponibili all'indirizzo~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.
PDF111December 2, 2024