five

REPOCOD

收藏
github2024-11-20 更新2024-11-28 收录
下载链接:
https://github.com/lt-asset/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.
创建时间:
2024-10-31
原始信息汇总

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}, }

搜集汇总
数据集介绍
main_image_url
构建方式
REPOCOD数据集的构建过程经过精心设计,采用了三阶段的数据收集管道,以确保从流行代码库中高效地提取目标函数。首先,通过仓库选择阶段,筛选出11个具有代表性的真实世界项目。随后,在目标函数选择阶段,从这些项目中提取出980个需要文件级或仓库级上下文信息的编程问题。最后,在相关测试用例收集阶段,为每个任务平均收集了313.5个开发者编写的测试用例,以确保评估的准确性。
特点
REPOCOD数据集以其独特的特点在代码生成基准中脱颖而出。首先,该数据集包含了超过58%需要文件级或仓库级上下文信息的编程问题,这显著提高了问题的复杂性和实际应用性。其次,REPOCOD的平均规范解决方案长度为331.6个token,平均圈复杂度为9.00,均高于现有基准,这表明其问题解决难度更大。此外,每个任务平均包含313.5个开发者编写的测试用例,确保了评估的全面性和准确性。
使用方法
使用REPOCOD数据集进行推理和评估,首先需要安装必要的依赖包。可以通过创建conda环境并激活,然后使用pip命令安装requirements.txt文件中的依赖项。推理过程的具体步骤可参考./inference/Inference.md文件,而评估过程则需遵循./evaluate/Evaluate.md文件中的指导。通过这些步骤,用户可以有效地利用REPOCOD数据集进行模型性能的测试和改进。
背景与挑战
背景概述
REPOCOD数据集由Shanchao Liang、Yiran Hu、Nan Jiang和Lin Tan等研究人员于2024年创建,旨在评估语言模型在代码生成任务中的表现。该数据集包含980个从11个流行项目中收集的问题,其中超过58%的问题需要文件级或仓库级上下文信息。REPOCOD不仅拥有最长的平均规范解决方案长度(331.6个token)和高平均圈复杂度(9.00),还包含每个任务平均313.5个开发者编写的测试用例,以确保评估的准确性。该数据集的发布对推动语言模型在实际软件开发中的应用具有重要意义。
当前挑战
REPOCOD数据集在构建过程中面临的主要挑战包括从真实项目中高效收集目标函数及其相关测试用例,以及确保数据集的多样性和复杂性。此外,尽管当前最先进的语言模型在REPOCOD上的表现有所提升,但仍未能达到实际编程任务的要求,表明现有模型在处理需要仓库级信息的复杂编程任务时仍存在显著不足。这揭示了构建更强大的语言模型以辅助开发者进行实际软件开发的迫切需求。
常用场景
经典使用场景
在软件工程领域,REPOCOD数据集被广泛用于评估和提升语言模型在代码生成任务中的表现。该数据集包含了从11个流行项目中收集的980个问题,其中超过58%的问题需要文件级或仓库级的上下文信息。REPOCOD以其最长的平均规范解决方案长度(331.6个token)和高平均圈复杂度(9.00)著称,为模型提供了更为复杂和真实的编程环境。此外,每个任务平均包含313.5个开发者编写的测试用例,确保了评估的准确性和全面性。
衍生相关工作
REPOCOD数据集的发布激发了一系列相关研究工作,特别是在语言模型和代码生成领域。许多研究者基于REPOCOD进行了深入分析,提出了多种改进模型性能的方法,如上下文增强技术和多任务学习策略。此外,REPOCOD还促进了跨领域的合作,如与软件工程和自然语言处理领域的结合,推动了更高效和智能的代码生成工具的开发。这些衍生工作不仅丰富了学术研究的内容,也为实际应用提供了更多可能性。
数据集最近研究
最新研究方向
在软件工程领域,REPOCOD数据集的引入标志着代码生成技术的新里程碑。该数据集聚焦于真实世界项目中的复杂编程问题,强调了文件级和仓库级上下文信息的重要性。当前的研究方向主要集中在提升大型语言模型(LLMs)在处理此类复杂任务中的表现,特别是在代码生成的准确性和效率方面。REPOCOD的发布不仅揭示了现有LLMs在实际编程任务中的局限性,还激发了学术界和工业界对构建更强LLMs的迫切需求,以更好地辅助开发者进行实际软件开发。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作