REPOCOD
收藏资源简介:
REPOCOD是一个代码生成基准,包含980个从11个流行真实世界项目中收集的问题,其中超过58%的问题需要文件级或仓库级上下文信息。REPOCOD具有最长的平均规范解决方案长度(331.6个token)和最高的平均圈复杂度(9.00),相比现有基准,每个任务平均包含313.5个开发者编写的测试用例,以更好地评估正确性。
REPOCOD is a code generation benchmark comprising 980 problems collected from 11 popular real-world projects, over 58% of which require file-level or repository-level contextual information. Compared with existing benchmarks, REPOCOD features the longest average canonical solution length (331.6 tokens), the highest average cyclomatic complexity (9.00), and each task on average includes 313.5 test cases written by developers, enabling more accurate correctness evaluation.
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}, }




