five

REPOCOD

收藏
Hugging Face2024-10-31 更新2024-12-12 收录
下载链接:
https://huggingface.co/datasets/lt-asset/REPOCOD
下载链接
链接失效反馈
官方服务:
资源简介:
REPOCOD是一个代码生成基准,包含980个从11个流行实际项目中收集的问题。这些问题中超过58%需要文件级或仓库级的上下文信息。REPOCOD的平均规范解决方案长度为331.6个token,平均圈复杂度为9.00,比现有基准更高。每个任务平均包含313.5个开发者编写的测试用例,用于更好的正确性评估。在十个大型语言模型的评估中,没有任何模型在REPOCOD上的pass@1超过30,这表明需要构建更强大的语言模型来帮助开发者进行实际的软件开发。

REPOCOD is a code generation benchmark encompassing 980 problems collected from 11 popular real-world software projects. Over 58% of these problems require file-level or repository-level contextual information. The average length of its canonical reference solutions is 331.6 tokens, with an average cyclomatic complexity of 9.00, which is higher than that of existing benchmarks. Each task contains an average of 313.5 test cases written by developers to facilitate more rigorous correctness evaluation. In evaluations of ten large language models, none achieved a pass@1 score exceeding 30 on REPOCOD, indicating that more powerful language models need to be developed to assist developers with practical software development.
创建时间:
2024-10-31
原始信息汇总

REPOCOD 数据集概述

数据集信息

  • 许可证: BSD-3-Clause-Clear
  • 特征:
    • repository: 字符串,当前样本的源仓库
    • repo_id: 字符串,当前样本在对应源仓库中的唯一索引
    • target_module_path: 字符串,包含当前样本的文件路径,相对于源仓库的根目录
    • prompt: 字符串,开发者提供的函数签名和文档字符串
    • relavent_test_path: 字符串,相关测试用例的路径
    • full_function: 字符串,当前样本的规范解决方案
    • function_name: 字符串,目标函数(当前样本)的名称
  • 拆分:
    • train: 训练集,包含980个样本,大小为5410189字节
  • 下载大小: 2045590字节
  • 数据集大小: 5410189字节
  • 配置:
    • default: 默认配置,数据文件路径为data/train-*

数据集描述

REPOCOD是一个代码生成基准,包含从11个流行的真实世界项目中收集的980个问题,其中超过58%的问题需要文件级或仓库级的上下文信息。REPOCOD的平均规范解决方案长度(331.6个token)和平均圈复杂度(9.00)均高于现有基准。每个任务在REPOCOD中平均包含313.5个开发者编写的测试用例,以更好地评估正确性。在十个大型语言模型(LLMs)的评估中,没有任何模型在REPOCOD上的pass@1超过30,这表明构建更强大的LLMs以帮助开发者在真实世界软件开发中的必要性。

使用示例

python from datasets import load_dataset

data = load_dataset(lt-asset/REPOCOD) print(data)

数据字段

  • repository: 当前样本的源仓库
  • repo_id: 当前样本在对应源仓库中的唯一索引
  • target_module_path: 包含当前样本的文件路径,相对于源仓库的根目录
  • prompt: 开发者提供的函数签名和文档字符串
  • relavent_test_path: 相关测试用例的路径
  • full_function: 当前样本的规范解决方案
  • function_name: 目标函数(当前样本)的名称

示例

json { "repository": "seaborn", "repo_id": "0", "target_module_path": "seaborn/_core/scales.py", "prompt": " def label(self, formatter: Formatter | None = None, *, like: str | Callable | None = None, base: int | None | Default = default, unit: str | None = None) -> Continuous: ....", "relevant_test_path": "/usr/src/app/target_test_cases/failed_tests_Continuous.label.txt", "full_function": " def label(self, formatter: Formatter | None = None, *, like: str | Callable | None = None, base: int | None | Default = default, unit: str | None = None) -> Continuous: ....", "function_name": "Continuous.label" }

引用

@misc{liang2024repocod, 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个问题,其中超过58%的问题需要文件级或仓库级的上下文信息。每个任务平均包含313.5个开发者编写的测试用例,以确保代码正确性评估的准确性。此外,REPOCOD的平均规范解决方案长度(331.6个标记)和平均圈复杂度(9.00)均高于现有基准测试,使其成为更具挑战性的代码生成评估工具。
特点
REPOCOD数据集的特点在于其高度复杂性和现实性。与传统的单行代码生成任务不同,REPOCOD的任务通常涉及多文件或整个仓库的上下文,更贴近实际开发场景。其平均规范解决方案长度和圈复杂度显著高于其他基准测试,表明其任务难度更高。此外,每个任务都配备了大量的开发者编写的测试用例,确保了代码正确性评估的严谨性。这些特点使得REPOCOD成为评估语言模型在真实软件开发中表现的有力工具。
使用方法
使用REPOCOD数据集时,可以通过Hugging Face的`datasets`库轻松加载数据。用户只需调用`load_dataset('lt-asset/REPOCOD')`即可获取数据集,其中包含980个样本,每个样本包含仓库信息、模块路径、提示、相关测试路径、完整函数和函数名称等字段。加载后,用户可以直接访问这些字段,进行代码生成模型的训练或评估。此外,数据集还提供了详细的代码示例,帮助用户下载仓库、准备仓库快照以及运行测试用例进行评估。
背景与挑战
背景概述
随着大语言模型(LLMs)在解决Python编程问题上的高准确率表现,研究者们开始探讨这些模型是否能够替代人类开发者在实际软件开发中的角色。然而,现有的代码生成基准测试往往局限于手工构建或简单的单行代码生成任务,无法真实反映现实世界中的软件开发复杂性。为此,Shanchao Liang等人于2024年提出了REPOCOD数据集,该数据集从11个流行的实际项目中收集了980个编程问题,其中超过58%的问题需要文件级或仓库级的上下文信息。REPOCOD不仅拥有最长的平均规范解决方案长度(331.6个标记)和最高的平均圈复杂度(9.00),还包含了每个任务平均313.5个开发者编写的测试用例,以更准确地评估代码的正确性。这一数据集的发布揭示了当前LLMs在实际软件开发中的局限性,推动了更强模型的研究与开发。
当前挑战
REPOCOD数据集在构建和应用过程中面临多重挑战。首先,现有的代码生成基准测试无法充分模拟现实世界中的软件开发任务,导致评估结果存在偏差。其次,数据集的构建需要从多个实际项目中提取复杂的编程问题,并确保每个问题都具备足够的上下文信息和测试用例,这对数据收集和标注提出了极高的要求。此外,REPOCOD的评估结果显示,当前最先进的LLMs在解决这些复杂任务时的表现仍然有限,最高通过率不足30%,这表明现有模型在处理多文件、多上下文依赖的代码生成任务时仍存在显著不足。这些挑战不仅揭示了LLMs在实际应用中的局限性,也为未来的研究提供了明确的方向。
常用场景
经典使用场景
REPOCOD数据集在代码生成领域具有重要的应用价值,尤其是在评估大型语言模型(LLMs)在真实软件开发任务中的表现时。该数据集通过从11个流行的开源项目中收集的980个代码生成问题,涵盖了文件级和仓库级的上下文信息,能够更准确地模拟现实中的编程任务。研究人员可以利用REPOCOD来测试和比较不同LLMs在复杂代码生成任务中的性能,从而推动模型在代码生成领域的进一步发展。
衍生相关工作
REPOCOD数据集的发布推动了多个相关研究工作的开展。例如,基于该数据集的研究揭示了当前LLMs在复杂代码生成任务中的局限性,促使研究人员开发更强大的模型。此外,REPOCOD还为代码生成领域的基准测试提供了新的标准,激发了更多关于如何改进代码生成模型和评估方法的研究。这些工作不仅丰富了代码生成领域的研究内容,也为未来的技术发展提供了重要的参考。
数据集最近研究
最新研究方向
在软件工程领域,大型语言模型(LLMs)的代码生成能力引发了广泛关注。然而,现有基准测试如HumanEval和MBPP未能充分反映真实世界的软件开发复杂性。为此,REPOCOD数据集应运而生,它从11个流行开源项目中收集了980个代码生成任务,其中超过58%的任务需要文件级或仓库级上下文信息。REPOCOD不仅拥有最长的平均规范解决方案长度(331.6个标记)和最高的平均圈复杂度(9.00),还引入了313.5个开发者编写的测试用例以提升代码正确性评估的准确性。通过对十个LLMs的评估,发现没有模型在REPOCOD上达到超过30的pass@1,揭示了当前LLMs在真实软件开发中的局限性。这一研究为未来构建更强大的LLMs提供了重要参考,推动了代码生成技术在复杂软件开发中的应用。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作