An LLM-as-Judge Metric for Bridging the Gap with Human Evaluation in SE Tasks
作者: Xin Zhou, Kisub Kim, Ting Zhang, Martin Weyssow, Luis F. Gomes, Guang Yang, Kui Liu, Xin Xia, David Lo
分类: cs.SE, cs.AI, cs.CL
发布日期: 2025-05-27 (更新: 2025-10-10)
备注: 13 pages
💡 一句话要点
提出SE-Jury,一种基于LLM集成裁判的软件工程任务评估指标,更贴近人工评估。
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: LLM评估 软件工程 代码生成 程序修复 代码摘要 自动评估指标 集成学习
📋 核心要点
- 现有软件工程任务的自动评估指标难以准确反映生成工件的真实质量,与人工评估存在较大差距。
- SE-Jury通过集成多个LLM裁判,并采用动态团队选择机制,综合评估代码生成、修复和摘要等任务的输出质量。
- 实验表明,SE-Jury与人工评估的相关性显著提高,在代码生成和程序修复任务中接近人工标注者之间的一致性。
📝 摘要(中文)
大型语言模型(LLMs)和其他自动化技术越来越多地被用于支持软件开发人员,例如生成代码片段、补丁和注释。然而,准确评估这些生成工件的正确性仍然是一个重大挑战。一方面,人工评估提供高准确性,但劳动密集且缺乏可扩展性。另一方面,许多自动评估指标具有可扩展性,并且只需要最少的人工干预,但它们通常无法准确反映生成软件工件的实际正确性。本文提出了SE-Jury,这是第一个专门为准确评估生成软件工件的正确性而设计的LLM集成裁判评估指标。SE-Jury首先定义了五种不同的评估策略,每种策略都由一个独立的裁判实现。然后,动态团队选择机制识别最合适的裁判子集作为一个团队,通过集成产生最终的正确性评分。我们在涵盖三个流行的软件工程(SE)任务(代码生成、自动程序修复和代码摘要)的各种软件工程基准上评估了SE-Jury。结果表明,SE-Jury始终与人工判断具有更高的相关性,与现有自动指标相比,改进幅度从29.6%到140.8%不等。SE-Jury与代码生成和程序修复中的人工标注者达成了一致意见,接近于标注者之间的协议水平。这些发现强调了SE-Jury作为这些SE任务中人工评估的可扩展且可靠的替代方案的潜力。
🔬 方法详解
问题定义:论文旨在解决软件工程(SE)任务中自动评估指标与人工评估结果不一致的问题。现有自动评估指标无法准确衡量代码生成、程序修复和代码摘要等任务中生成工件的质量,导致评估结果与开发人员的实际感受存在偏差。这种不一致性阻碍了自动化技术在软件开发中的有效应用。
核心思路:论文的核心思路是将大型语言模型(LLMs)作为集成裁判,通过多个不同的评估策略对生成工件进行综合评估。借鉴陪审团制度,每个裁判从不同角度评估工件的质量,并通过动态团队选择机制选择最合适的裁判组合,最终给出综合评分。这种集成评估的方式旨在更全面、更准确地反映生成工件的真实质量。
技术框架:SE-Jury的整体框架包含以下几个主要模块:1) 裁判定义:定义五种不同的评估策略,例如功能正确性、代码质量、可读性等,并使用LLM实现每个裁判。2) 工件评估:每个裁判独立评估生成工件,并给出相应的评分。3) 动态团队选择:根据任务类型和工件特点,选择最合适的裁判子集组成评估团队。4) 集成评分:将团队中各个裁判的评分进行集成,得到最终的综合评分。
关键创新:SE-Jury的关键创新在于其LLM集成裁判和动态团队选择机制。传统的自动评估指标通常只关注单一维度的评估,而SE-Jury通过集成多个LLM裁判,可以从多个角度综合评估生成工件的质量。动态团队选择机制则可以根据任务类型和工件特点,选择最合适的裁判组合,从而提高评估的准确性。
关键设计:论文中关键的设计包括:1) 五种评估策略的具体定义和LLM实现方式。2) 动态团队选择机制的算法,例如基于任务类型和工件特征选择裁判的策略。3) 集成评分的方法,例如加权平均或投票等。具体的参数设置和损失函数等技术细节在论文中可能没有详细描述,属于未知信息。
🖼️ 关键图片
📊 实验亮点
实验结果表明,SE-Jury在代码生成、自动程序修复和代码摘要三个任务上均取得了显著的性能提升。与现有自动评估指标相比,SE-Jury与人工评估的相关性提高了29.6%到140.8%。在代码生成和程序修复任务中,SE-Jury与人工标注者达成了一致意见,接近于人工标注者之间的一致性水平。
🎯 应用场景
SE-Jury可应用于各种软件工程任务的自动评估,例如代码生成、程序修复、代码摘要、代码翻译等。它可以作为人工评估的替代方案,降低评估成本,提高评估效率。此外,SE-Jury还可以用于优化代码生成模型,提高生成代码的质量,加速软件开发过程。
📄 摘要(原文)
Large Language Models (LLMs) and other automated techniques have been increasingly used to support software developers by generating software artifacts such as code snippets, patches, and comments. However, accurately assessing the correctness of these generated artifacts remains a significant challenge. On one hand, human evaluation provides high accuracy but is labor-intensive and lacks scalability. On the other hand, many automatic evaluation metrics are scalable and require minimal human effort, but they often fail to accurately reflect the actual correctness of generated software artifacts. In this paper, we present SE-Jury, the first evaluation metric for LLM-as-Ensemble-Judge specifically designed to accurately assess the correctness of generated software artifacts. SE-Jury first defines five distinct evaluation strategies, each implemented by an independent judge. A dynamic team selection mechanism then identifies the most appropriate subset of judges as a team to produce a final correctness score through ensembling. We evaluate SE-Jury across a diverse set of software engineering (SE) benchmarks that span three popular SE tasks: code generation, automated program repair, and code summarization. Results demonstrate that SE-Jury consistently achieves a higher correlation with human judgments, with improvements ranging from 29.6% to 140.8% over existing automatic metrics. SE-Jury reaches agreement levels with human annotators that are close to inter-annotator agreement in code generation and program repair. These findings underscore SE-Jury's potential as a scalable and reliable alternative to human evaluation in these SE tasks.