five

CoderEval

收藏
arXiv2024-02-23 更新2024-08-06 收录
下载链接:
http://arxiv.org/abs/2302.00288v3
下载链接
链接失效反馈
官方服务:
资源简介:
CoderEval是一个针对实用代码生成的基准数据集,由北京大学软件与微电子学院和华为云计算技术有限公司共同开发。该数据集包含460个问题,分别来自Python和Java的实际开源项目,旨在评估模型在非独立函数生成方面的有效性。CoderEval通过六个级别的上下文依赖性支持代码生成问题,涵盖了类型、API、变量和常量等代码元素。此数据集不仅用于评估模型的代码生成能力,还强调了在实际开发场景中生成代码的重要性,特别是在处理非独立函数时。

CoderEval is a benchmark dataset for practical code generation, jointly developed by the School of Software and Microelectronics of Peking University and Huawei Cloud Computing Technologies Co., Ltd. This dataset contains 460 problems derived from real-world open-source Python and Java projects, intended to assess the effectiveness of models in generating non-independent functions. CoderEval supports code generation tasks across six levels of contextual dependency, covering core code elements such as types, APIs, variables and constants. This dataset not only serves to evaluate the code generation capabilities of models, but also highlights the significance of code generation in real-world development scenarios, particularly when handling non-independent functions.
提供机构:
北京大学软件与微电子学院
创建时间:
2023-02-01
搜集汇总
数据集介绍
main_image_url
构建方式
在代码生成领域,现有基准如HumanEval主要关注独立函数,而现实开源项目中超过70%的函数具有上下文依赖。为弥补这一差距,CoderEval从GitHub热门开源项目中精心筛选了230个Python和230个Java代码生成问题。构建过程分为三步:首先基于项目标签和星标筛选高质量函数,提取函数签名、文档字符串及测试代码;其次为缓解数据泄露风险,招募工程师为每个问题提供人工标注的文档描述;最后通过程序依赖分析识别六种上下文依赖级别,并构建基于Docker的执行平台以自动评估生成代码的功能正确性。
特点
CoderEval的核心特点在于其强调实用代码生成的语境感知能力。该数据集依据函数对外部代码元素的依赖程度,将问题划分为六个可运行级别,涵盖从仅依赖内置函数到需要项目级上下文的广泛场景。与仅包含独立函数的传统基准不同,CoderEval中非独立函数占比显著,更贴近实际开发环境。此外,数据集提供了原始与人工标注的双重文档描述,支持对模型提示工程效果的细粒度研究。其内置的执行平台能自动验证生成代码在真实项目环境中的正确性,为评估模型在复杂语境下的代码生成能力提供了可靠框架。
使用方法
使用CoderEval进行评估时,研究者需将目标模型的代码生成结果置于数据集提供的Docker执行环境中。该平台会自动将生成代码替换到对应项目的原函数位置,并运行相关测试用例以验证功能正确性。评估采用Pass@K指标,计算模型在多次生成中至少产生一个正确解的概率。同时,数据集提供的上下文依赖信息允许研究者分析模型利用外部代码元素的能力。通过比较模型在独立与非独立函数上的表现差异,以及不同文档描述对生成效果的影响,能够深入揭示模型在实用代码生成任务中的优势与局限。
背景与挑战
背景概述
在人工智能与软件工程交叉领域,代码生成技术正经历着由生成式预训练模型引领的深刻变革。CoderEval数据集由北京大学与华为云的研究团队于2024年联合构建,旨在解决现有基准测试在评估实际代码生成能力方面的局限性。该数据集聚焦于现实开发场景中的非独立函数生成问题,通过从热门开源项目中精心筛选230个Python与230个Java编程问题,构建了一个支持多层级上下文依赖的评估框架。其核心研究在于推动代码生成模型从理论算法向实际工程应用的跨越,为模型在真实软件开发环境中的有效性提供了科学量化的评估标准,对提升智能编程工具的实用化水平具有里程碑意义。
当前挑战
CoderEval数据集所应对的核心挑战在于弥合代码生成模型评估与现实开发需求之间的鸿沟。具体而言,现有基准如HumanEval主要关注独立函数生成,而实际项目中超过70%的函数具有上下文依赖性,涉及第三方库、类内变量或项目级代码元素的引用。构建过程中的挑战包括:如何从海量开源项目中筛选具有代表性和高质量的函数样本;如何设计自动化执行平台以支持复杂依赖环境的代码功能验证;以及如何通过人工标注文档字符串来缓解预训练模型的数据泄露问题,确保评估结果的公正性与可靠性。
常用场景
经典使用场景
在代码生成领域,CoderEval数据集被广泛用于评估生成式预训练模型在实用代码生成任务中的性能。该数据集精心选取了来自真实开源项目的Python和Java代码生成问题,覆盖了从独立函数到依赖项目级上下文的非独立函数,为研究者提供了一个贴近实际开发场景的评估平台。通过自动化的执行平台,CoderEval能够精确测试生成代码的功能正确性,从而成为衡量模型在复杂上下文环境中代码生成能力的重要基准。
解决学术问题
CoderEval解决了现有基准(如HumanEval)主要关注独立函数而忽略非独立函数的局限性。研究表明,开源项目中超过70%的函数属于非独立函数,这些函数依赖于外部库、类或文件中的上下文元素。该数据集通过引入六个级别的上下文依赖分类,使研究者能够系统评估模型在利用上下文信息生成代码方面的有效性,推动了代码生成研究从理论算法向实际应用场景的深化。
衍生相关工作
CoderEval的推出促进了多项相关研究工作的进展。例如,基于该数据集的评估结果,研究者提出了针对上下文感知的代码生成模型优化方法,如结合静态程序分析增强模型对依赖关系的理解。同时,该数据集也启发了对多语言代码生成基准的扩展研究,以及针对特定领域(如数据科学或企业级应用)的上下文依赖建模工作,进一步丰富了代码生成领域的评估体系。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作