five

Rtian/DebugBench

收藏
Hugging Face2024-01-11 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/Rtian/DebugBench
下载链接
链接失效反馈
官方服务:
资源简介:
DebugBench是一个用于评估大型语言模型(LLM)调试能力的基准测试数据集。该数据集从LeetCode社区收集代码片段,并通过GPT-4植入错误。数据集包含4,253个实例,涵盖C++、Java和Python三种编程语言,以及四个主要错误类别和18个次要类型。数据集的难度分为简单、中等和困难三个级别。所有实例均在2022年6月之后发布。

DebugBench是一个用于评估大型语言模型(LLM)调试能力的基准测试数据集。该数据集从LeetCode社区收集代码片段,并通过GPT-4植入错误。数据集包含4,253个实例,涵盖C++、Java和Python三种编程语言,以及四个主要错误类别和18个次要类型。数据集的难度分为简单、中等和困难三个级别。所有实例均在2022年6月之后发布。
提供机构:
Rtian
原始信息汇总

数据集概述

数据集简介

名称: DebugBench
类型: 大型语言模型(LLM)调试基准
来源: 论文 DebugBench: Evaluating Debugging Capability of Large Language Models
数据收集: 从 LeetCode 社区收集代码片段,并使用 GPT-4 植入错误
开源项目: GitHub 仓库

数据集特点

  • 实例数量: 4,253 个
  • 错误类别: 涵盖四大类错误和 18 种小类型
  • 编程语言: 包括 C++、Java 和 Python
  • 难度级别: 分为简单、中等和困难三个级别
  • 发布时间: 所有实例均在 2022 年 6 月之后发布

数据字段

每个实例包含 13 个特征:

特征 描述 示例
slug LeetCode 编程问题的 ID single-number
Category 错误分类的大类 logic error
subtype 错误分类的小类 operation error
language 实例的编程语言 cpp
level 问题的复杂度级别 easy
release_time 编程问题发布的 Unix 时间戳 1,691,549,090
question 编程问题的文字描述 给定一个非空整数数组 nums,每个元素出现两次,除了一个。找到那个单一的元素。你必须实现一个线性时间复杂度的解决方案,并且只使用常数额外空间。
examples 目标函数的输入输出示例对 ["Input: nums = [2,2,1]
Output: 1", "Input: nums = [4,1,2,1,2]
Output: 4", "Input: nums = [1]
Output: 1"]
constraints 输入参数的约束条件 1 <= nums.length <= 3 * 104 -3 * 104 <= nums[i] <= 3 * 104 数组中的每个元素出现两次,除了一个元素只出现一次。
solution 通过所有测试套件的正确解决方案 class Solution { public: int singleNumber(vector<int>& nums) { unordered_map<int,int> mp; for(int i=0;i<nums.size();i++){ mp[nums[i]]++; } for(auto m:mp){ if(m.second==1){ return m.first; } } return -1; } };
solution explanation 分享解决方案的原帖 # 使用 Map

class Solution { public: int singleNumber(vector<int>& nums) { unordered_map<int,int> mp; for(int i=0;i<nums.size();i++){ mp[nums[i]]++; } for(auto m:mp){ if(m.second==1){ return m.first; } } return -1; } };

使用 XOR

class Solution { public: int singleNumber(vector<int>& nums) { int res=0; for(int i=0;i<nums.size();i++){ res^=nums[i]; } return res; } }; | | buggy_code | 待调试的错误版本解决方案 | class Solution { public: int singleNumber(vector<int>& nums) { unordered_map<int,int> mp; for(int i=0;i<nums.size();i++){ mp[nums[i]] = 1; } for(auto m:mp){ if(m.second==1){ return m.first; } } return -1; } }; | | bug_explanation | 植入错误的解释 | 我们没有增加映射的值,而是每次都将其设置为 1。 |

数据分割

数据集仅包含一个分割,即评估分割,包含 4,253 个实例。

评估

评估基于 LeetCode 的未见测试套件。评估者需要一个 LeetCode 账户来使用测试套件。评估示例代码可在 Hugging Face 仓库中找到。

数据集创建

数据集创建过程包括从 LeetCode 社区收集代码片段,使用 GPT-4 植入错误,并进行质量检查。还评估了两个商业模型和三个开源模型在零样本场景下的表现。

限制

  • 实验中的错误实例是合成创建的,可能不完全反映真实世界调试场景的复杂性。
  • 对于某些错误子类型,一些错误实例可能与标记的特征有不同的分类性质。例如,响应“未定义方法”提示生成的错误代码可能会触发无限循环,而不是调用未定义的函数。

引用信息

latex @misc{tian2024debugbench, title={DebugBench: Evaluating Debugging Capability of Large Language Models}, author={Runchu Tian and Yining Ye and Yujia Qin and Xin Cong and Yankai Lin and Zhiyuan Liu and Maosong Sun}, year={2024}, eprint={2401.04621}, archivePrefix={arXiv}, primaryClass={cs.SE} }

搜集汇总
数据集介绍
main_image_url
构建方式
在软件工程领域,代码调试能力是衡量大型语言模型编程智能的关键维度。DebugBench的构建过程体现了严谨的学术方法,其核心数据源自LeetCode社区的真实编程问题。研究团队首先从该平台收集了涵盖C++、Java和Python三种语言的代码片段,这些片段均对应2022年6月后发布的题目,确保了数据的时效性。随后,借助GPT-4的强大生成能力,在原始正确代码中有策略地植入了特定类型的缺陷,形成了包含4,253个实例的基准测试集。整个构建流程经过严格的质量校验,最终形成了覆盖四大主要错误类别和十八种子类型的系统性评测资源。
特点
作为专门评估大语言模型调试能力的基准,DebugBench展现出多维度特征。数据集全面覆盖逻辑错误、运算错误等四大核心缺陷类别,并细分为十八种具体错误子类型,为模型能力评估提供了精细化的分类框架。在难度设计上,该基准依据题目复杂度划分为简单、中等和困难三个层级,能够系统检验模型在不同挑战下的表现。数据实例同时包含问题描述、输入输出示例、正确解决方案及植入缺陷的错误代码,并附有详细的缺陷解释,构成了完整的调试任务上下文。这种结构化设计使得该数据集不仅能评估模型的代码修正能力,还能深入探究其错误理解和推理机制。
使用方法
在自然语言处理与软件工程的交叉研究中,DebugBench为模型调试能力的量化评估提供了标准化框架。使用该数据集时,研究者需首先配置LeetCode测试环境,通过获取leetcode_session凭证连接官方评测系统。评估过程基于LeetCode隐藏测试用例进行,采用自动化测试脚本执行模型生成的修正代码,并根据测试通过率等指标量化模型性能。数据集支持零样本评估范式,用户可直接将包含缺陷的代码实例输入待测模型,收集其生成的修正方案进行测试。配套的评测工具包封装了环境初始化、代码提交和结果解析等功能,确保了评估流程的可复现性和一致性,为学术研究提供了可靠的实验基础。
背景与挑战
背景概述
在软件工程领域,代码调试作为保障软件质量的核心环节,其自动化评估长期面临标准化基准缺失的困境。2024年,清华大学自然语言处理与社会人文计算实验室的研究团队推出了DebugBench数据集,旨在系统评估大语言模型在代码调试任务上的能力。该数据集从LeetCode社区精选代码片段,并借助GPT-4智能植入缺陷,涵盖了C++、Java和Python三种编程语言,包含4,253个实例,涉及逻辑错误、运算错误等四大类共十八种子类型的缺陷。这一基准的建立,不仅填补了代码调试评估领域的空白,也为大语言模型在软件工程中的应用提供了严谨的量化标准,推动了智能化软件开发工具的发展。
当前挑战
DebugBench数据集致力于解决大语言模型在代码调试能力评估方面的挑战,其核心在于如何构建一个全面、可靠且贴近真实场景的缺陷代码基准。具体挑战体现在两个方面:其一,在领域问题层面,代码调试本身具有高度复杂性,缺陷类型多样且上下文依赖性强,要求基准能够精准覆盖从语法错误到深层逻辑缺陷的完整谱系,并有效区分模型在易、中、难不同难度问题上的表现差异。其二,在构建过程中,如何利用大语言模型自动生成高质量、符合特定缺陷分类的代码实例是一大难点,这涉及对生成结果的严格质量控制,以避免缺陷植入与标注类型不一致,例如预期生成‘未定义方法’错误却产生了无限循环缺陷,同时还需确保所有实例均基于2022年6月后发布的新颖问题,以反映最新的编程实践与挑战。
常用场景
经典使用场景
在软件工程与人工智能交叉领域,DebugBench数据集为评估大型语言模型的代码调试能力提供了标准化基准。该数据集通过从LeetCode社区收集代码片段,并利用GPT-4植入缺陷,构建了涵盖C++、Java和Python三种编程语言、四个主要缺陷类别及三个难度级别的实例集合。研究者通常利用该数据集在零样本场景下测试模型识别、定位并修复代码中逻辑错误、操作失误等常见问题的能力,从而系统衡量模型在程序理解与纠错方面的表现。
衍生相关工作
基于DebugBench,研究者已开展多项经典工作,例如探索不同提示策略对模型调试效果的影响,以及比较开源与商业模型在特定缺陷类型上的表现差异。该数据集亦催生了针对代码修复的微调方法与增强型评估框架的开发,促进了如缺陷分类、修复建议生成等细分方向的研究。相关成果进一步推动了自动化软件工程领域向更精细、可解释的模型能力评估方向发展。
数据集最近研究
最新研究方向
在软件工程与人工智能交叉领域,DebugBench作为评估大语言模型调试能力的基准,正推动代码智能研究的前沿探索。该数据集基于LeetCode社区代码片段,利用GPT-4植入缺陷构建而成,涵盖多类错误与难度等级,为模型在真实编程场景中的缺陷定位与修复能力提供了标准化测试平台。当前研究聚焦于提升模型对复杂逻辑错误、多语言代码的泛化调试性能,并探索其在自动化软件维护、智能编程助手等热点应用中的潜力。这些进展不仅深化了对模型代码理解机制的认知,也为软件开发流程的智能化革新奠定了实证基础。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作