five

CodeRepetEval

收藏
arXiv2025-05-15 更新2025-05-17 收录
下载链接:
https://github.com/LYC127/RPG
下载链接
链接失效反馈
官方服务:
资源简介:
CodeRepetEval数据集由北京大学计算机科学技术系创建,旨在评估代码生成中缓解重复问题的方法。该数据集包含三种场景的数据,包括人工合成、代码生成基准和现实世界的代码仓库,共计2048个测试样本。数据集的创建过程涉及超过400小时的构造和检查工作。CodeRepetEval数据集可用于评估RPG方法在代码生成中的性能,该数据集的构建有助于推动代码生成中重复问题研究的进展。

The CodeRepetEval dataset was developed by the Department of Computer Science and Technology, Peking University, with the goal of evaluating methods for mitigating repetition issues in code generation. This dataset includes data from three scenarios: synthetic samples, code generation benchmarks, and real-world code repositories, totaling 2048 test samples. The construction of the CodeRepetEval dataset involved over 400 hours of curation and inspection work. The dataset can be used to evaluate the performance of RPG methods in code generation, and its construction helps advance research on repetition problems in code generation.
提供机构:
北京大学计算机科学技术系
创建时间:
2025-05-15
原始信息汇总

数据集概述

数据集名称

Rethinking Repetition Problems of LLMs in Code Generation

数据集用途

用于分析和解决大型语言模型(LLMs)在代码生成中的重复问题。

关键功能

  1. TR-N/TR-S计算

    • 执行命令:python metric/rep.py
  2. CCP计算

    • 执行命令:python metric/compile.py
  3. PPL计算

    • 执行命令:python metric/ppl.py
  4. EGP和时间计算

    • 执行命令:python metric/eos&length&time.py

RPG使用说明

  1. 修改代码

    • generate_llama.py中取消注释以下行: Python

      repetition or not

      GenerationMixin.sample = generation.re_generation_utils.GenerationMixin.sample

      GenerationMixin.greedy_search = generation.re_generation_utils.GenerationMixin.greedy_search

    • 替换transformers库中generation/utils.py的greedy_search函数为greedy_search函数。

  2. 执行命令

    • 执行命令:python generate_llama.py
搜集汇总
数据集介绍
main_image_url
构建方式
CodeRepetEval数据集的构建过程涵盖了三种不同场景:人工合成、代码生成基准测试和真实世界代码库。在人工合成场景中,研究人员使用Self-instruct方法生成指令集,引导CodeLlama-7B模型生成包含重复结构的代码样本。代码生成基准测试场景则通过CodeLlama-7B在HumanEval和MBPP基准测试上的采样获得数据。真实世界代码库场景则从GitHub上精选了100个高质量开源项目中的代码片段。所有场景的数据均经过TR-S指标排序筛选,并人工评估后形成最终数据集。
特点
CodeRepetEval数据集专注于评估代码生成中的结构重复问题,具有以下显著特征:首先,它系统性地涵盖了从人工构造到真实场景的多种重复模式;其次,数据集通过语法规则分析实现了对结构重复的精确标注,这种重复表现为代码模式固定但内容可变;再者,数据集特别关注了LLMs在代码生成中常见的无限循环和功能缺失等典型问题。这些特点使其成为评估代码重复问题的理想基准。
使用方法
使用CodeRepetEval数据集时,研究者可以通过提供的提示词输入,测试不同方法生成的代码质量。评估主要采用三类指标:TR-S和TR-N用于量化结构重复程度,EGP衡量模型终止重复的能力,CCP评估生成代码的可编译性。数据集支持对现有解码方法的改进测试,如对比Greedy Sampling与RPG等方法在抑制重复方面的效果。此外,该数据集还可用于分析不同规模LLMs的重复倾向,以及跨编程语言的泛化性研究。
背景与挑战
背景概述
CodeRepetEval数据集由北京大学高可信软件技术教育部重点实验室的研究团队于2025年创建,旨在解决大语言模型在代码生成过程中普遍存在的结构重复问题。该数据集聚焦于代码生成领域,针对传统方法仅关注内容重复的局限性,首次系统性地定义了语法层面的结构重复现象。作为首个专门评估代码重复问题的基准数据集,其构建融合了人工合成样本、主流代码生成基准测试用例及真实项目代码片段三种场景,为提升生成代码的语法合理性和功能完整性提供了重要研究基础。
当前挑战
CodeRepetEval面临的核心挑战体现在两个方面:在领域问题层面,需解决代码生成中结构重复导致的无限循环生成、编译错误等典型问题,这类问题在现有基准测试中未被系统评估;在构建技术层面,需设计精确的语法规则匹配机制来识别多样化的结构重复模式,同时平衡人工标注成本与数据规模。特别是针对不同编程语言的语法差异性,需建立跨语言的统一评估框架,这对数据集的扩展性和泛化能力提出了较高要求。
常用场景
经典使用场景
CodeRepetEval数据集在代码生成领域中被广泛用于评估和缓解大型语言模型(LLMs)在生成代码时的重复问题。该数据集通过人工合成、代码生成基准测试和真实世界代码库三种场景,全面覆盖了结构重复和内容重复的多种模式。研究人员利用该数据集对模型生成的代码进行系统性分析,识别重复模式并开发相应的解码策略,如基于语法的重复惩罚方法(RPG),以提升代码生成的质量和效率。
解决学术问题
CodeRepetEval数据集解决了代码生成中结构重复和内容重复的量化评估问题。传统研究主要关注内容重复,而该数据集首次明确定义了结构重复,并通过语法规则识别重复模式。数据集支持的研究不仅揭示了LLMs在代码生成中的自增强效应,还推动了基于语法的解码方法的发展,显著减少了重复生成,提升了代码的编译正确性和功能性。其贡献在于填补了代码生成重复问题系统性研究的空白,并为后续方法提供了标准化评估基准。
衍生相关工作
CodeRepetEval数据集衍生了一系列重要研究,包括基于语法树的重复检测算法、动态权重调整的解码策略,以及跨编程语言的泛化方法。例如,后续工作扩展了其语法规则至Go等语言,验证了方法的普适性。数据集还启发了对LLMs重复问题根源的理论分析,如自增强效应与训练数据退化关联的研究。相关成果发表在顶会论文中,并推动了CodeLlama、DeepSeek-Coder等模型的迭代优化。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作