Основные понятия
Ein Framework zur Erstellung skalierbarer und anpassbarer Ausführungsbasierter Benchmarks für Codegeneration, das nur minimale menschliche Anleitung erfordert.
Аннотация
Das Papier präsentiert CodeBenchGen, ein Framework zur Erstellung von Ausführungsbasierten Codegeneration-Benchmarks. Das Framework verwendet einen großen Sprachmodell (LLM), um beliebige Codeausschnitte in Evaluationsbeispiele umzuwandeln, einschließlich Testfällen für die Ausführungsevaluierung.
Das Framework besteht aus vier Schritten:
- Sandboxing: Das LLM wird verwendet, um den Quellcode in eine isolierte Umgebung einzubetten, in der er ausgeführt werden kann.
- Testgenerierung: Das LLM generiert Testfälle, um die Funktionalität des generierten Codes zu überprüfen.
- Iterative Ausführung und Debugging: Der generierte Code und die Tests werden iterativ ausgeführt und vom LLM debuggt, bis alle Testfälle bestanden werden.
- Nachbearbeitung: Natürlichsprachliche Anweisungen und zusätzliche Testfälle werden generiert.
Als Demonstration erstellt das Team den Exec-CSN-Benchmark, der 1.931 Beispiele aus 367 GitHub-Repositorys umfasst. Eine Analyse zeigt, dass Exec-CSN eine hohe Domänenvielfalt aufweist und Beispiele mit unterschiedlichen Schwierigkeitsgraden enthält, von denen 81,3% von Menschen gelöst werden können.
Experimente mit 10 Codegeneration-Modellen zeigen, dass das beste Modell nur eine Pass@1-Punktzahl von 37,21% erreicht, was die Komplexität des Datensatzes verdeutlicht. Die Analyse zeigt, dass die Modelle insbesondere bei Beispielen mit längeren Zielausdrücken, mehr Funktionsaufrufen oder externen Bibliotheken schlechter abschneiden.
Статистика
Die durchschnittliche Anzahl der Codetokens beträgt 496,53, die durchschnittliche Tiefe des AST 9,38 und die durchschnittliche Anzahl der Variablen 12,03.
Die Anzahl der Codetokens reicht von 83 bis 1.529.
Цитаты
"To facilitate evaluation of code generation systems across diverse scenarios, we present CodeBenchGen, a framework to create scalable execution-based benchmarks that only requires light guidance from humans."
"Results show that the best model (GPT-4-turbo) only achieves 37.21 Pass@1, indicating that there is still room for improvement on our dataset."