five

CoderUJB

收藏
arXiv2024-03-28 更新2024-06-21 收录
下载链接:
https://github.com/WisdomShell/ujb
下载链接
链接失效反馈
官方服务:
资源简介:
CoderUJB是由北京大学团队开发的综合性Java基准数据集,包含2239个编程问题,这些问题从17个真实的开源Java项目中提取。数据集设计用于评估大型语言模型在实际编程场景中的性能,特别强调代码的可执行性和多任务处理能力。该数据集覆盖了五种实际编程任务,包括功能代码生成、基于代码的测试生成、基于问题的测试生成、缺陷检测和自动程序修复。通过这些任务,CoderUJB旨在提供一个全面的评估框架,以测试和改进大型语言模型在软件工程中的应用。

CoderUJB is a comprehensive Java benchmark dataset developed by a team from Peking University, which contains 2,239 programming problems extracted from 17 real-world open-source Java projects. This dataset is designed to evaluate the performance of large language models (LLMs) in real-world programming scenarios, with a particular emphasis on code executability and multi-task processing capabilities. It covers five practical programming tasks, including functional code generation, code-based test generation, problem-based test generation, defect detection, and automatic program repair. Through these tasks, CoderUJB aims to provide a comprehensive evaluation framework for testing and improving the application of large language models in software engineering.
提供机构:
北京大学
创建时间:
2024-03-28
搜集汇总
数据集介绍
main_image_url
构建方式
在软件工程领域,随着面向代码的大型语言模型快速发展,亟需能够真实反映实际开发场景的评估基准。CoderUJB的构建过程严谨而系统,其核心数据源自Defects4j数据库中17个高质量开源Java项目。研究团队通过分析项目源代码的抽象语法树与测试覆盖关系,精心提取了238个功能性代码生成问题与140个基于代码的测试生成问题。进一步结合项目缺陷报告与详细问题信息,整合了451个基于问题的测试生成、470个自动程序修复及940个缺陷检测问题,最终形成包含2,239个编程问题的统一基准。每个问题均配备完整的程序上下文与可执行环境,确保了评估场景的真实性与可复现性。
特点
CoderUJB的突出特点在于其多维度的实用性与完整性。该基准全面覆盖功能性代码生成、基于代码的测试生成、基于问题的测试生成、自动程序修复及缺陷检测五大核心编程任务,实现了对大型语言模型编程能力的综合评估。所有问题均源自真实开源项目,具备项目可运行特性,能够准确模拟实际软件开发中的复杂依赖与环境配置。基准提供了统一的提示设计框架,支持聊天式与补全式两种调用模式,确保了不同模型评估的公平性。此外,CoderUJB引入了多样化的评估指标,包括执行通过率、测试覆盖度与分类准确率,为模型性能提供了多维度量化依据。
使用方法
使用CoderUJB进行评估时,研究者需首先配置完整的Java项目执行环境,确保所有依赖项与测试框架正常运行。对于代码生成类任务,模型需根据提供的程序上下文、函数注释与签名生成相应代码,生成的解决方案将被置于原项目环境中执行,并通过预定义的单元测试验证其正确性。测试生成任务则要求模型基于被测代码或问题报告生成测试用例,并通过覆盖度与错误重现能力进行质量评估。缺陷检测任务采用分类评估方式,模型需判断给定函数是否存在缺陷。基准支持pass@k、count@n、coverage@n及准确率等多种指标计算,研究者可通过官方提供的评估脚本自动化执行测试并收集结果,从而系统分析模型在不同编程任务上的性能表现。
背景与挑战
背景概述
在面向软件工程的大型语言模型(LLMs)不断演进的背景下,亟需能够精准反映真实开发场景的评估基准。现有基准或过于简化,或未能捕捉软件开发的多任务特性。为此,北京大学的研究团队于2024年提出了CoderUJB,这是一个专为评估LLMs在多样化Java编程任务上表现而设计的新型基准。该数据集从17个真实开源Java项目中提取了2,239个编程问题,涵盖功能代码生成、基于代码的测试生成、基于问题的测试生成、自动程序修复以及缺陷检测等五项核心任务。CoderUJB强调可执行性与项目可运行性,旨在弥合现有基准与真实软件开发实践之间的鸿沟,为LLMs在软件工程领域的实用化评估提供了重要基础设施。
当前挑战
CoderUJB旨在解决的领域核心挑战在于全面评估LLMs在真实、复杂且多任务的软件开发场景中的编程能力。具体而言,其构建过程面临多重挑战:首先,数据采集与处理需从真实开源项目中精准提取涵盖五大任务的、具备完整项目上下文的可执行问题,并确保数据质量与任务定义的严谨性。其次,设计统一的评估框架需兼顾不同任务(如生成任务与分类任务)的特性,并制定如pass@k、count@n、coverage@n和准确率等多维度、可执行的评估指标。再者,构建能够公平比较不同调用方式(如聊天调用与补全调用)LLMs的基准提示模板,也是一项关键挑战。这些挑战共同指向了创建贴近工业实践、评估维度全面的编程能力基准的复杂性。
常用场景
经典使用场景
在软件工程领域,随着面向代码的大型语言模型快速发展,亟需能够准确反映真实开发场景的评估基准。CoderUJB作为可执行的统一Java基准测试,其经典使用场景在于全面评估大语言模型在多样化Java编程任务中的实际表现。该数据集从17个真实开源Java项目中提取2239个编程问题,涵盖功能代码生成、基于代码的测试生成、基于问题的测试生成、自动程序修复及缺陷检测五大任务,为研究者提供了接近工业级开发环境的评估框架。
实际应用
在实际应用层面,CoderUJB为工业界和学术界提供了可靠的模型能力评估工具。企业可利用该基准测试筛选适合特定开发场景的代码生成模型,例如在自动化测试生成或缺陷修复等具体任务中评估模型实用性。研究机构则能基于其提供的统一评估框架,系统比较不同训练策略对模型性能的影响,如特定语言持续预训练和指令微调的实际效果。该数据集支持对生成代码进行完整项目环境下的执行验证,确保了评估结果与真实开发需求的高度契合。
衍生相关工作
CoderUJB的推出促进了多项相关研究工作的开展。基于该基准的实证研究揭示了持续预训练和指令微调对模型性能的复杂影响,为优化训练策略提供了重要参考。后续研究可在此基础上探索更有效的提示设计方法,提升模型在项目级上下文中的代码生成质量。同时,该数据集也为缺陷检测等挑战性任务的研究提供了标准化评估平台,推动学术界开发更先进的代码理解与生成模型,最终促进大语言模型在软件工程领域的实际应用深化。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作