REPOEXEC: Avaliação de Geração de Código com um Benchmark Executável em Nível de Repositório
REPOEXEC: Evaluate Code Generation with a Repository-Level Executable Benchmark
June 17, 2024
Autores: Nam Le Hai, Dung Manh Nguyen, Nghi D. Q. Bui
cs.AI
Resumo
A capacidade dos CodeLLMs de gerar código executável e funcionalmente correto em escala de nível de repositório permanece amplamente inexplorada. Apresentamos o RepoExec, um novo benchmark para avaliar a geração de código em escala de nível de repositório. O RepoExec foca em três aspectos principais: executabilidade, correção funcional por meio de geração automatizada de casos de teste com alta taxa de cobertura e contextos cuidadosamente elaborados entre arquivos para gerar código com precisão. Nosso trabalho explora um cenário controlado em que os desenvolvedores especificam as dependências de código necessárias, desafiando o modelo a integrá-las com precisão. Experimentos mostram que, embora LLMs pré-treinados superem modelos ajustados por instrução em termos de correção, estes últimos se destacam na utilização das dependências fornecidas e na demonstração de capacidades de depuração. Também introduzimos um novo conjunto de dados ajustado por instrução que foca em dependências de código e demonstramos que CodeLLMs ajustados em nosso conjunto de dados têm uma melhor capacidade de aproveitar essas dependências de forma eficaz. O RepoExec visa fornecer uma avaliação abrangente da funcionalidade do código e do alinhamento com a intenção do desenvolvedor, abrindo caminho para CodeLLMs mais confiáveis e aplicáveis em cenários do mundo real. O conjunto de dados e o código-fonte podem ser encontrados em~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.