BigCodeBench: Benchmarking der Codegenerierung mit vielfältigen Funktionsaufrufen und komplexen Anweisungen
BigCodeBench: Benchmarking Code Generation with Diverse Function Calls and Complex Instructions
June 22, 2024
Autoren: Terry Yue Zhuo, Minh Chien Vu, Jenny Chim, Han Hu, Wenhao Yu, Ratnadira Widyasari, Imam Nur Bani Yusuf, Haolan Zhan, Junda He, Indraneil Paul, Simon Brunner, Chen Gong, Thong Hoang, Armel Randy Zebaze, Xiaoheng Hong, Wen-Ding Li, Jean Kaddour, Ming Xu, Zhihan Zhang, Prateek Yadav, Naman Jain, Alex Gu, Zhoujun Cheng, Jiawei Liu, Qian Liu, Zijian Wang, David Lo, Binyuan Hui, Niklas Muennighoff, Daniel Fried, Xiaoning Du, Harm de Vries, Leandro Von Werra
cs.AI
Zusammenfassung
Die automatisierte Softwareentwicklung wurde durch die jüngsten Fortschritte bei Large Language Models (LLMs) für die Programmierung erheblich verbessert. Während aktuelle Benchmarks gezeigt haben, dass LLMs verschiedene Softwareentwicklungsaufgaben wie menschliche Entwickler ausführen können, sind die meisten ihrer Bewertungen auf kurze und in sich geschlossene algorithmische Aufgaben beschränkt. Das Lösen anspruchsvoller und praktischer Programmieraufgaben erfordert die Fähigkeit, verschiedene Funktionsaufrufe als Werkzeuge zu nutzen, um Funktionalitäten wie Datenanalyse und Webentwicklung effizient zu implementieren. Darüber hinaus erfordert die Verwendung mehrerer Werkzeuge zur Lösung einer Aufgabe zusammengesetztes Denken durch das genaue Verständnis komplexer Anweisungen. Das Erfüllen dieser beiden Merkmale kann eine große Herausforderung für LLMs darstellen. Um zu bewerten, wie gut LLMs anspruchsvolle und praktische Programmieraufgaben lösen können, stellen wir Bench vor, einen Benchmark, der LLMs herausfordert, mehrere Funktionsaufrufe als Werkzeuge aus 139 Bibliotheken und 7 Domänen für 1.140 feingranulare Programmieraufgaben zu nutzen. Um LLMs rigoros zu bewerten, umfasst jede Programmieraufgabe 5,6 Testfälle mit einer durchschnittlichen Branchenabdeckung von 99%. Darüber hinaus schlagen wir eine natürlichsprachliche Variante von Bench vor, Benchi, die die ursprünglichen Docstrings automatisch in kurze Anweisungen mit nur den wesentlichen Informationen umwandelt. Unsere umfangreiche Evaluation von 60 LLMs zeigt, dass LLMs noch nicht in der Lage sind, komplexe Anweisungen zur Verwendung von Funktionsaufrufen präzise zu befolgen, mit Punktzahlen von bis zu 60%, die deutlich niedriger sind als die menschliche Leistung von 97%. Die Ergebnisse unterstreichen die Notwendigkeit weiterer Fortschritte in diesem Bereich.
English
Automated software engineering has been greatly empowered by the recent
advances in Large Language Models (LLMs) for programming. While current
benchmarks have shown that LLMs can perform various software engineering tasks
like human developers, the majority of their evaluations are limited to short
and self-contained algorithmic tasks. Solving challenging and practical
programming tasks requires the capability of utilizing diverse function calls
as tools to efficiently implement functionalities like data analysis and web
development. In addition, using multiple tools to solve a task needs
compositional reasoning by accurately understanding complex instructions.
Fulfilling both of these characteristics can pose a great challenge for LLMs.
To assess how well LLMs can solve challenging and practical programming tasks,
we introduce Bench, a benchmark that challenges LLMs to invoke multiple
function calls as tools from 139 libraries and 7 domains for 1,140 fine-grained
programming tasks. To evaluate LLMs rigorously, each programming task
encompasses 5.6 test cases with an average branch coverage of 99%. In addition,
we propose a natural-language-oriented variant of Bench, Benchi, that
automatically transforms the original docstrings into short instructions only
with essential information. Our extensive evaluation of 60 LLMs shows that LLMs
are not yet capable of following complex instructions to use function calls
precisely, with scores up to 60%, significantly lower than the human
performance of 97%. The results underscore the need for further advancements in
this area.Summary
AI-Generated Summary