MACT:如何用多Agent框架思路实现表格问答

发布于 2025-1-14 12:10
浏览
0收藏

1. 表格问答的现状

表格问答(TQA,Table Question Answering)是指依据表格形式的数据来回答问题。表格问答任务的任务也越来越复杂,要解决这些复杂任务,就得执行多个推理步骤(多步骤)或者运用不同的推理策略(多类别)。。

处理 TQA 中这些复杂实例的一种常见方法是规划,生成详细的逐步计划并引导推理过程。该方向有两种方法:

• 针对开源大型语言模型(LLMs)进行微调,但微调需要高质量的数据,通常难以获取

• 使用闭源的商业 LLMs,闭源商业 LLMs 成本高

为了解决以上问题,作者提出了一个结合工具使用的多智能体协作框架(MACT,Multi-Agent Collaboration with Tool)。既不依赖闭源 LLMs,也无需微调。

2. 什么是MACT?

MACT是一个为 TQA 配备了一组工具的多智能体协作框架。如下图所示,包含了四个主要模块:内存、规划智能体、编码智能体、工具集。

MACT:如何用多Agent框架思路实现表格问答-AI.x社区图片

MACT包括五个核心阶段动作:动作生成、动作选择、工具选择/代码创建、观察计算以及内存状态更新。

2.1 动作生成(Action Generation)

作者参考了ReAct方法,鉴于之前有研究表明生成动作时,一同生成想法能带来性能的提升,所以作者采用了完整的ReAct方法:即想法、动作和观察一起生成。

把一个动作定义为两部分:意图和指令。

例如,“检索 [检索法国和德国的出口数量]”。意图是动作的目的,比如“检索”就是从输入表中提取信息。指令(用括号标记)详细说明了意图。

MACT:如何用多Agent框架思路实现表格问答-AI.x社区图片

上表展示了框架中定义的六种意图类型及其对应的指令示例。

• 检索:执行从表中提取信息的所有操作,包括直接查询、过滤和分组。

• 计算:需要计算、计数或比较的指令则由“计算”来处理。

• 搜索:为了满足表或文本上下文中不存在的外部(事实性)知识的需求,增加了“搜索”意图。

• 读取:涵盖了表-文本问答中对上下文推理的需求,指的是从作为TQA实例提供的文本中提取信息的指令。

• 完成:规划智能体停止生成更多动作,并结束迭代执行,提供相应的指令中的最终答案。

• 询问:基于规划智能体的内部知识来检索答案.

2.2 动作选择(Action Selection)

运用选择函数从动作集合中挑选最有潜力的动作。选择函数采用了自洽性(self-consistency),从采样动作集合中输出最频繁的动作。若出现平局,则选择最先采样的那个最频繁动作。

2.3 工具选择与使用

为了满足【搜索】、【计算】、【检索】这些意图,作者引入了一组工具:Wiki百科搜索工具、计算器工具、Python代码工具。

• Wiki百科搜索工具:维基百科搜索API,接收指令中指定的目标实体,并返回相应维基百科条目的第一段。

• 计算器工具:由Python解释器驱动,接受生成的公式,并输出答案。“计算”的指令也可以是文本描述,比如“计算表中每个国家的平均奖牌数量”。

• Python代码工具:【检索】意图由Python代码工具完成,根据指令生成的Python代码检索表中的目标单元格,返回执行结果。

对于“读取”“询问”和“完成”,不使用工具。

3. 效果评估

对 MACT 在四个 TQA 基准上的性能与 SoTA TQA 系统进行了对比评估。

3.1 与其他TQA模型(框架)相比

MACT:如何用多Agent框架思路实现表格问答-AI.x社区图片

如上图所示,当GPT-3.5作为底层模型时,MACT超越了所有的TQA模型(除在 WTQ 上的 Mix-SC)。表明与单代理 TQA 模型相比,代理策略是有效的。

猜测MACT与 Mix-SC 之间的性能差距源于 Mix-SC 中特定于数据的表清理和答案格式控制。相比之下,MACT 不包含任何特定于数据集的预处理或后处理步骤,从而能普遍适用于任何数据集。

MACT 在各个数据集中都优于各种开源 LLM,证明了智能体的有效性。

MACT:如何用多Agent框架思路实现表格问答-AI.x社区图片

上表还给出了使用不同模型作为不同智能体部分的MACT的结果。

比如:MACT (Qw + CL)是指 Qwen 作为规划代理,CodeLLaMA 作为编码代理。

MACT (Qw + CL)比单独使用 Qwen 和 CodeLLaMA 获得了更高的 EM 分数,证明使用多个智能体进行规划和编码的有效性。

MACT (Qw + CL)在所有数据集中平均比 _SC(Qw + CL)高出约 6 个 EM 点,凸显了我们的协作技术相对于简单采用两个独立代理的最频繁预测的优越性。我们还发现,拥有用于代码生成的专家编码代理(MACT (Qw + Qw)与 MACT (Qw + CL))显著提高了性能。

3.2 与微调的TQA模型相比

MACT 在数据集之间的泛化能力优于微调的 TQA 系统。

MACT:如何用多Agent框架思路实现表格问答-AI.x社区图片

上表展示了与先前微调的 TQA 模型进行了比较。通常,微调模型在用于微调的数据集上的性能相当高,但在其他数据集上测试时 EM 会大幅下降。

相比之下,MACT 不使用微调模型,因此能够应用于任何具有良好泛化性能的数据集。当使用 LlaMA-7b 作为规划代理时,MACT 展现出了与 Protrix 相当的结果,尽管它未进行微调。使用更好的规划代理会带来更好的结果。这也体现了 MACT 在骨干模型方面的稳健性。

3.3 MACT调用LLM次数对比

MACT:如何用多Agent框架思路实现表格问答-AI.x社区图片

上表展示了MACT与其他方法调用LLM次数对比。对于 Binder 和 Dater,无论问题复杂程度如何,SC 都执行固定次数。导致每个实例的提示数量很多,因而效率低下。

相比之下,MACT 在生成方面具有灵活性,因为迭代次数取决于问题的复杂性。例如,对于 WTQ,大多数问题可以在三步内解决,使得每个实例最多总共提示 25 次。如果结合效率优化模块,这可能节省多达三分之一的迭代,每个实例的生成总数甚至更低(约 15 次),使 MACT 在效率方面与其他方法相当。MACT 的迭代性质可能导致更高的生成上限。然而,它也能处理更复杂的问题,使该方法更贴合现实生活的需求。

3.4 多智能体协作与工具使用的效果

通过三种情形展开消融研究,探究 MACT 中专业智能体和工具使用的有效性。

MACT:如何用多Agent框架思路实现表格问答-AI.x社区图片

上表结果表明,工具和编码工具均对框架性能有所贡献。然而,它们对最终性能的贡献各异。

比如,去除搜索工具对结果几乎无影响,而进一步去除编码代理和 Python 解释器时,性能大幅下降。或许是由于工具和编码代理的使用频率所致。

发现搜索工具几乎未被使用,而编码代理在几乎每次查询中都会被调用。可能由于维基百科是 LLM 常见的预训练语料库,多数信息可能已被编码。不过,鉴于 LLM 已知会出现幻觉且编码知识可能未及时更新,搜索工具仍可能有所帮助。

消融操作对 WTQ 和 TAT 的影响大于 CRT 和 SCITAB。可能归因于数据集特征:CRT 包含众多是非问题,SCITAB 由三元分类数据集转换而来。因此,在诸如 WTQ 和 TAT 这类答案分布更丰富的数据集上,猜测正确最终答案的几率高于前者。通过评估 CRT 中除是非答案之外的实例,发现当消融工具和编码代理时,性能下降 8.23 。

3.5 错误分析

从每个数据集中随机抽取 MACT 失败的 50 个实例并进行错误分析。

• 约一半的错误源自编码代理生成的无效或错误代码。要么是未能理解指令从而生成错误代码,要么因复杂的表数据类型导致代码执行不成功。这表明表预处理的重要性。

• 第二种错误类型可归因于评估。发现约三分之一的失败源于严格的评估指标(精确匹配准确率)。这对 TAT 数据集上 MACT 的性能影响最大,因为其答案为长文本字符串。

• 其余错误情况在很大程度上可归咎于规划代理的失败。意味着规划代理未能正确分解问题。

4. 局限性

• 由于具备多表复杂推理的数据集稀缺,MACT 主要在单表设置下进行评估。虽然该框架通过在输入中连接多个表能够轻松扩展以处理多表情况,但在多表设置中的效果尚不明确。

• 仅在英语语境中研究 TQA,然而存在众多多语言 TQA 基准和挑战。

本文转载自 大语言模型论文跟踪​,作者:HuggingAGI

收藏
回复
举报
回复
相关推荐