数据集:

gabeorlanski/bc-humaneval

英文

BabelCode HumanEval 数据集卡片

如何使用该数据集

您可以使用原始的 BabelCode Repo ,或者您可以使用 bc_eval Metric

数据集摘要

BabelCode-HumaneEval(BC-HumanEval)数据集将 HumanEval dataset released by OpenAI 转换为16种编程语言。

支持的任务和排行榜

语言

BC-HumanEval 支持以下语言:

  • C++
  • C#
  • Dart
  • Go
  • Haskell
  • Java
  • Javascript
  • Julia
  • Kotlin
  • Lua
  • PHP
  • Python
  • R
  • Rust
  • Scala
  • TypeScript

数据集结构

>>> from datasets import load_dataset
>>> load_dataset("gabeorlanski/bc-humaneval")
DatasetDict({
    test: Dataset({
        features: ['qid', 'title', 'language', 'text', 'signature_with_docstring', 'signature', 'arguments', 'solution', 'question_info'],
        num_rows: 2576
    })
})

数据字段

  • qid: 用于运行测试的问题ID。
  • title: 问题的标题。
  • language: 示例的编程语言。
  • text: 问题的描述。
  • signature: 问题的签名。
  • signature_with_docstring: 带有适当格式的文档字符串的签名。
  • arguments: 问题的参数。
  • solution: Python中的解决方案。
  • question_info: 用于执行预测的信息字典。它具有以下键:
    • test_code: 用于该语言的原始测试脚本。如果要使用此脚本,请将 PLACEHOLDER_FN_NAME(如果需要,还有 PLACEHOLDER_CLS_NAME)替换为相应的入口点。然后,将 PLACEHOLDER_CODE_BODY 替换为后处理的预测结果。
    • test_list: 问题测试列表的原始Json行。使用 json.loads 来加载它们。
    • test_case_ids: 问题的测试用例ID列表。这些用于确定预测是否通过。
    • entry_fn_name: 用作入口点的函数名称。
    • entry_cls_name: 用作入口点的类名称。
    • commands: 用于执行预测的命令。包括一个 __FILENAME__ 的占位符,用于替换为文件名。
    • timeouts: 每个命令的默认超时时间。
    • extension: 预测文件的扩展名。

注意:如果要为预测使用不同的函数名称(对于需要类名称的语言,则是类名称),必须相应地更新 entry_fn_name 和 entry_cls_name。例如,如果原始问题具有 entry_fn_name 为 add,但想要将其更改为 f,则必须更新 ds["question_info"]["entry_fn_name"] 为 f:

>>> from datasets import load_dataset
>>> ds = load_dataset("gabeorlanski/bc-humaneval")['test']
>>> # The original entry_fn_name
>>> ds[0]['question_info']['entry_fn_name']
hasCloseElements
>>> # You MUST update the corresponding entry_fn_name
>>> ds[0]['question_info']['entry_fn_name'] = 'f'
>>> ds[0]['question_info']['entry_fn_name']
f

数据集创建

有关数据集如何转换的详细信息,请参阅 BabelCode Paper 第2节。

有关如何创建原始 HumanEval 数据集的信息,请参阅 Evaluating Large Language Models Trained on Code paper

数据集策划者

Google Research

许可信息

CC-BY-4.0

引用信息

@article{orlanski2023measuring,
  title={Measuring The Impact Of Programming Language Distribution},
  author={Orlanski, Gabriel and Xiao, Kefan and Garcia, Xavier and Hui, Jeffrey and Howland, Joshua and Malmaud, Jonathan and Austin, Jacob and Singh, Rishah and Catasta, Michele},
  journal={arXiv preprint arXiv:2302.01973},
  year={2023}
}
@article{chen2021codex,
  title={Evaluating Large Language Models Trained on Code},
  author={Mark Chen and Jerry Tworek and Heewoo Jun and Qiming Yuan and Henrique Ponde de Oliveira Pinto and Jared Kaplan and Harri Edwards and Yuri Burda and Nicholas Joseph and Greg Brockman and Alex Ray and Raul Puri and Gretchen Krueger and Michael Petrov and Heidy Khlaaf and Girish Sastry and Pamela Mishkin and Brooke Chan and Scott Gray and Nick Ryder and Mikhail Pavlov and Alethea Power and Lukasz Kaiser and Mohammad Bavarian and Clemens Winter and Philippe Tillet and Felipe Petroski Such and Dave Cummings and Matthias Plappert and Fotios Chantzis and Elizabeth Barnes and Ariel Herbert-Voss and William Hebgen Guss and Alex Nichol and Alex Paino and Nikolas Tezak and Jie Tang and Igor Babuschkin and Suchir Balaji and Shantanu Jain and William Saunders and Christopher Hesse and Andrew N. Carr and Jan Leike and Josh Achiam and Vedant Misra and Evan Morikawa and Alec Radford and Matthew Knight and Miles Brundage and Mira Murati and Katie Mayer and Peter Welinder and Bob McGrew and Dario Amodei and Sam McCandlish and Ilya Sutskever and Wojciech Zaremba},
  year={2021},
  eprint={2107.03374},
  archivePrefix={arXiv},
  primaryClass={cs.LG}
}