REPOCOD|代码生成数据集|基准测试数据集
收藏REPOCOD 数据集概述
数据集简介
REPOCOD 是一个代码生成基准,包含从 11 个流行的真实世界项目中收集的 980 个问题。其中超过 58% 的问题需要文件级或仓库级的上下文信息。REPOCOD 的平均规范解决方案长度为 331.6 个token,平均圈复杂度为 9.00,均高于现有基准。每个任务平均包含 313.5 个开发者编写的测试用例,以更好地评估正确性。在十个大型语言模型(LLMs)的评估中,没有任何模型在 REPOCOD 上的 pass@1 超过 30,这表明构建更强大的 LLMs 以帮助开发者进行真实世界的软件开发是必要的。
更新记录
- 2024年10月30日:预印本在 ArXiv 上可用。
- 2024年10月30日:数据集在 Huggingface 上可用,链接为 link。
- 2024年11月1日:排行榜在此处可用,链接为 leaderboard。
使用方法
安装依赖
可选的 conda 环境创建:
conda create -n repocod python=3.10 -y conda activate repocod
安装必要的包:
pip install --upgrade pip pip install -r requirements.txt
推理
请参考 ./inference/Inference.md 使用 REPOCOD 进行推理。
评估
请参考 ./evaluate/Evaluate.md 在 REPOCOD 上进行评估。
数据收集
REPOCOD 采用三阶段数据收集管道,从流行仓库中高效收集目标函数:仓库选择、目标函数选择和相关测试用例收集。
LLMs 性能
在 REPOCOD 上,10 个 LLMs 在三种检索设置下的表现如下。在所有检索方法中,商业 LLMs 表现更好。具体来说,GPT-4o 的结果最好,pass@1 达到 27.35。然而,与 HumanEval(约 90 pass@1)和 MBPP 相比,SOTA LLMs 在编写需要仓库级信息的真实世界程序方面仍有很大差距。
引用
@misc{liang2024languagemodelsreplaceprogrammers, title={Can Language Models Replace Programmers? REPOCOD Says Not Yet}, author={Shanchao Liang and Yiran Hu and Nan Jiang and Lin Tan}, year={2024}, eprint={2410.21647}, archivePrefix={arXiv}, primaryClass={cs.SE}, url={https://arxiv.org/abs/2410.21647}, }




