The dataset has 2 variants:
BigCodeBench-Complete: Code Completion based on the structured docstrings.BigCodeBench-Instruct: Code Generation based on the NL-oriented instructions.The overall statistics of the dataset are as follows:
| Complete | Instruct | |
|---|---|---|
| # Task | 1140 | 1140 |
| # Avg. Test Cases | 5.6 | 5.6 |
| # Avg. Coverage | 99% | 99% |
| # Avg. Prompt Char. | 1112.5 | 663.2 |
| # Avg. Prompt Line | 33.5 | 11.7 |
| # Avg. Prompt Char. (Code) | 1112.5 | 124.0 |
| # Avg. Solution Char. | 426.0 | 426.0 |
| # Avg. Solution Line | 10.0 | 10.0 |
| # Avg. Solution Cyclomatic Complexity | 3.1 | 3.1 |
The function-calling (tool use) statistics of the dataset are as follows:
| Complete/Instruct | |
|---|---|
| # Domain | 7 |
| # Standard Library | 77 |
| # 3rd Party Library | 62 |
| # Standard Function Call | 281 |
| # 3rd Party Function Call | 116 |
| # Avg. Task Library | 2.8 |
| # Avg. Task Fun Call | 4.7 |
| # Library Combo | 577 |
| # Function Call Combo | 1045 |
| # Domain Combo | 56 |
| Release | Description |
|---|---|
| v0.1.0 | Initial release of BigCodeBench |
BigCodeBench is an easy-to-use benchmark which evaluates LLMs with practical and challenging programming tasks. The dataset was created as part of the BigCode Project, an open scientific collaboration working on the responsible development of Large Language Models for Code (Code LLMs). BigCodeBench serves as a fundamental benchmark for LLMs instead of LLM Agents, i.e., code-generating AI systems that enable the synthesis of programs from natural language descriptions as well as others from code snippets.
The dataset only contains natural language in English and programming language in Python (3.0+).
from datasets import load_dataset
# full dataset
ds = load_dataset("bigcode/bigcodebench", split="v0.1.4")
# dataset streaming (will only download the data as needed)
ds = load_dataset("bigcode/bigcodebench", streaming=True, split="v0.1.4")
for sample in iter(ds):
print(sample)
task_id (string): The unique identifier for the task.complete_prompt (string): The PEP257-structured docstring prompt.instruct_prompt (string): The natural-language-oriented instruction prompt.canonical_solution (string): The canonical solution w/o comments.code_prompt (string): The code-only prompt.test (string): The code snippet for testing, wrapped in a unittest.TestCase class.entry_point (string): The entry point for the code snippet, which is task_func.doc_struct (string[dictionary]): The structured docstring.
description (string): The main task description in natural language.note (string): The additional notes for the task in natural language.reqs (string, optional): The modules can be used in the task solution.params (string, optional): The parameters used in the task solution.returns (string, optional): The values to be returned in the task solution.raises (string, optional): The exceptions should be raised in the task solution.examples (string, optional): The interactive Python examples as hints for the task solution.libs (string): The libraries can be used in the task solution.The dataset has no splits, and all data is loaded as train split by default.
For more information on the dataset construction, please refer to the technical report. GitHub Action pipeline code is available here.
We believe that there are three main expectations of a good execution-based programming benchmark:
BigCodeBench is the first benchmark that meets all three expectations. It is an easy-to-use benchmark that evaluates LLMs with challenging and practical programming tasks, accompanied by an end-to-end evaluation framework bigcodebench. We aim to assess how well LLMs can solve practical and challenging programming tasks in an open-ended setting.
For the dataset construction, please refer to Section 2 in technical report.
The data was originally sourced from GPT-4-0613, with the seed examples from ODEX (collected from StackOverflow). The data was then annotated through the collaboration between human experts and LLMs.
We agree that there could be a few programming tasks with slightly biased instructions or over-specific test cases. Considering that software development is iterative, incremental, and collaborative, we believe that the bias can be mitigated with the long-term development of BigCodeBench and additional help from the open-source community. We are open to feedback and suggestions for improving the dataset.
See Appendix D in technical report for more information. We highlight a few limitations as follows:
BigCodeBench is licensed under the Apache License, Version 2.0.
@article{zhuo2024bigcodebench,
title={BigCodeBench: Benchmarking Code Generation with Diverse Function Calls and Complex Instructions},
author={Zhuo, Terry Yue and Vu, Minh Chien and Chim, Jenny and Hu, Han and Yu, Wenhao and Widyasari, Ratnadira and Yusuf, Imam Nur Bani and Zhan, Haolan and He, Junda and Paul, Indraneil and others},
journal={arXiv preprint arXiv:2406.15877},
year={2024}
}
33 commits
6 commits
The dataset has 2 variants:
BigCodeBench-Complete: Code Completion based on the structured docstrings.BigCodeBench-Instruct: Code Generation based on the NL-oriented instructions.The overall statistics of the dataset are as follows:
| Complete | Instruct | |
|---|---|---|
| # Task | 1140 | 1140 |
| # Avg. Test Cases | 5.6 | 5.6 |
| # Avg. Coverage | 99% | 99% |
| # Avg. Prompt Char. | 1112.5 | 663.2 |
| # Avg. Prompt Line | 33.5 | 11.7 |
| # Avg. Prompt Char. (Code) | 1112.5 | 124.0 |
| # Avg. Solution Char. | 426.0 | 426.0 |
| # Avg. Solution Line | 10.0 | 10.0 |
| # Avg. Solution Cyclomatic Complexity | 3.1 | 3.1 |
The function-calling (tool use) statistics of the dataset are as follows:
| Complete/Instruct | |
|---|---|
| # Domain | 7 |
| # Standard Library | 77 |
| # 3rd Party Library | 62 |
| # Standard Function Call | 281 |
| # 3rd Party Function Call | 116 |
| # Avg. Task Library | 2.8 |
| # Avg. Task Fun Call | 4.7 |
| # Library Combo | 577 |
| # Function Call Combo | 1045 |
| # Domain Combo | 56 |
| Release | Description |
|---|---|
| v0.1.0 | Initial release of BigCodeBench |
BigCodeBench is an easy-to-use benchmark which evaluates LLMs with practical and challenging programming tasks. The dataset was created as part of the BigCode Project, an open scientific collaboration working on the responsible development of Large Language Models for Code (Code LLMs). BigCodeBench serves as a fundamental benchmark for LLMs instead of LLM Agents, i.e., code-generating AI systems that enable the synthesis of programs from natural language descriptions as well as others from code snippets.
The dataset only contains natural language in English and programming language in Python (3.0+).
from datasets import load_dataset
# full dataset
ds = load_dataset("bigcode/bigcodebench", split="v0.1.4")
# dataset streaming (will only download the data as needed)
ds = load_dataset("bigcode/bigcodebench", streaming=True, split="v0.1.4")
for sample in iter(ds):
print(sample)
task_id (string): The unique identifier for the task.complete_prompt (string): The PEP257-structured docstring prompt.instruct_prompt (string): The natural-language-oriented instruction prompt.canonical_solution (string): The canonical solution w/o comments.code_prompt (string): The code-only prompt.test (string): The code snippet for testing, wrapped in a unittest.TestCase class.entry_point (string): The entry point for the code snippet, which is task_func.doc_struct (string[dictionary]): The structured docstring.
description (string): The main task description in natural language.note (string): The additional notes for the task in natural language.reqs (string, optional): The modules can be used in the task solution.params (string, optional): The parameters used in the task solution.returns (string, optional): The values to be returned in the task solution.raises (string, optional): The exceptions should be raised in the task solution.examples (string, optional): The interactive Python examples as hints for the task solution.libs (string): The libraries can be used in the task solution.The dataset has no splits, and all data is loaded as train split by default.
For more information on the dataset construction, please refer to the technical report. GitHub Action pipeline code is available here.
We believe that there are three main expectations of a good execution-based programming benchmark:
BigCodeBench is the first benchmark that meets all three expectations. It is an easy-to-use benchmark that evaluates LLMs with challenging and practical programming tasks, accompanied by an end-to-end evaluation framework bigcodebench. We aim to assess how well LLMs can solve practical and challenging programming tasks in an open-ended setting.
For the dataset construction, please refer to Section 2 in technical report.
The data was originally sourced from GPT-4-0613, with the seed examples from ODEX (collected from StackOverflow). The data was then annotated through the collaboration between human experts and LLMs.
We agree that there could be a few programming tasks with slightly biased instructions or over-specific test cases. Considering that software development is iterative, incremental, and collaborative, we believe that the bias can be mitigated with the long-term development of BigCodeBench and additional help from the open-source community. We are open to feedback and suggestions for improving the dataset.
See Appendix D in technical report for more information. We highlight a few limitations as follows:
BigCodeBench is licensed under the Apache License, Version 2.0.
@article{zhuo2024bigcodebench,
title={BigCodeBench: Benchmarking Code Generation with Diverse Function Calls and Complex Instructions},
author={Zhuo, Terry Yue and Vu, Minh Chien and Chim, Jenny and Hu, Han and Yu, Wenhao and Widyasari, Ratnadira and Yusuf, Imam Nur Bani and Zhan, Haolan and He, Junda and Paul, Indraneil and others},
journal={arXiv preprint arXiv:2406.15877},
year={2024}
}
33 commits
6 commits