遇见数据集

coredd-bench

收藏
Hugging Face2026-07-26 更新2026-07-27 收录
官方服务:

资源简介:

CoReDD Bench是一个用于评估代码缺陷检测器性能的基准测试数据集,专注于代码审查场景下的缺陷行定位任务。该数据集通过重构代码仓库历史中后续的修正记录,自动生成缺陷标签,并引入人工审核来量化标签噪声与不确定性。数据来源于六个经过筛选的Python开源GitHub仓库的拉取请求,这些仓库具有可观察的评审和集成工作流。数据集包含三个核心文件:`labels.jsonl` 记录了每个评审案例(即存在缺陷且后来被修正的拉取请求)及其候选语法节点(包括被标记为缺陷的节点);`audits.jsonl` 存储了人工审核样本的结果,用于估计标签错误率;`noise.json` 则提供了基于审核结果的后验错误率分布,用于在评估时进行蒙特卡洛扰动,从而为所有性能指标(如F1分数)生成带有置信区间的报告。评估协议模拟了事前(ex ante)审查设置,检测器只能基于代码合并前的信息(如规范diff、评审上下文)进行预测,且预测范围仅限于diff中发生变更的Python代码行。该数据集旨在衡量检测器在标签存在固有噪声的情况下,准确识别引入缺陷的代码行的能力,适用于代码审查自动化、软件缺陷检测、标签噪声建模及不确定性量化等研究领域。

CoReDD Bench is a benchmark dataset for evaluating the performance of code defect detectors, focusing on defect line localization tasks in code review scenarios. The dataset automatically generates defect labels by reconstructing subsequent correction records in the code repository history and introduces manual audits to quantify label noise and uncertainty. The data is sourced from pull requests of six selected Python open-source GitHub repositories with observable review and integration workflows. The dataset includes three core files: `labels.jsonl` records each review case (i.e., a pull request with defects that were later corrected) and its candidate syntactic nodes (including those marked as defective); `audits.jsonl` stores the results of manually audited samples to estimate label error rates; `noise.json` provides a posterior error rate distribution based on audit results, used for Monte Carlo perturbations during evaluation to generate reports with confidence intervals for all performance metrics (such as F1 scores). The evaluation protocol simulates an ex ante review setting, where detectors can only make predictions based on pre-merge information (e.g., canonical diff, review context), and the prediction scope is limited to Python code lines changed in the diff. The dataset aims to measure the detectors ability to accurately identify code lines that introduce defects in the presence of inherent label noise, and is applicable to research fields such as automated code review, software defect detection, label noise modeling, and uncertainty quantification.

创建时间:
2026-07-24
原始信息汇总

数据集概述

CoReDD Bench 是一个用于评估代码审查中缺陷检测能力的数据集与基准测试框架,核心目标是衡量审查者能否在代码变更合并前准确识别出存在缺陷的代码行。

核心任务与评估设定

  • 任务类型:文本分类(text-classification),具体为代码审查中的缺陷检测。
  • 评估场景:前瞻性(ex ante)设定。检测器只能看到待合并的代码变更及审查上下文,后续的修正信息仅作为标签证据(label evidence),不作为输入。
  • 评估目标:对于每一个已被后续修正证实存在缺陷的变更,检测器需标记出引发该缺陷的具体代码行。每个案例(case)本身已被确认存在缺陷,因此问题不在于“是否存在缺陷”,而在于“缺陷位于何处”。

数据来源与标签生成

  • 来源:从 GitHub 上六个 Python 仓库(具备可观察的审查与集成工作流)中提取,并非随机样本,结论仅适用于该范围。
  • 标签生成方式:基于仓库历史进行机器重构(reconstruction),非人工标注的 ground truth。通过搜索历史提交,找出引入缺陷的变更并标记其中的缺陷行。
  • 标签不确定性:重构过程随机且不完美。通过人工审计(audit)抽样检查标签错误率,并以后验概率分布(posterior distributions)的形式提供。所有评估分数均带有置信区间,区间宽度反映标签误差导致的基准分辨率(resolution κ)。

数据集规模与配置

  • 规模:小于 1000 个案例(n<1K)。
  • 配置(configs):
    • labels:标签数据文件 data/labels.jsonl
    • audits:审计记录文件 data/audits.jsonl
    • cohort:仓库群体描述文件 data/cohort.jsonl
  • 语言:英语(en)。
  • 许可证:CC BY 4.0。

数据文件与结构

文件 内容
data/labels.jsonl 每个案例(审查中的 Pull Request)的标签数据,包含候选节点(candidate nodes)、节点范围、缺陷来源(provenance)及置信度分层(bin)
data/noise.json 标签错误率的后验参数,按置信度分层给出
data/audits.jsonl 人工审计的原始记录,包含案例标识、审计分类及标注者选定的行
data/cohort.jsonl 六个基准仓库的来源群体(65 个仓库)描述,包含仓库选择漏斗的各个限制条件及描述性统计指标

评估协议

  • 规范差异比较(Canonical diffs):必须使用与标签生成一致的差异比较(Myers 算法,特定配置),确保坐标兼容。
  • 信息截止点(information cutoff):每个案例记录一个 cutoff 时间点,检测器只能使用该时间点之前的信息,不得使用后续修正数据。
  • 有效预测范围:仅限规范差异比较中发生变更的 Python 代码行,且需区分删除行(base 侧)和新增行(after 侧)。上下文行、差异外文件、非 Python 文件均不属于预测域。
  • 评分方式:将提交的行投影到语法节点(syntax nodes),与标签节点进行精确跨度(span)对比,计算分类指标(如 F1)。默认对所有案例的候选节点进行池化(pooled)评估,部分指标(如 MRR)按案例单独计算并平均。

仓库群体(Cohort)选择流程

基准仓库从 65 个仓库的群体中分层抽样得到,该群体源于一个严格的构建漏斗:

阶段 筛选条件
平台事件 GitHub 平台(9,345 个候选)
仓库选择 保留 1,090 个
集成分支重构 保留 812 个
审查纪律画像 保留 130 个
集成门禁执行 保留 65 个
审计样本 按讨论率分层,每层抽取 2 个仓库(共 6 个)

单个仓库记录包含:审查合规分数、稳定审查概率、绕过合并比例、合并与审查者统计、仓库规模(源代码行数、核心贡献者数、仓库月龄)、参与率与分层信息。

相关资源

  • CoReDD Corpus(https://huggingface.co/datasets/witrin/coredd-corpus):包含冻结的仓库历史及 GitHub 审查上下文,提供标签重构和评估所需的原始数据与规范差异比较文件。
搜集汇总
数据集介绍
coredd-bench 数据集图片
构建方式
CoReDD Bench基于六个人工审查与集成流程可见的Python仓库构建,从65个候选仓库中分层抽样后,通过追溯事后修正记录重建代码审查中的缺陷标注。具体而言,对于每次集成后观察到的修正,算法在提交历史中搜索引入缺陷的变更,并标记其中导致修正的代码行,最终形成候选节点级别的标签集。重建过程具有随机性,经由单一人工审计者对样本进行错误率核查,并将审计得出的后验分布嵌入数据中,使得每项评估指标均伴随着不确定性区间。
特点
该数据集的核心特点在于将缺陷检测定位于事前景象:检测器仅能基于合并前的变更与审查上下文进行预测,而事后修正仅作为标签证据,不构成输入。标签源自历史追踪而非人工标注,因此引入了不确定性量化机制——每项指标均值与2.5%至97.5%分位数区间共同输出,区间宽度即基准分辨率κ,代表在当前标签误差下可区分的性能差异下限,且随检测器能力动态变化,在节点粒度下F1的κ值始终低于0.04直至AUC达0.9。
使用方法
用户可通过HuggingFace下载基准包及配套的CoReDD Corpus仓库历史,安装后加载Benchmark对象,将检测器输出的缺陷位置以路径、行号与差异侧的形式构建为Line对象,按case键组织后传入evaluate方法。投影模块自动将提交行映射至语法节点,并执行蒙特卡洛扰动以纳入标签不确定性。支持任意遵循`metric(y_true, y_pred)`接口的分类指标,以及提供score属性的排序指标(如MRR)。评估默认采用跨case池化节点计算,也可切换为逐case等权平均。
背景与挑战
背景概述
CoReDD Bench 数据集由相关研究团队于近期构建,旨在解决代码审查中缺陷定位的测量问题。该数据集通过从代码仓库历史中重构标签,并引入不确定性量化机制,为评估检测器在合并前的代码变更中识别缺陷行的能力提供了一个标准化基准。其核心研究问题聚焦于如何在前瞻性设置下(即仅利用变更前的信息)准确评估缺陷定位模型的性能,并量化标签噪声对评估结果的影响。数据集筛选自六个具有严格审查与集成流程的 Python 开源仓库,其构建过程严格把控代码审查纪律、分支稳定性等维度,确保了评估结果的可靠性。CoReDD Bench 通过提供标签、不确定性模型及评估代码,为代码缺陷检测领域的研究提供了重要的定量分析工具,推动了该领域从定性分析向可量化、可复现评估的转变。
当前挑战
CoReDD Bench 面临的核心挑战在于解决代码缺陷检测领域中标签噪声与评估可靠性的矛盾。领域问题层面,现有缺陷检测任务通常依赖人工标注的真实标签,但在代码审查场景中,缺陷的引入与修正之间存在时间差,导致难以获得精确的、事前的真实标签,传统指标(如准确率)因标签不确定性而丧失判别力。构建过程中,数据集通过从后期修正历史中重构标签,但这一过程本质上是随机且不完美的,引入了人工审计所揭示的误差。为解决这一挑战,数据集创新性地引入了蒙特卡洛扰动方法,将标签误差率作为后验分布传播到评估指标中,使得每个评估分数都附带置信区间,从而衡量比较结果的统计显著性。此外,构建过程还面临严格的协议约束,包括规范化的差分比对、信息截止时间点控制以及预测位置的语法节点投影,这些约束旨在消除实验歧义,但同时也对检测器的输入精度和可复现性提出了极高要求。
常用场景
经典使用场景
在软件工程与代码审查的交叉领域中,CoReDD Bench被设计为评估缺陷检测模型事前性能的基准测试集。该数据集聚焦于代码合并前的审查环节,要求检测模型仅依据变更代码及其审查上下文(如Pull Request、评论、问题等时间戳严格早于截止点的信息),定位出后续导致修复操作的缺陷行。经典使用方式为:模型输出变更行级的缺陷定位坐标,经语法节点投影后与重构标签进行比对,并通过蒙特卡洛扰动传播标签不确定性,最终以带置信区间的F1分数或平均倒数排名等指标衡量模型效果。这一设定严格区分了检测模型的输入信息与用作标签的事后修复证据,确保了评估的前瞻性与公平性。
衍生相关工作
CoReDD Bench的发布催生了一系列衍生研究工作。其底层语料库CoReDD Corpus保留了冻结的仓库历史与审查上下文,为代码审查过程建模、变更级缺陷预测等任务提供了结构化数据源。标签重构与不确定性量化方法启发了后续研究,例如将贝叶斯噪声模型引入软件缺陷数据集的构建中,或设计更鲁棒的评估指标以应对标签噪声。此外,数据集对审查纪律的分层抽样策略(如参与率分层)被借鉴用于研究不同协作水平下缺陷检测效果的泛化性。这些衍生工作共同推动了代码审查自动化领域的评估方法论从单一性能指标向不确定性感知的跨模型比较发展。
数据集最近研究
最新研究方向
CoReDD Bench为代码审查中的缺陷检测提供了一种革命性的评估范式,其核心突破在于将标签噪声量化融入基准测试体系。该数据集通过重构提交历史中的修正记录,逆向映射出变更引入缺陷的精确位置,并引入专家审计的误差率作为后验分布,使得评测结果以置信区间的形式呈现,而非传统的点估计。这一设计精准回应了软件工程领域长期存在的标注可靠性困境——由于代码缺陷的识别本身具有主观性和不完整性,传统基准的“黄金标准”标签往往隐含系统性偏差。通过蒙特卡洛扰动传播标签不确定性,CoReDD Bench能够量化不同缺陷检测器之间的性能差异是否具有统计显著性,其分辨率κ指标更成为衡量评测可信度的关键标尺。这一方法论不仅推动了代码审查自动化评估的科学化,也为自然语言处理、图像分类等面临类似噪声挑战的领域提供了可迁移的理论框架。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务