ChaosstuffAI

怎样全面评估Agent系统?

现如今Agent开发工具/框架不断出现,但如何全面地对Agent进行评估却很困难,本文就从介绍一些主流的Agent/LLM-as-Agent评估工作来看看是否能得到一些启发。

AgentBench

Image

AgentBench是第一个旨在评估LLM-as-Agent在各种不同环境中的表现的基准测试。它涵盖8个不同的环境(其中5个是首创,另外3个是根据已发布的数据集进行重新编译得到),以更全面地评估LLM在各种场景中作为自主代理运行的能力。

具体如下:

  • 操作系统(OS):考察 LLM 在 bash 环境进行文件操作、用户管理等能力。
  • 数据库(DB):考察 LLM 利用 SQL 对给定数据库进行操作的能力。
  • 知识图谱(KG):考察 LLM 利用工具从知识图谱中获取复杂知识的能力。
  • 卡牌对战(DCG):考察 LLM 作为玩家,根据规则和状态进行卡牌对战的策略决策能力。
  • 情景猜谜(LTP):这个游戏需要 LLM 针对谜题进行提问,从而猜出答案,能够考察 LLM 的横向思维能力。
  • 家居(HH):在模拟的家庭环境下,LLM 需要完成一些日常任务,主要考察 LLM 将复杂的高级目标拆解为一系列简单行动的能力。
  • 网络购物(WS):在模拟的在线购物环境中,LLM 需要按照需求完成购物,主要考察 LLM 的自主推理和决策能力。
  • 网页浏览(WB):在模拟网页环境中,LLM需要根据指令完成跨网站的复杂任务,考察 LLM 作为 Web agent的能力。

AgentBench相当于是一个通用的LLM评估框架,来评估LLM作为通用Agent在理解人类意图并执行指令、编码能力、知识获取和推理、策略决策、多轮一致性、逻辑推理、自主探索以及可解释的推理这8个方面上的能力。

Image
其最新榜单发布在:https://llmbench.ai/agent/data

从评测结果可以看出,商业模型还是领先于开源模型,LLM的能力“涌现”还是很明显的。不少开源模型“偏科”现象也十分严重,代码训练确实能增强编程相关环境的表现,但可能以牺牲其他能力为代价。因此模型的训练方式需要针对不同的目标任务进行不同优化。

论文地址:https://arxiv.org/abs/2308.03688

项目地址:https://github.com/THUDM/AgentBench

MetaTool

Image

MetaTool是一个旨在评估大型语言模型是否具有工具使用意识并能否正确选择工具的评估基准。作者创建了一个名为TOOLE的数据集,其中包含各种类型的用户查询以触发LLM使用工具。他们还定义了四个子任务,包括相似选择、特定场景下的选择、可能可靠性问题的选择和多工具选择。实验结果表明,大多数流行的LLM仍然难以有效地选择工具,这突显了LLM与真正智能代理之间的差距。通过错误分析,作者发现开发者根据下游LLM选择适当的重写模型来生成新的描述将有助于提高LLM的工具调用能力。

论文地址:https://arxiv.org/pdf/2310.03128

项目地址:https://github.com/HowieHwong/MetaTool

API-Bank

Image

大型语言模型(LLMs)能够通过利用外部工具来增强其能力。然而,三个关键问题仍未得到解答:

  • 当前的 LLMs 在利用工具方面的效果如何?
  • 我们如何增强 LLMs 利用工具的能力?
  • 利用工具需要克服哪些障碍?

API-Bank正是为解决这些问题而开发的一个开创性基准,专门为工具增强型 LLMs 设计。对于第一个问题,作者开发了一个由 73 个 API 工具组成的可运行评估系统。用 753 个 API 调用标注了 314 个工具使用对话,以评估现有 LLMs 在规划、检索和调用 API 方面的能力。对于第二个问题,作者构建了一个包含来自 2138 个 API、跨越 1000 个不同领域的 1888 个工具使用对话的综合训练集。使用这个数据集,作者训练了 Lynx(https://huggingface.co/liminghao1630/Lynx-7b),这是一个从 Alpaca 初始化的工具增强型 LLM。实验结果表明,Lynx 在工具利用性能方面超过 Alpaca 超过 26 个百分点,并接近 GPT-3.5 的效果。

论文地址:https://arxiv.org/pdf/2304.08244

项目地址:https://github.com/AlibabaResearch/DAMO-ConvAI/tree/main/api-bank

工具调用是Agent的一大重要能力,也相对较容易评估,因此目前Agent ToolUse Benchmark还是比较多的,除了上面介绍的两个,还有ToolBench(https://github.com/OpenBMB/ToolBench)和T-Eval(https://github.com/open-compass/T-Eval)这些更加成熟的benchmark。

LangChain中的Agent评估方案

值得一提的是,对于工具调用,LangChain(https://blog.langchain.dev/benchmarking-agent-tool-use/ )也集成了几个基准(单工具调用、多工具调用、关系数据查询和多元数学问题)来测试LLM在规划、任务分解、函数调用和克服预训练偏差等方面的能力。

工具调用固然是Agent与外界交互最基本的特性,对于这一方面的评估还是有很多研究工作的,但仅仅只对这一个方面进行评估还是远远不够的。

应该从哪些方面评估Agent?怎样评估特定领域/用途的Agent?这两个问题目前还仍然没有得到很好的解决,但LangChain从Trajectory(轨迹)这个方向为这两个问题指出了一条路。

轨迹也就是Agent采取的一系列动作及其相应的响应,LangChain中的Trajectory Evaluators(轨迹评估器)提供了一种更全面的方法来评估Agent的效率和能力。简单来说,轨迹评估器获取了输入用户/Agent的输入、Agent的最终输出和中间步骤,然后传递给语言模型(默认为GPT-4)来对Agent输出的必要性、工具使用的合理性等进行评分和解释。

结语

由于Agent系统的复杂性和应用场景多样化,很难有一个通用的方法来对系统进行全面评估,更多的时候还是依赖人工来进行评判。LangChain的轨迹评估是一个很好的起点,相信未来还会有更多自动化测试工具的出现。