ChatPaper.aiChatPaper

REPOEXEC: Bewertung der Codegenerierung mit einem ausführbaren Benchmark auf Repository-Ebene

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

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

Zusammenfassung

Die Fähigkeit von CodeLLMs, ausführbaren und funktional korrekten Code im Maßstab des Repositorys zu generieren, bleibt weitgehend unerforscht. Wir stellen RepoExec vor, einen neuartigen Benchmark zur Bewertung der Codegenerierung im Maßstab des Repositorys. RepoExec konzentriert sich auf drei Hauptaspekte: Ausführbarkeit, funktionale Korrektheit durch automatische Testfallgenerierung mit hoher Abdeckungsrate und sorgfältig ausgearbeitete kontextübergreifende Dateien, um Code genau zu generieren. Unsere Arbeit untersucht ein kontrolliertes Szenario, in dem Entwickler die erforderlichen Code-Abhängigkeiten angeben, um das Modell herauszufordern, diese genau zu integrieren. Experimente zeigen, dass vortrainierte LLMs zwar instruktionsangepasste Modelle in Bezug auf Korrektheit übertreffen, letztere jedoch in der Nutzung bereitgestellter Abhängigkeiten und der Demonstration von Debugging-Fähigkeiten herausragen. Wir stellen auch einen neuen instruktionsangepassten Datensatz vor, der sich auf Code-Abhängigkeiten konzentriert, und zeigen, dass CodeLLMs, die auf unserem Datensatz feinabgestimmt sind, besser in der Lage sind, diese Abhängigkeiten effektiv zu nutzen. RepoExec zielt darauf ab, eine umfassende Bewertung der Code-Funktionalität und -Ausrichtung mit der Entwicklerintention zu bieten und den Weg für zuverlässigere und anwendbarere CodeLLMs in realen Szenarien zu ebnen. Der Datensatz und der Quellcode sind unter folgendem Link zu finden: 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