EvoCodeBench
收藏arXiv2024-10-30 更新2024-06-21 收录
下载链接:
https://github.com/seketeam/EvoCodeBench
下载链接
链接失效反馈官方服务:
资源简介:
EvoCodeBench是由北京大学高可信软件技术教育部重点实验室创建的一个动态更新的代码生成基准数据集,旨在评估大型语言模型在特定编程领域的表现。该数据集包含275个样本,来源于25个真实世界的开源代码库,涵盖10个流行的编程领域。数据集通过自动化的收集和标注流程构建,确保了数据的质量和多样性。EvoCodeBench的应用领域广泛,旨在帮助开发者在特定领域选择更优的大型语言模型,并发现现有模型的不足之处。
EvoCodeBench is a dynamically updated code generation benchmark dataset created by the Key Laboratory of High Confidence Software Technologies of the Ministry of Education, Peking University, which aims to evaluate the performance of large language models (LLMs) in specific programming domains. This dataset contains 275 samples sourced from 25 real-world open-source code repositories and covers 10 popular programming domains. Constructed via an automated collection and annotation workflow, it ensures the quality and diversity of the data. EvoCodeBench has broad application scenarios, designed to help developers select optimal large language models for specific domains and uncover the shortcomings of existing models.
提供机构:
高可信软件技术教育部重点实验室(北京大学)
创建时间:
2024-10-30
搜集汇总
数据集介绍

构建方式
EvoCodeBench的构建过程严格遵循与真实世界代码库的多维度对齐,包括代码分布和依赖分布。数据集通过自动化的流水线从最新的开源代码库中收集,确保数据的新鲜度和多样性。具体步骤包括:从GitHub上筛选高质量的开源Python项目,提取函数及其签名和函数体,构建测试用例,进行去重处理,并利用大型语言模型生成自然语言需求描述。最终,从这些输出中精选样本构建EvoCodeBench,确保其与500个真实世界代码库的代码和依赖分布一致。
特点
EvoCodeBench的主要特点在于其与真实世界代码库的高度对齐,涵盖了独立代码和非独立代码,确保了代码类型的真实比例。此外,数据集提供了全面的注释,包括自然语言需求、原始代码库、参考代码和依赖关系,以及强大的评估指标如Pass@k和Recall@k。EvoCodeBench是一个动态更新的基准,旨在避免数据泄露,确保评估的公正性和准确性。
使用方法
EvoCodeBench主要用于评估大型语言模型在代码生成任务中的表现,特别是在真实世界代码库环境下的生成能力。使用者可以通过提供的自然语言需求和代码库上下文,生成代码并进行功能正确性和依赖召回率的评估。数据集支持多种实验设置,如无上下文生成、本地文件续写和填充等,以全面评估模型在不同情境下的表现。此外,EvoCodeBench还提供了详细的注释和评估指标,便于研究者和开发者进行深入分析和模型优化。
背景与挑战
背景概述
EvoCodeBench,由北京大学计算机科学学院的Jia Li、Ge Li、Xuanming Zhang、Yihong Dong和Zhi Jin等人于2024年提出,是一个针对代码生成任务的演化基准数据集。该数据集的核心研究问题是如何在大语言模型(LLMs)的代码生成任务中进行有效评估。EvoCodeBench通过与真实世界代码库的多维度对齐,如代码分布和依赖分布,解决了现有基准数据集与实际代码库对齐不足的问题。其发布的首个版本EvoCodeBench-2403包含了从25个真实世界代码库中提取的275个样本,对相关领域的影响力在于提供了一个更为真实和全面的评估平台,推动了LLMs在实际开发中的应用。
当前挑战
EvoCodeBench在构建过程中面临多项挑战。首先,如何从真实世界代码库中提取具有代表性的样本,确保代码分布和依赖分布的真实性,是一个复杂的问题。其次,数据集需要提供全面的注释,包括自然语言需求、参考代码和依赖关系,这增加了数据集构建的难度。此外,为了避免数据泄露,EvoCodeBench需要定期更新,这要求构建一个自动化的更新管道。最后,评估LLMs在真实世界代码库中的表现时,如何设计有效的评估指标(如Pass@k和Recall@k)也是一个重要的挑战。
常用场景
经典使用场景
EvoCodeBench 数据集的经典使用场景在于评估大型语言模型(LLMs)在代码生成任务中的表现。通过与真实世界代码库的多维度对齐,如代码分布和依赖分布,EvoCodeBench 提供了一个全面的评估框架。研究者可以利用该数据集对 LLMs 进行严格的测试,以评估其在实际开发环境中的代码生成能力,包括功能正确性和依赖关系的准确性。
衍生相关工作
EvoCodeBench 数据集的发布催生了一系列相关研究工作。例如,研究者们基于该数据集提出了新的代码生成模型和评估方法,进一步提升了 LLMs 在代码生成任务中的表现。此外,EvoCodeBench 还激发了对代码生成任务中上下文利用和依赖关系处理的研究,推动了代码生成领域的发展。这些衍生工作不仅丰富了代码生成领域的研究内容,也为实际应用提供了更多可能性。
数据集最近研究
最新研究方向
在代码生成领域,EvoCodeBench数据集的最新研究方向主要集中在如何更准确地评估大型语言模型(LLMs)在真实世界代码库中的表现。EvoCodeBench通过与真实代码库的多维度对齐,如代码分布和依赖分布,提供了一个更为全面的评估框架。该数据集不仅包含了详细的注释(如需求、参考代码和依赖关系),还引入了鲁棒的评估指标(如Pass@k和Recall@k),并且是一个动态更新的基准,以避免数据泄露问题。基于EvoCodeBench,研究者们提出了仓库级别的代码生成任务,并评估了多个流行的LLMs在该任务中的表现,揭示了这些模型在真实世界代码库中的优势与不足。这一研究方向对于推动LLMs在实际开发中的应用具有重要意义,也为未来的代码生成技术提供了新的挑战和机遇。
相关研究论文
- 1EvoCodeBench: An Evolving Code Generation Benchmark Aligned with Real-World Code Repositories北京大学计算机科学学院 · 2024年
以上内容由遇见数据集搜集并总结生成



