ChatPaper.aiChatPaper

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.
PDF111December 2, 2024