遇见数据集

bacardi-breaking-update-repair

收藏
Hugging Face2026-09-04 更新2026-09-05 收录
官方服务:

资源简介:

Bacardi Breaking-Update Repair 数据集记录了五个开源大语言模型在Bacardi基准测试上的自动修复结果。该基准测试旨在评估模型自动修复因上游依赖更新而破坏的Java项目的能力。数据集包含103个真实世界Java项目的“破坏性更新”提交(来自 chains-project/breaking-updates 语料库),每个案例只进行一次修复尝试(MAX_ATTEMPT=1)。评估使用了8种不同的提示策略,包括基线、链式思考、错误行提示、API差异上下文等不同组合。四个模型(Ministral 3 14B、Ministral 3 3B、Gemma 4 E4B、Gemma 4 12B)在temperature 0.0下运行一次;Qwen3.5-4B由于在temperature 0.0下出现循环推理问题,改为在temperature 0.7下运行5轮以评估轮次间方差。每条修复记录包含模型名称、提示策略、轮次(仅Qwen3.5-4B)、案例哈希、是否成功、失败类别、修复前后的编译错误信息、修复的错误数、未修复的错误数、新引入的错误数,以及完整的提示、模型原始响应、提取的响应、生成的差异和编译错误日志。所有模型通过vLLM在瑞典Berzelius(NSC)HPC集群的A100 GPU上本地运行,未调用第三方API。

The Bacardi Breaking-Update Repair dataset records the automatic repair results of five open-source large language models on the Bacardi benchmark. This benchmark aims to evaluate the models ability to automatically repair Java projects broken by upstream dependency updates. The dataset contains 103 real-world Java project breaking-update commits (from the chains-project/breaking-updates corpus), with each case having only one repair attempt (MAX_ATTEMPT=1). The evaluation uses 8 different prompt strategies, including baseline, chain-of-thought, error line prompting, API diff context, and other combinations. Four models (Ministral 3 14B, Ministral 3 3B, Gemma 4 E4B, Gemma 4 12B) are run once at temperature 0.0; Qwen3.5-4B, due to circular reasoning issues at temperature 0.0, is run for 5 rounds at temperature 0.7 to assess inter-round variance. Each repair record includes model name, prompt strategy, round (only for Qwen3.5-4B), case hash, success status, failure category, compilation error information before and after repair, number of fixed errors, number of unfixed errors, number of newly introduced errors, as well as the full prompt, model raw response, extracted response, generated diff, and compilation error log. All models are run locally on A100 GPUs of the Swedish Berzelius (NSC) HPC cluster via vLLM, without calling any third-party API.

创建时间:
2026-09-02
原始信息汇总

Bacardi Breaking-Update Repair 数据集概述

该数据集记录了在 Bacardi 基准上对五个自托管、开放权重的大语言模型(LLM)进行评估的结果,任务是自动修复因上游依赖更新而构建失败的 Java 项目。

基准与实验设置

  • 基准来源:103 个真实世界的 Java “破坏性更新”提交(源自 chains-project/breaking-updates 语料库)
  • 修复尝试:每个案例仅进行一次修复尝试(MAX_ATTEMPT=1)
  • 提示管线条目:共 8 种 Bacardi 提示策略,包括 baselinebaseline-cotbaseline-cot-buggybaseline-buggy-linebaseline-api-diffbaseline-api-diff-buggybaseline-cot-api-diffbaseline-cot-api-diff-buggy,组合了链式思维提示、错误行指针和 API 差异上下文
  • 解码参数:四个模型使用 temperature 0.0;Qwen3.5-4B 因无法在 temperature 0.0 下运行,改为在 temperature 0.7 下对每个管线运行 5 次,以刻画运行间方差

模型信息

模型 参数规模 许可证 上下文长度 解码方式
Ministral 3 14B 14B Apache 2.0 128K temp 0.0
Ministral 3 3B 3B Apache 2.0 256K temp 0.0
Gemma 4 E4B ~4B effective Apache 2.0 128K temp 0.0
Gemma 4 12B 12B Apache 2.0 256K temp 0.0

主要结果(temperature 0.0)

在 103 个案例、8 个管线下的总体成功率:

  • Gemma 4 12B:146/824(17.7%)
  • Ministral 3 14B:101/822(12.3%)
  • Gemma 4 E4B:86/822(10.5%)
  • Ministral 3 3B:38/824(4.6%)

其中,baseline-api-diff-buggy 管线在 Gemma 4 12B 上表现最佳(22/103,21.4%),Ministral 3 14B 在该管线也获得其最高分(16/103,15.5%)。

Qwen3.5-4B 的单独评估(temperature 0.7, 5 轮)

背景:Qwen3.5-4B 和 Qwen3.5-9B 在 temperature 0.0 下会在其自身推理轨迹中循环,无法在相当比例的案例上产生可用修复,该现象可复现,非个别案例问题,被视为 Qwen3.5 推理模板的特性而非规模问题。temperature 0.7 可规避此问题。

  • 聚合成功率:427/4120(10.4%)
  • 管线表现范围baseline 最低(32/515,6.2%),baseline-api-diff 最高(65/515,12.6%)
  • 运行间变异性baseline 的变异系数最高(32.4%),且平均成功率也最低;提供更多上下文信息的管线(如 baseline-api-diffbaseline-cot-api-diff)不仅在平均准确率上更高,且运行间一致性也明显更好,表明额外上下文可降低模型对采样噪声的敏感性

数据字段(每条尝试记录)

每条修复尝试记录包含:

  • 基础信息model(模型)、pipeline(管线)、round(仅 Qwen3.5-4B,取值为 1–5)、case_hash(破坏性更新提交哈希)
  • 结果判断success(是否成功)、failure_category(失败类别,包括 BUILD_SUCCESSCOMPILATION_FAILUREDEPENDENCY_RESOLUTION_FAILUREERROR_MODEL_RESPONSETEST_FAILURE 等)
  • 错误详情prefix_errors/postfix_errors(模型修复前后的编译错误)、fixed_errors/unfixed_errors/new_errors(修复的错误数、未修复的错误数、新引入的错误数)
  • 完整产物:发送给模型的提示、模型的原始与提取后响应、生成的 diff,以及修复前后的编译错误日志

基础设施

所有五个模型均通过 vLLM 在 A100 GPU(Berzelius / NSC,瑞典)上本地服务,未调用任何第三方 API,除集群自身的计算时数分配外无额外计费成本。

搜集汇总
数据集介绍
bacardi-breaking-update-repair 数据集图片
构建方式
该数据集源于对Java项目在依赖更新引发的破坏性变更进行自动修复的实证研究,基于chains-project/breaking-updates语料库中103个真实世界的破坏性更新提交构建。评估过程涵盖五款自托管开源权重的大语言模型,每款模型在八个Bacardi提示策略下进行单次修复尝试,这些策略巧妙组合了思维链提示、缺陷行定位与API差异上下文。解码策略上,四款模型采用温度0.0的确定性生成,而Qwen3.5-4B因在零温度下陷入推理循环,改为温度0.7下进行五轮独立运行以刻画变异。所有推理在瑞典NSC的Berzelius集群上通过vLLM本地部署完成,不依赖第三方API调用。
特点
该数据集的核心特色在于其精细的修复结果分类与详尽的元数据记录。每条修复尝试均包含模型、提示策略、轮次、案例哈希、成功率及失败类别(如编译失败、依赖解析失败、模型响应错误等),并保留完整的编译前后错误信息。尤为珍贵的是,它提供了完整的过程工件,包括发送给模型的提示、原始与提取后的响应、生成的差异补丁以及编译日志,为深入分析模型行为提供了丰富素材。此外,针对Qwen3.5-4B的多轮运行数据揭示了不同提示策略下成功率波动性的显著差异,其中基线策略的变异系数高达32.4%,凸显了随机解码对评估稳定性的影响。
使用方法
本数据集主要面向大语言模型在代码修复任务上的评估与对比研究。研究者可依据模型与提示策略维度筛选记录,复现并验证各模型在破坏性依赖更新场景下的修复能力。通过分析失败类别分布,能够洞察模型在编译错误、依赖解析等环节的薄弱点。数据集包含的完整工件支持细粒度的错误追踪与模型输出解剖,便于进行修复质量的多维度评估。对于比较不同模型在温度0.0下的结果,建议参考汇总成功率;而涉及Qwen3.5-4B的对比,则需结合五轮平均数据与变异范围,以规避单轮结果的不确定性误导。
背景与挑战
背景概述
在软件生态系统中,依赖库的持续演进常引入破坏性变更,导致下游Java项目构建失败,这一现象被称为“破坏性依赖更新”。为缓解此类问题,自动化程序修复技术应运而生,但现有基准多为合成故障,难以反映真实场景。Bacardi基准源自chains-project/breaking-updates语料库,精选103个真实世界的破坏性更新提交,旨在评估大型语言模型自动修复此类缺陷的能力。该基准由瑞典林雪平大学国家超算中心(NSC)的Berzelius集群支持,通过本地vLLM部署模型,规避第三方API依赖。研究团队系统评估了五个开源权重大型语言模型(包括Ministral 3 14B/3B、Gemma 4 12B/E4B及Qwen3.5-4B),综合运用八种提示策略,涵盖思维链、缺陷行定位及API差异信息,以高保真度刻画模型修复性能。该工作为LLM时代程序修复研究提供实证基础,促进了鲁棒修复策略的开发。
当前挑战
Bacardi基准所面临的挑战涵盖领域核心难题与构建过程双重维度。领域层面,破坏性依赖更新涉及API语义迁移与编译错误根源追溯,需模型在有限上下文中理解版本演进逻辑,修复难度高。构建过程中,为模拟真实环境,基准需从海量提交中筛选高代表性案例,并确保编译错误复现的一致性与端到端评估的可重复性。此外,解码策略的脆弱性构成独特技术壁垒:部分模型(如Qwen3.5)在贪婪解码时陷入思维循环,迫使采用更高温度采样,引入运行间方差,亟需标准化聚合方法。同时,多模型多管线的评估矩阵带来计算资源开销与结果比较的统计学挑战,尤其低成功率下区分噪声与真实性能的可靠性。这些挑战共同制约着基准的可信度与可推广性。
常用场景
经典使用场景
该数据集围绕Java项目因上游依赖更新引发的构建断裂问题,系统性地评估了多种开源大语言模型在自动修复场景下的性能。其经典使用方式为:针对103个真实世界中的破坏性更新提交,在八种不同的提示策略(涵盖思维链、缺陷行提示、API差异上下文及其组合)下,为每个案例生成一次修复尝试,并记录修复成败、失败类别以及编译错误变迁等细粒度信息。研究者可借此基准对模型进行标准化评估,比较不同模型与提示工程方法的修复效能,从而推动代码修复领域的技术进步。
实际应用
在实际应用层面,该数据集可直接服务于持续集成与软件维护的自动化工具链。其评估结果揭示了当前模型在真实项目中修复依赖引发错误的成功率,并指明了何种提示信息(如增加API差异或错误位置)能有效提升修复效果,从而为开发者选择或配置自动修复代理提供了实践指南。此外,该数据集还可用于研发更稳健的代码修复系统,通过与vLLM等推理框架的结合,支持在离线环境中对修复模型进行压力测试与调优,最终助力降低软件开发中依赖更新的人力成本与周期风险。
衍生相关工作
该数据集催生了针对大语言模型修复能力的一系列深度分析工作。其记录的运行方差数据(如Qwen3.5-4B在不同温度下的表现波动)引发了关于解码策略与模型稳定性之间的探讨,衍生出如何通过上下文增强来降低采样噪声的研究方向。同时,对失败模式的分类(如编译失败、依赖解析失败)为故障根因分析提供了素材,推动了针对特定错误类型的定制化提示设计。此外,该数据集亦可作为训练与微调专用修复模型的基础语料,其真实世界的提交案例与详尽修复产物,为后续构建更智能、上下文感知的自动程序修复系统铺平了道路。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务