ClassEval
收藏arXiv2023-08-14 更新2024-06-21 收录
下载链接:
https://github.com/FudanSELab/ClassEval
下载链接
链接失效反馈官方服务:
资源简介:
ClassEval是由复旦大学开发的手工构建的数据集,用于评估大型语言模型在类级别代码生成上的表现。该数据集包含100个类级别的Python代码生成任务,涉及约500个人工小时的工作。ClassEval覆盖了实际软件开发的广泛主题,如管理系统、游戏开发等。每个任务都设计有高测试充分性的测试套件,以确保生成的代码的正确性。数据集旨在解决现有评估在简单代码生成场景上的局限性,提供一个更复杂、更接近实际开发环境的评估基准。
ClassEval is a manually constructed dataset developed by Fudan University for evaluating the performance of large language models (LLMs) on class-level code generation tasks. This dataset includes 100 class-level Python code generation tasks, which required approximately 500 person-hours of manual work. ClassEval covers a broad spectrum of topics in real-world software development, such as management systems and game development. Each task is paired with a high-test-adequacy test suite to validate the correctness of the generated code. The dataset aims to overcome the limitations of existing evaluations that only target simple code generation scenarios, thereby providing a more complex and realistic evaluation benchmark that closely resembles actual software development workflows.
提供机构:
复旦大学
创建时间:
2023-08-04
搜集汇总
数据集介绍

构建方式
在代码生成领域,现有基准多聚焦于函数或语句级别的简单任务,难以评估大型语言模型在复杂场景下的表现。ClassEval作为首个类级别代码生成基准,其构建过程体现了严谨的人工设计理念。研究团队投入约500人时,通过任务选择、类骨架构建、测试用例编写与规范解决方案撰写四个步骤,手工创建了100个Python类级别编程任务。任务覆盖游戏开发、文件处理、管理系统等多样化主题,每个任务均包含详细的类骨架描述、高覆盖率的测试套件以及参考实现,确保了评估的全面性与可靠性。
特点
ClassEval数据集在代码生成基准中展现出独特优势,其核心特点在于专注于类级别代码生成,模拟真实软件开发中多方法相互依赖的复杂场景。数据集中每个任务平均包含45.7行代码,远超过HumanEval等函数级基准,且类骨架文档信息更为详尽。测试用例具备高语句与分支覆盖率,平均每个任务提供33.1个类级别测试和8.0个方法级别测试,有效保障了生成代码的正确性验证。此外,数据集中76.2%的方法具有类级别依赖关系,包括字段依赖、方法依赖和库依赖,显著提升了评估的挑战性与实用性。
使用方法
ClassEval数据集为评估大型语言模型在类级别代码生成能力提供了标准化框架。使用者可基于提供的类骨架描述,要求模型生成完整的Python类实现,并通过配套的测试套件验证生成代码的正确性。评估时支持三种生成策略:整体生成、增量生成与组合生成,以适应不同模型的上下文处理能力。常用指标包括类级别与方法级别的Pass@k,以及依赖生成准确度DEP,从而全面衡量模型在复杂代码结构生成、上下文依赖理解等方面的表现。该数据集已公开可用,为后续研究提供了可靠的实验基础。
背景与挑战
背景概述
在大型语言模型(LLM)推动代码生成技术迅猛发展的背景下,现有评估基准如HumanEval主要聚焦于函数级或语句级等简单代码单元生成,难以衡量模型在更复杂、贴近实际开发场景的类级代码生成上的能力。为填补这一研究空白,复旦大学的研究团队于2023年推出了首个专注于类级代码生成的基准数据集ClassEval。该数据集由研究人员耗费约500人时精心手工构建,包含100个Python类级代码生成任务,覆盖了管理系统、游戏开发等广泛的实际软件开发主题。ClassEval的核心研究问题是评估LLM在生成包含多个相互依赖方法的完整类时的能力,其创建首次系统性地揭示了LLM在类级代码生成上的性能表现与局限,对推动代码生成评估向更复杂、更实用的方向发展具有重要影响力。
当前挑战
ClassEval数据集旨在解决的领域核心挑战是评估LLM在更复杂的类级代码生成任务上的能力,这超越了传统函数级生成,要求模型处理更长代码片段、理解方法间的多种依赖关系(如字段依赖、方法依赖)。在构建过程中,团队面临多重挑战:首先,为确保评估的严谨性与避免数据泄露,所有任务需完全手工构建,这带来了巨大的人力与时间成本;其次,设计任务时需要精心确保每个类包含具有多样依赖关系的方法,以模拟真实开发场景,同时需为每个任务构建高覆盖率的测试套件以可靠验证生成代码的正确性;再者,平衡任务的复杂性、可测试性以及与现实开发的相关性也是一项挑战,例如需排除涉及图形界面或网络编程等难以进行单元测试的任务主题。
常用场景
经典使用场景
在代码生成研究领域,ClassEval 数据集为评估大型语言模型在类级别代码生成任务上的能力提供了标准化测试平台。该数据集通过精心设计的类骨架结构,要求模型根据自然语言描述生成包含多个相互依赖方法的完整Python类。其经典使用场景体现在系统性地衡量模型处理复杂、长序列代码生成任务的表现,尤其是在生成具有字段依赖、方法调用和库引用等上下文关联的代码单元时。研究者利用该数据集能够深入探究模型在超越独立函数生成的更贴近实际开发的编程场景中的真实潜力。
衍生相关工作
ClassEval 数据集的发布催生了一系列围绕类级别代码生成的衍生研究。基于其构建的评测框架,后续工作深入探索了不同生成策略(如整体生成、增量生成、组合生成)对各类模型性能的影响,揭示了GPT系列模型在理解长指令方面的优势。该数据集也启发了对代码依赖生成能力的细粒度分析,例如模型在字段访问与方法调用上的表现差异研究。此外,相关研究进一步扩展到代码错误模式分析,为模型优化提供了方向,并促进了面向复杂软件工程任务的代码生成基准的持续完善与扩展。
数据集最近研究
最新研究方向
在代码生成领域,随着大型语言模型(LLMs)的快速发展,评估其生成复杂代码结构的能力成为研究热点。ClassEval作为首个专注于类级别代码生成的基准测试,揭示了LLMs在生成具有依赖关系的多方法类时面临的挑战。前沿研究围绕模型在长上下文理解、依赖代码生成及生成策略优化等方面展开。例如,研究发现GPT-4和GPT-3.5在整体生成策略上表现优异,而其他模型则更适应逐步生成方法,这反映了模型在处理复杂指令和中间信息利用能力上的差异。此外,模型在生成字段依赖代码时优于方法依赖代码,且常见错误类型如AttributeError和TypeError频发,凸显了LLMs在语义约束理解上的局限性。这些发现推动了针对类级别代码生成的模型优化与基准测试设计,对提升实际软件开发中的自动化代码生成质量具有重要意义。
相关研究论文
- 1ClassEval: A Manually-Crafted Benchmark for Evaluating LLMs on Class-level Code Generation复旦大学 · 2023年
以上内容由遇见数据集搜集并总结生成



