bacardi-breaking-update-repair
收藏资源简介:
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.
Bacardi Breaking-Update Repair 数据集概述
该数据集记录了在 Bacardi 基准上对五个自托管、开放权重的大语言模型(LLM)进行评估的结果,任务是自动修复因上游依赖更新而构建失败的 Java 项目。
基准与实验设置
- 基准来源:103 个真实世界的 Java “破坏性更新”提交(源自 chains-project/breaking-updates 语料库)
- 修复尝试:每个案例仅进行一次修复尝试(MAX_ATTEMPT=1)
- 提示管线条目:共 8 种 Bacardi 提示策略,包括
baseline、baseline-cot、baseline-cot-buggy、baseline-buggy-line、baseline-api-diff、baseline-api-diff-buggy、baseline-cot-api-diff、baseline-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-diff、baseline-cot-api-diff)不仅在平均准确率上更高,且运行间一致性也明显更好,表明额外上下文可降低模型对采样噪声的敏感性
数据字段(每条尝试记录)
每条修复尝试记录包含:
- 基础信息:
model(模型)、pipeline(管线)、round(仅 Qwen3.5-4B,取值为 1–5)、case_hash(破坏性更新提交哈希) - 结果判断:
success(是否成功)、failure_category(失败类别,包括BUILD_SUCCESS、COMPILATION_FAILURE、DEPENDENCY_RESOLUTION_FAILURE、ERROR_MODEL_RESPONSE、TEST_FAILURE等) - 错误详情:
prefix_errors/postfix_errors(模型修复前后的编译错误)、fixed_errors/unfixed_errors/new_errors(修复的错误数、未修复的错误数、新引入的错误数) - 完整产物:发送给模型的提示、模型的原始与提取后响应、生成的 diff,以及修复前后的编译错误日志
基础设施
所有五个模型均通过 vLLM 在 A100 GPU(Berzelius / NSC,瑞典)上本地服务,未调用任何第三方 API,除集群自身的计算时数分配外无额外计费成本。





