{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/bigcodebench-benchmarking-code-generation","title":"BigCodeBench: Benchmarking Code Generation with Diverse Function Calls and Complex Instructions","arxiv_id":"2406.15877","date":"2024-06-22","proceeding":null,"authors":["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","Binyuan Hui","Niklas Muennighoff","David Lo","Daniel Fried","Xiaoning Du","Harm de Vries","Leandro von Werra"],"abstract":"Task automation has been greatly empowered by the recent advances in Large Language Models (LLMs) via Python code, where the tasks ranging from software engineering development to general-purpose reasoning. While current benchmarks have shown that LLMs can solve tasks using programs like human developers, the majority of their evaluations are limited to short and self-contained algorithmic tasks or standalone function calls. Solving challenging and practical 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 tasks via programs, we introduce BigCodeBench, a benchmark that challenges LLMs to invoke multiple function calls as tools from 139 libraries and 7 domains for 1,140 fine-grained tasks. To evaluate LLMs rigorously, each task encompasses 5.6 test cases with an average branch coverage of 99%. In addition, we propose a natural-language-oriented variant of BigCodeBench, BigCodeBench-Instruct, 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.","url_abs":"https://arxiv.org/abs/2406.15877v4","url_pdf":"https://arxiv.org/pdf/2406.15877v4.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"bigcodebench-benchmarking-code-generation","repo_url":"https://github.com/bigcode-project/bigcodebench","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"bigcodebench-benchmarking-code-generation","repo_url":"https://github.com/bigcode-project/bigcodebench-annotation","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"bigcodebench-benchmarking-code-generation","repo_url":"https://github.com/mlfoundations/Evalchemy","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"bigcodebench-benchmarking-code-generation","repo_url":"https://github.com/stovecat/convcodeworld","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}}],"tasks":[{"task_slug":"benchmarking","task_name":"Benchmarking"},{"task_slug":"code-generation","task_name":"Code Generation"}],"methods":[],"datasets_introduced":[{"slug":"bigcodebench","name":"BigCodeBench","full_name":""}],"methods_introduced":[],"results":[{"leaderboard":"/sota/code-generation-on-bigcodebench-complete","task":"Code Generation","dataset":"BigCodeBench-Complete","model":"GPT-4o-2024-05-13","rank_in_archive_order":1,"of":2,"metrics":{"Pass@1":"61.1"},"uses_additional_data":false},{"leaderboard":"/sota/code-generation-on-bigcodebench-complete","task":"Code Generation","dataset":"BigCodeBench-Complete","model":"DeepSeek-Coder-V2-Instruct","rank_in_archive_order":2,"of":2,"metrics":{"Pass@1":"59.7"},"uses_additional_data":false},{"leaderboard":"/sota/code-generation-on-bigcodebench-instruct","task":"Code Generation","dataset":"BigCodeBench-Instruct","model":"GPT-4o-2024-05-13","rank_in_archive_order":1,"of":2,"metrics":{"Pass@1":"51.1"},"uses_additional_data":false},{"leaderboard":"/sota/code-generation-on-bigcodebench-instruct","task":"Code Generation","dataset":"BigCodeBench-Instruct","model":"DeepSeek-Coder-V2-Instruct","rank_in_archive_order":2,"of":2,"metrics":{"Pass@1":"48.2"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2406.15877","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2406.15877"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/bigcode-project/bigcodebench","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/stovecat/convcodeworld","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/mlfoundations/Evalchemy","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/bigcode-project/bigcodebench-annotation","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":4,"unverified":2},"by_repo_kind":{"official":{"samples":6,"ran":4,"repositories":2}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"ff8aaee37e35336e","entry":"extract_apis","repo":"bigcode-project/bigcodebench-annotation","repo_kind":"official","path":"script/parse.py","file_url":"https://github.com/bigcode-project/bigcodebench-annotation/blob/HEAD/script/parse.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ff8aaee37e35336e"}},{"code_sha256_prefix":"8f5519c167210a90","entry":"filter_unused_imports","repo":"bigcode-project/bigcodebench-annotation","repo_kind":"official","path":"script/parse.py","file_url":"https://github.com/bigcode-project/bigcodebench-annotation/blob/HEAD/script/parse.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8f5519c167210a90"}},{"code_sha256_prefix":"5f0eb74fd5059693","entry":"get_function_dependency","repo":"bigcode-project/bigcodebench","repo_kind":"official","path":"bigcodebench/sanitize.py","file_url":"https://github.com/bigcode-project/bigcodebench/blob/HEAD/bigcodebench/sanitize.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5f0eb74fd5059693"}},{"code_sha256_prefix":"881d446392c3564a","entry":"remove_trailing_comments","repo":"bigcode-project/bigcodebench-annotation","repo_kind":"official","path":"script/parse.py","file_url":"https://github.com/bigcode-project/bigcodebench-annotation/blob/HEAD/script/parse.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"881d446392c3564a"}},{"code_sha256_prefix":"c1ac61d6490eade0","entry":"get_pypi_stats","repo":"bigcode-project/bigcodebench-annotation","repo_kind":"official","path":"analysis/pypi_download_stats.py","file_url":"https://github.com/bigcode-project/bigcodebench-annotation/blob/HEAD/analysis/pypi_download_stats.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c1ac61d6490eade0"}},{"code_sha256_prefix":"d7d30a99e0029e36","entry":"syntax_check","repo":"bigcode-project/bigcodebench","repo_kind":"official","path":"bigcodebench/syncheck.py","file_url":"https://github.com/bigcode-project/bigcodebench/blob/HEAD/bigcodebench/syncheck.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d7d30a99e0029e36"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}