ConDefects
收藏arXiv2023-10-25 更新2024-06-21 收录
下载链接:
https://github.com/appmlk/ConDefects
下载链接
链接失效反馈官方服务:
资源简介:
ConDefects是由北京化工大学和伦敦国王学院联合创建的数据集,专注于解决大型语言模型(LLMs)在故障定位和程序修复中的数据泄露问题。该数据集包含1254个Java错误程序和1625个Python错误程序,均来源于AtCoder在线竞赛平台,涵盖2021年10月至2023年9月间的数据。每个错误程序都配有错误位置和修复版本,适用于故障定位和自动程序修复研究。ConDefects支持根据时间窗口和编程任务难度选择子集,提供用户友好的接口进行测试案例执行和覆盖收集,广泛应用于评估不同故障定位和程序修复方法。
ConDefects is a dataset jointly created by Beijing University of Chemical Technology and King's College London, focusing on addressing data leakage issues in large language models (LLMs) during fault localization and program repair. It contains 1,254 faulty Java programs and 1,625 faulty Python programs, all sourced from the AtCoder online contest platform, covering data from October 2021 to September 2023. Each faulty program is equipped with its bug location and fixed version, making it applicable to research on fault localization and automated program repair. ConDefects supports subset selection based on time windows and programming task difficulty, and provides a user-friendly interface for test case execution and coverage collection, which is widely used to evaluate different fault localization and program repair methods.
提供机构:
北京化工大学
创建时间:
2023-10-25
搜集汇总
数据集介绍

构建方式
ConDefects数据集的构建始于从在线编程竞赛平台AtCoder收集的代码提交。研究者筛选了2021年10月至2023年9月期间提交的Java和Python程序,并选择了那些仅通过一次代码行修改即可从错误状态修正为正确状态的提交。每个错误的程序都标注了错误行号,并与其修复版本配对。为了确保数据集的时效性和避免数据泄露问题,该数据集仅包含在ChatGPT训练数据截止日期之后生成的代码。
使用方法
使用ConDefects数据集的工具有一个集中的脚本入口点ConDefects.py。该工具提供了多种功能,包括查询数据集的元信息、检索数据集、运行程序以获取测试用例报告以及收集覆盖率信息。用户可以通过命令行参数指定目标目录、编程语言、时间范围、难度级别和特定的编程任务。此外,用户还可以选择特定的测试用例进行执行。该工具支持Python和Java代码的覆盖率收集,分别使用'coverage'和'jacocoagent'包。
背景与挑战
背景概述
随着大型语言模型(LLM)在软件工程领域的应用日益增多,特别是其在缺陷定位和程序修复方面的潜力,确保LLM方法的有效性和泛化能力变得至关重要。现有的广泛采用的基准数据集中的代码是在LLM兴起之前编写的,可能已被包含在现有流行LLM的训练数据中,从而面临数据泄露的威胁,导致性能指标过于乐观和误导。为了解决这个问题,我们引入了ConDefects,这是一个精心策划的真实缺陷数据集,旨在消除这种重叠。ConDefects包含1,254个Java错误程序和1,625个Python错误程序。所有这些程序都是从在线竞赛平台AtCoder中收集的,并在2021年10月至2023年9月之间产生。我们将每个错误与其位置和相应的修复代码版本配对,使其适合用于缺陷定位和程序修复相关研究。我们还提供了根据不同时间窗口和编码任务难度选择子集的接口。虽然受到LLM任务的启发,但ConDefects可以用于基准测试所有类型的缺陷定位和程序修复方法。该数据集已公开可用,可在Github上访问。
当前挑战
ConDefects数据集面临的挑战包括:1) 数据泄露:现有广泛采用的基准数据集中的代码可能已被包含在现有流行LLM的训练数据中,导致数据泄露的威胁。2) 缺陷定位准确性:尽管ConDefects数据集旨在提高缺陷定位的准确性,但与其他数据集相比,其性能仍有待提高。3) 数据集更新:随着LLM技术的不断发展,需要不断更新和扩展ConDefects数据集,以保持其相关性和有效性。4) 数据集规模:尽管ConDefects数据集包含了一定数量的缺陷程序,但与一些现有数据集相比,其规模仍然较小。
常用场景
经典使用场景
在软件工程领域,特别是大型语言模型(LLM)在故障定位和程序修复中的应用日益受到关注。然而,现有的大多数基准数据集,如Defects4J和ManyBugs,由于数据泄露问题,可能导致对LLM性能的过高估计。为了解决这一问题,ConDefects数据集应运而生,它包含2021年10月至2023年9月期间产生的真实故障程序,并消除了与现有LLM训练数据的重叠。ConDefects数据集包含1,254个Java故障程序和1,625个Python故障程序,每个故障程序都标注了故障行号,并配对了修复后的代码版本,使其成为故障定位和程序修复相关研究的理想选择。此外,ConDefects还提供了基于时间窗口和编码任务难度的子集选择接口,使得研究人员可以根据不同的研究需求灵活选择数据。ConDefects数据集的引入,为LLM在故障定位和程序修复领域的应用提供了新的研究平台,并有助于更准确地评估LLM的性能。
解决学术问题
ConDefects数据集解决了现有基准数据集可能存在的数据泄露问题,从而更真实地反映了LLM在故障定位和程序修复任务中的性能。此外,ConDefects数据集的时间窗口选择和编码任务难度选择功能,使得研究人员可以根据不同的研究需求灵活选择数据,从而避免了研究偏差。ConDefects数据集的引入,为LLM在故障定位和程序修复领域的应用提供了新的研究平台,并有助于更准确地评估LLM的性能。
实际应用
ConDefects数据集的实际应用场景包括但不限于:1)评估和比较不同LLM在故障定位和程序修复任务中的性能;2)研究和开发新的LLM模型,以提高其在故障定位和程序修复任务中的准确性和效率;3)为软件工程师提供故障定位和程序修复的工具和资源。ConDefects数据集的引入,为LLM在故障定位和程序修复领域的实际应用提供了新的可能性,并有助于提高软件开发的效率和可靠性。
数据集最近研究
最新研究方向
随着大型语言模型(LLMs)在软件工程领域,尤其是在缺陷定位和程序修复中的应用日益增多,确保LLMs方法的一致性和泛化能力变得至关重要。现有的广泛采用的基准数据集,如Defects4J、ManyBugs、IntroClass和CodeNet,其代码是在LLMs兴起之前编写的,可能包含在现有流行LLMs的训练数据中,从而受到数据泄露的威胁,导致性能指标过于乐观和误导。为了解决这一问题,我们引入了“ConDefects”,这是一个精心策划的真实缺陷数据集,旨在消除这种重叠。ConDefects包含1254个Java错误程序和1625个Python错误程序。所有这些程序都来自在线竞赛平台AtCoder,并在2021年10月至2023年9月之间产生。我们为每个错误配对错误位置和相应的修复代码版本,使其适合于缺陷定位和程序修复相关研究。我们还提供了基于不同时间窗口和编码任务难度的子集选择界面。虽然受到LLM任务的启发,但ConDefects可以用于基准测试所有类型的缺陷定位和程序修复方法。数据集已公开发布,可以在GitHub上访问。
相关研究论文
- 1ConDefects: A New Dataset to Address the Data Leakage Concern for LLM-based Fault Localization and Program Repair北京化工大学 · 2023年
以上内容由遇见数据集搜集并总结生成



