REPOEXEC: Оценка генерации кода с исполняемым бенчмарком на уровне репозитория
REPOEXEC: Evaluate Code Generation with a Repository-Level Executable Benchmark
June 17, 2024
Авторы: Nam Le Hai, Dung Manh Nguyen, Nghi D. Q. Bui
cs.AI
Аннотация
Способность CodeLLM генерировать исполняемый и функционально корректный код на уровне репозитория остается в значительной степени неизученной. Мы представляем RepoExec, новый бенчмарк для оценки генерации кода на уровне репозитория. RepoExec фокусируется на трех основных аспектах: исполнимости, функциональной корректности через автоматическую генерацию тестов с высоким покрытием и тщательно разработанных контекстах между файлами для точной генерации кода. Наша работа исследует контролируемый сценарий, где разработчики указывают необходимые зависимости кода, ставя перед моделью задачу их точного интегрирования. Эксперименты показывают, что хотя предварительно обученные LLM превосходят модели, настроенные на инструкции, по корректности, последние превосходят в использовании предоставленных зависимостей и демонстрируют возможности по отладке. Мы также представляем новый набор данных, настроенный на инструкции, который фокусируется на зависимостях кода и демонстрируем, что CodeLLM, донастроенные на нашем наборе данных, обладают лучшей способностью эффективно использовать эти зависимости. RepoExec нацелен на предоставление всесторонней оценки функциональности кода и соответствия намерениям разработчика, открывая путь для более надежных и применимых CodeLLM в реальных сценариях. Набор данных и исходный код можно найти по ссылке: 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