← 最新论文
🤖 machine learning

Merge-Bench: Resolve Merge Conflicts with Large Language Models

本文介绍了 Merge-Bench,这是一个大规模的真实世界合并冲突数据集,并提出了 LLMergeJ,这是一个使用组相对策略优化训练的特定于 Java 的模型,其性能优于多个商业大语言模型,尽管即使是当前表现最佳的模型在 11 种编程语言中解决的冲突比例也低于 60%。

原作者: Benedikt Schesch, Michael D. Ernst

发布于 2026-05-26
📖 1 分钟阅读☕ 轻松阅读

原作者: Benedikt Schesch, Michael D. Ernst

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你正在参与一个小组项目,其中两位朋友同时编辑同一份文档。朋友 A 修改了一个段落,朋友 B 也修改了完全相同的段落。当你尝试合并他们的工作时,计算机感到困惑并大喊:“我不知道该保留哪个版本!”这种情况被称为合并冲突

通常,需要人类介入,阅读两个版本,弄清楚朋友们实际上想要做什么,然后手动修复混乱。这既耗时又可能导致错误。

本文介绍了一种新方法,利用“智能”人工智能(大语言模型)来教会计算机自动修复这些混乱。以下用通俗易懂的方式分解他们的工作:

1. 问题所在:计算机一无所知

传统工具就像一个只关注字母的机器人。如果朋友 A 写了“猫”,而朋友 B 写了“狗”,机器人只会看到冲突。它无法理解他们可能是在讨论宠物,或者其中一个是拼写错误。它需要人类来解释意图

2. 解决方案:新的训练场(Merge-Bench)

要教会人工智能修复这些冲突,你需要一个庞大的示例库,展示“这里是混乱,而这里是人类专家如何修复的”。

  • 旧方法:其他研究人员曾尝试通过手工制作这些库或运行测试来构建它们。这既缓慢又昂贵,而且有时人工智能会“作弊”,通过死记硬背测试答案而不是学习如何修复代码。
  • 新方法(Merge-Bench):作者构建了一个名为Merge-Bench的巨型自动化库。他们从 GitHub 上 1,439 个不同的公共代码项目中抓取了 7,938 个真实世界的冲突案例。
    • 类比:想象一位老师不需要手工批改每一份作业。相反,他们拥有一台机器,能自动抓取 8,000 个学生犯错及老师给出正确答案的真实案例。由于机器完成了所有工作,他们就能拥有一个巨大且永不枯竭的库。

3. 学生:LLMergeJ

作者训练了一个名为LLMergeJ的特定人工智能模型(其中的"J"代表他们重点关注的编程语言 Java)。

  • 他们如何教导它:他们并没有像普通老师那样只向模型展示答案,而是使用了一种称为强化学习的方法。
    • 类比:这就像训练一只狗。如果狗猜对了技巧,它就得到奖励;如果猜错了,就什么也没有;如果它拒绝猜测而只是说“我不知道”(即保留冲突),它就得到一点点碎屑。
    • 人工智能尝试了数千次。当它找到正确合并代码的方法时,它就获得了巨大的奖励。随着时间的推移,它学到的不仅仅是答案看起来是什么,而是如何思考以得出答案。

4. 结果:小狗,大把戏

他们将这个拥有 140 亿参数的模型(在人工智能标准中相对较小)与目前可用的最大、最昂贵的商业人工智能模型(如 Gemini、Claude 和 Grok)进行了测试。

  • 令人惊讶的是:他们这个经过专门训练的小型模型表现优于几乎所有巨型商业模型。在忽略细微格式差异后,它正确解决了约**59%**的冲突。
  • 对比:表现最好的商业模型(Gemini 2.5 Pro)略胜一筹,但作者的模型以显著优势击败了其他模型。
  • 启示:一个专门针对如何修复合并冲突并通过奖励机制进行训练的小型模型,比一个被要求一次性完成该任务的庞大通用模型更出色。

5. 为什么这很重要

  • 杜绝作弊:他们的测试方法不依赖于运行代码测试(人工智能有时能钻空子),而是直接将代码与人类开发者实际所做的内容进行对比。
  • 可扩展性:由于他们不需要人类来标注数据,因此可以将训练集扩大到他们想要的任何规模。
  • 语言无关性:虽然他们仅在 Java 上训练了模型,但他们在 11 种不同语言(C、Python、Rust 等)上测试了大型商业模型。他们发现人工智能在所有语言中的表现相似,这表明他们的方法适用于任何编程语言。

总结

作者建立了一个巨大的自动化健身房(Merge-Bench),用来训练一位特定的人工智能运动员(LLMergeJ)解决代码冲突。通过基于奖励的训练系统,他们教会了一个相对较小的人工智能,使其在该特定任务上超越了最大、最昂贵的人工智能模型,证明了在修复软件混乱方面,专门的训练胜过单纯的规模。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →