Project Icon

DS-1000

数据科学代码生成基准测试集

DS-1000是一个数据科学代码生成基准测试集,包含1000个涵盖Matplotlib、Numpy、Pandas等主流库的数据科学问题。项目提供简化数据格式,支持通过Hugging Face或本地文件加载。DS-1000采用严格的测试方法评估代码正确性,为数据科学代码生成模型提供全面评估标准。

DS-1000 数据科学代码生成


论文DS-1000:一个自然可靠的数据科学代码生成基准的官方数据和代码发布。您可以参考我们的项目页面获取更多示例和基准。

新闻 🔥 (2024年4月): DS-1000现已简化并托管在huggingface上。您也可以参考我们论文中描述的原始格式

简化格式的DS-1000

这是DS-1000数据集的重新格式化,旨在提高其可用性,但不改变内容。 数据集托管在huggingface上,以及data/ds1000.jsonl.gz文件中。

使用方法

有两种加载数据集的选择:

# 选项1:从huggingface加载
from datasets import load_dataset
ds1000 = list(load_dataset("xlangai/DS-1000")["test"])

# 选项2:从原始jsonl.gz文件加载
import gzip
ds1000 = [json.loads(l) for l in gzip.open("data/ds1000.jsonl.gz", "rt").readlines()]

提供的test_ds1000.py脚本对data/codex002-answers.jsonl中的DS-1000进行评估

conda env create -f environment.yml
conda activate ds1000-3.10
# 测试代码还需要:pip install datasets tqdm
python test_ds1000.py

预期输出:

           count   mean
lib                    
Matplotlib   155  0.548
Numpy        220  0.432
Pandas       291  0.265
Pytorch       68  0.397
Scipy        106  0.349
Sklearn      115  0.435
Tensorflow    45  0.378

DS-1000 整体
mean      0.388

您也可以在results文件夹中查看新模型的结果。

测试脚本执行生成的代码,因此强烈建议您使用自己的沙盒环境,但参考代码和提供的解决方案看起来是安全可执行的。 您的沙盒环境需要允许一些文件操作(例如在matplotlib中保存图表)和操作系统操作(例如tensorflow、sklearn)。

格式

prompt字段包含上下文中的问题,以及一个简单的指令,如result = ... # 将解决方案放在这个变量中。这是为了保持一致性而设置的标准提示。

code_context字段定义了test_execution(solution: str)test_string(solution: str),它们以生成的代码作为参数并评估其正确性。 test_execution的工作原理是用generate_test_case(test_case_id)生成的输入替换提示中包含的示例输入,然后检查输出(由参考解决方案生成,该解决方案也存在于code_context中)。如果解决方案通过了test_executiontest_string(如果存在),则视为通过。code_context中的执行上下文(exec_context)与prompt提供的相同。

与原版的变化

  • 测试过程经过清理,全部合并到code_context中。
    • code_context定义了test_execution(solution: str)test_string(solution: str),它们以代码作为参数并评估其正确性。
    • 移除:缓存的pickle、读写pickle、读取多个文件、单独的测试脚本。
    • 数据大小从162MB减少到3.4MB。
  • Python升级到3.10版本,库升级到最新版本(environment.yml)。
    • 已确认性能对库版本和Python版本(3.7 - 3.11)不太敏感。
  • 移除了过时的parser模块,使用tokenize简化字符串测试。
  • 移除了插入(填充)模式,因为后缀仅用于指定输出格式。完成模式中简单的输出格式指令对当前模型来说很容易理解。
  • 现在是1000个问题的简单列表,库信息在metadata中。

编辑数据集

要将ds1000转换为可编辑的文件,请使用提供的edit_ds1000.py脚本来拆分问题列表,使用以下命令:

# 根据您的需求指定--edit_dir
python edit_ds1000.py --to_edit --edit_dir data/ds1000_edit

拆分后的结构如下:

data/ds1000_edit
├── 0 # 问题ID
    ├── prompt.txt
    ├── reference_code.txt
    ├── metadata.json
    └── code_context.py
├── 1
├── ...

编辑完成后,使用以下命令将数据集重建为data/ds1000.jsonl

python edit_ds1000.py --to_jsonl --edit_dir data/ds1000_edit

已知问题

  • 少量执行是有状态的(tensorflow和matplotlib)。因此,每个问题应该在独立的进程中执行。这也适用于顺序测试。

  • 与大多数人工标注的数据一样,预计会有少量错误。此外,虽然我们尽可能消除了我们能看到的歧义,但我们无法预料到所有可能正确/错误的提示解释。更多细节请参阅论文。

  • 由于导入方式的原因,与原始集有轻微的不一致。例如,预期import a; a.b.c()会失败,但如果在进程的其他地方使用了import a.b,则不会失败。这只影响少数除导入外都正确的解决方案。

重新格式化贡献者

贡献者

引用

如果您觉得我们的工作有帮助,请引用:

@article{Lai2022DS1000,
  title={DS-1000: A Natural and Reliable Benchmark for Data Science Code Generation},
  author={Yuhang Lai and Chengxi Li and Yiming Wang and Tianyi Zhang and Ruiqi Zhong and Luke Zettlemoyer and Scott Wen-tau Yih and Daniel Fried and Sida Wang and Tao Yu},
  journal={ArXiv},
  year={2022},
  volume={abs/2211.11501}
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号