DS-1000

DS-1000是由香港大学、北京大学等高校老师联合发布的一个代码生成领域的基准数据集。包含了1000个问题和答案,这些问题来自StackOverflow上451个问题。涵盖了7个Python领域库的相关问题和答案(如NumPy、Pandas等)。这些问题和答案花费了1200多个expert小时进行整理。具体来说,这些问题和答案:

  • 基于StackOverflow平台选择和重写
  • 对问题做了干扰防止出现潜在的记忆问题
  • 对于每一个问题都实现了一个个性化的评估指标

这些工作都是十分耗费人力的工作。五位作者花费了大约1200个小时完成的。

DS-1000数据的样例,对于每一个问题,都包含了"[insert]"标记,任务就是把代码插入的insert位置。数据集包含了评估答案的评估指标。

对于来自StackOverflow的问题,作者为它们配备了prompts、测试用例和评估函数,并将它们称为Origin。为了防止模型简单地回忆预训练期间看到的解决方案,作者以两种方式扰动问题:表面扰动和语义扰动。为了使DS-1000更具挑战性,作者还引入了困难重写。其中152个问题做了surface perturbations,235个问题做了semantic perturbations,162个问题做了difficult rewrites。

涉及的7个Python库如下:

  • NumPy
  • SciPy
  • Pandas
  • TensorFlow
  • PyTorch
  • Scikit-learn
  • Matplotlib


具体的数据集目录如下:

ds1000_data
├── Numpy
    ├── Completion
    └── Insertion
        ├──q0
            ├── .cfg
            ├── ans
            ├── input
            ├── prompt.txt
            ├── code_context.txt
            ├── reference_code.txt
            ├── test_code.py
            └── test_generate_pickle.py
├── Pandas
├── Pytorch
├── Scipy
├── Sklearn
├── Tensorflow
├── Matplotlib

以NumPy文件夹为例,里面包含Completion与Insertion两个prompts格式,这两个文件夹内容完全一样,只是prompts不同(一些代码情景和代码引用也有一点差异)。针对每一个文件及下的文件解释如下:

.cfg:问题的元数据信息

ans和input:是输入和解决对象的pickles文件

prompt.txt:是官方推荐的用来查询大模型答案的prompt

code_context.txt:是用于评估的可执行代码context

reference_code.txt:是the ground truth solution code

test_code.py:测试代码

test_generate_pickle.py:用于生成input里面pickles文件的脚本


数据集下载地址: https://github.com/HKUNLP/DS-1000/raw/main/ds1000_data.zip

论文地址: https://arxiv.org/abs/2211.11501 

GitHub地址: https://github.com/HKUNLP/DS-1000 

官方网站: https://ds1000-code-gen.github.io/ 

PapersWithCode地址: https://paperswithcode.com/paper/ds-1000-a-natural-and-reliable-benchmark-for 

发布者:香港大学

发布时间:2022-11-18

官方网址:https://ds1000-code-gen.github.io/

数据记录总数:1000

数据集大小:69.5MB

DS-1000
DS-1000所属的领域
自然语言处理

自然语言处理

Natural Language Process

35个资源

DS-1000相关的任务
代码补全

代码补全

Code Completion

35个资源