Agent-as-a-Judge:用智能体系统评估智能体系统

原文链接:https://arxiv.org/abs/2410.10934
代码链接:https://github.com/metauto-ai/agent-as-a-judge
数据集链接:https://huggingface.co/DEVAI-benchmark
参考文献:Agent-as-a-Judge: Evaluate Agents with Agents by Zhuge et al. arXiv:2410.10934

📖阅读时长:19分钟

🕙发布时间:2025-02-12

近日热文:全网最全的神经网络数学原理(代码和公式)直观解释
欢迎关注知乎和公众号的专栏内容
LLM架构专栏
知乎LLM专栏
知乎【柏企
公众号【柏企科技说】【柏企阅文

目前的评估方法要么只关注最终结果——忽视了代理系统循序渐进的特性,要么需要大量的人工劳动。在本文中,作者介绍了“Agent-as-a-Judge”框架,即利用智能体系统来评估智能体系统。这是“LLM-as-a-Judge”框架的有机扩展,融入了智能体功能,能够在整个任务解决过程中提供中间反馈。在此,“Agent-as-a-Judge”框架被应用于代码生成任务。

关键贡献

  • 发布了DevAI数据集,该数据集包含55个综合性AI开发任务,并配有标签、单个分层要求和个人偏好。
  • 在DevAI数据集中对三个顶级开源代码生成智能体框架进行基准测试,比以往对它们的评估更全面。
  • 引入了通用的“Agent-as-a-Judge”概念,使智能体系统能够在无需传统人力参与成本的情况下,进行公平且丰富的评估。
  • 研究表明,在概念验证中,“Agent-as-a-Judge”优于“LLM-as-a-Judge”,并且性能与人类评估者相当。

下图展示了“Agent-as-a-Judge”框架,即使用智能体系统来评估智能体系统。我们将其与“LLM-as-a-Judge”(使用大语言模型评估大语言模型,“Agent-as-a-Judge”是它的自然演进)和“Human-as-a-Judge”(由专业人员手动评估智能体系统)进行比较。

DevAI:用于自动化AI开发的数据集

DevAI数据集

DevAI由精心挑选的55个任务组成,每个任务由以下部分定义:

  • 一段描述AI开发任务的纯文本用户查询。
  • 一组纯文本要求(总共365个要求),每个要求都有一组将其与其他要求连接起来的依赖关系。
  • 一组偏好(总共125个偏好),代表更软性的要求。

DevAI的结构设计为:智能体系统从接收用户查询开始开发。然后,根据系统满足要求的程度进行评估,偏好作为可选的、较软性的标准。下图展示了DevAI任务之一的示例。

如图所示,任务都带有标签,涵盖了AI领域的多个关键方面:监督学习、强化学习、计算机视觉、自然语言处理、生成模型等。

初步基准测试

  • 测试了三个最受欢迎的开源框架(称为“AI开发者”):MetaGPT、GPT-Pilot和OpenHands。
  • 使用gpt-4o-2024-05-13作为后端引擎的大语言模型,每个AI开发者有1800秒的时间来解决每个任务,如果超过这个时间限制,将被强制停止。

下表展示了AI开发者的初步统计数据。

  • MetaGPT成本效益最高(1.19美元),而OpenHands成本最高(6.38美元)。
  • 在开发时间方面,OpenHands平均362.41秒完成任务,而GPT-Pilot耗时最长,为1622.38秒。
  • 平均而言,使用这三个框架之一对DevAI进行完整评估,大约需要210.65美元和14小时。
  • 在运行过程中,GPT-Pilot生成的输出令牌最多,为59707个,而OpenHands处理的令牌最多,为1252482个,但生成的输出令牌最少,为8457个。这表明OpenHands的内部通信更为复杂,但在决策上更简洁。
  • MetaGPT虽然成本效益最高,但生成的保存代码文件较少(0.42个),这表明它可能不太倾向于保存文件。相比之下,GPT-Pilot生成的保存文件最多(3.84个),反映出其输出更丰富。

Human-as-a-Judge:对DevAI的人工评估

由Human-as-a-Judge确定的基准基线

在获得基线执行结果并进行基本统计分析后,我们有三位专业的人类评估者(此处用匿名名称231a、38bb和cn90指代)审查AI开发者基线的输出,以评估每个要求是否得到满足。

我们进行了两轮人工评估,实验结果如下表所示,(I)和(D)分别代表独立性能和考虑任务依赖关系的性能。多个专家参与评估,白色方块图标表示评估采用白盒测试。

经发现,表现最佳的两种方法(GPT-Pilot和OpenHands)能够满足约29%的要求(如果忽略前提条件,则约为44%),但只有在一个任务上它们能够满足所有要求。这突出表明,DevAI为当前和未来的方法提供了相当具有挑战性但又合适的难度水平。

评判Human-as-a-Judge

分歧分析

为了分析归纳偏差的存在以及“Human-as-a-Judge”的可靠性,我们计算了各个评估者之间的分歧率。结果表明,评估者之间的分歧率在10%到30%左右。由于完整的AI开发任务较为复杂,通常涉及多个步骤,且每个步骤的结果各不相同,当关键信息缺失时,人类很容易出错,例如环境反馈表明存在虽小但严重的编码错误或漏洞。

错误分析

评估者在初步评估后进行了一轮辩论,直到对每个任务中的每个要求达成共识。在我们的“Human-as-a-Judge”流程中,评估者可能会被他人提供的证据说服,并承认自己的判断错误,从而相应地调整答案。

下图展示了个人评估与共识评估之间的不匹配情况。特别地,多数投票分类器与共识评估的偏差最小。

从结果可以看出,尽管所有评估者都出现了明显的错误,但多数投票有效地纠正了大部分错误。cn9o犯的错误最多(例如,在评估GPT-Pilot时错误率为23.77%)。在应用三位评估者的多数投票后,总体错误率降至6.01%,这证明了多数投票的内在优势。

结论

为了减少人为判断错误,建议两种方法:

  • 首先,就像在本研究中一样,在每次判断后引入辩论环节,个人在辩论中展示证据,经过讨论后要么说服他人,要么调整自己的观点。当评估者数量较少时,这一点尤为重要,因为少数人的多数投票仍可能导致错误(与共识评估相比,错误率约为5%)。
  • 第二种方法是组建一个更大的专家小组(当专家的准确率超过50%时,人数越多越好),并依赖多数投票。

Agent-as-a-Judge:用智能体评估智能体

人工评估虽然在一定程度上可靠,但耗时且需要大量专业知识。为了解决这个问题,本文提出了“Agent-as-a-Judge”框架。

概念验证

设计了八个模块化的、相互作用的组件,这些组件构成了“Agent-as-a-Judge”概念验证的基础。下图展示了“Agent-as-a-Judge”的初始示意图。

  • 图模块:构建一个图,捕获项目的整个结构,包括文件、模块和依赖关系。它还可以将代码块分解为代码片段。
  • 定位模块:识别要求所指的特定文件夹或文件。
  • 读取模块:不仅仅是简单的文件解析,支持读取和理解33种不同格式的多模态数据,包括代码、图像、视频和文档。这使得智能体能够交叉引用各种数据流,并验证不同类型的要求。
  • 搜索模块:提供对代码的上下文理解,能够快速检索高度相关的代码片段以及其背后的细微差别(例如隐藏的依赖关系)。
  • 检索模块:从长文本中提取信息,识别轨迹中的相关部分。
  • 询问模块:结合上述阶段的上下文,判断给定的要求是否得到满足。
  • 记忆模块:存储历史判断信息,使智能体能够在过去评估的基础上进行评估。
  • 规划模块:规划后续行动,使智能体能够根据当前状态和项目目标制定策略并安排任务顺序。

“Agent-as-a-Judge”的操作流程如下图所示。

评判Agent-as-a-Judge和LLM-as-a-Judge

判断偏差(Judge Shift)

判断偏差衡量与“Human-as-a-Judge”共识结果的偏差,值越低表示一致性越高。下表将“LLM-as-a-Judge”和“Agent-as-a-Judge”的结果与“Human-as-a-Judge”进行了比较。(I)代表独立任务的性能,而(D)代表考虑任务依赖关系的性能。“Agent-as-a-Judge”在各个任务上始终优于“LLM-as-a-Judge”,尤其是在有任务依赖关系的任务上。

对齐率(Alignment Rate)

对齐率反映了AI评估者的评估与人类在所有365个要求上的共识的紧密程度。它被定义为与“Human-as-a-Judge”共识评估相同的要求评估的百分比。与“LLM-as-a-Judge”相比,“Agent-as-a-Judge”始终实现更高的对齐率,与人类判断非常接近。例如,在评估OpenHands时,“Agent-as-a-Judge”在灰盒和黑盒设置下分别达到92.07%和90.44%,超过了“LLM-as-a-Judge”的70.76%和60.38% 。

PR曲线

评估开发者智能体是一个类别不平衡的任务,满足要求的情况比不满足的情况要罕见得多。像判断偏差和对齐率这样的指标可能会产生误导。例如,由于MetaGPT很少满足要求,“LLM-as-a-Judge”很容易将大多数情况识别为负面(在黑盒设置中达到84.15%)。PR曲线通过平衡精度和召回率,提供了更清晰的性能衡量标准。“Agent-as-a-Judge”在评估OpenHands时甚至优于任何单个人类评估者,并且与多数投票的一致性最高。

Agent-as-a-Judge的消融实验

下表分析了添加各种组件(询问、图、读取、定位和检索)对“Agent-as-a-Judge”评估OpenHands性能的影响。仅使用询问组件时,智能体的对齐率达到65.03%。添加图组件后,性能提升至75.95%,因为智能体可以更好地理解文件之间的关系。引入读取组件进一步将对齐率提高到82.24%,这反映了直接访问文件内容的价值。纳入定位组件后,对齐率大幅提升至90.44%,因为智能体可以有效地定位与要求相关的文件。然而,在这种情况下,添加检索组件并没有带来明显的好处。相比之下,对MetaGPT和GPT-Pilot的评估表明,检索组件是有用的,因为轨迹提供了额外的有价值信息。

成本分析

据三位评估者自述,“Human-as-a-Judge”总共花费了86.5小时。假设最低时薪为15美元(假设这可以聘请到AI领域的专家),在DevAI下进行一次完整评估的成本约为1297.50美元。相比之下,“Agent-as-a-Judge”在API调用上仅花费30.58美元,仅耗时118.43分钟,成本和时间分别仅为“Human-as-a-Judge”的2.29%和2.36%。“LLM-as-a-Judge”更快,仅需10.99分钟,但由于缺乏“Agent-as-a-Judge”模块的智能上下文选择功能,其成本仍为29.63美元。

## 推荐阅读
1. DeepSeek-R1的顿悟时刻是如何出现的? 背后的数学原理
2. 微调 DeepSeek LLM:使用监督微调(SFT)与 Hugging Face 数据
3. 使用 DeepSeek-R1 等推理模型将 RAG 转换为 RAT
4. DeepSeek R1:了解GRPO和多阶段训练
5. 深度探索:DeepSeek-R1 如何从零开始训练
6. DeepSeek 发布 Janus Pro 7B 多模态模型,免费又强大!

本文由mdnice多平台发布


柏企科技圈
15 声望5 粉丝