wjt213414 发表于 2024-8-5 15:24:14

多agent思想显著提升小模型工具调用能力

今天分享一篇阿里的利用Agent思想做工具调用的文章,标题为《Small LLMs Are Weak Tool Learners: A Multi-LLM Agent》。其提出的多LLM代理微调框架,将工具调用拆解为三个agent(Planner、Caller、Summarizer),并结合一个二阶段的微调策略。对比单个LLM表现更为出色,性能也更为稳定,并且能够超过像ChatGPT、GPT4等闭源模型,证明了多agent思路在工具调用上的有效性。

除了工具调用,或许本文的方法也可以拓展到问答的其他场景,大家可以参考。

Title: Small LLMs Are Weak Tool Learners: A Multi-LLM Agent URL: https://arxiv.org/abs/2401.07324

Code: https://github.com/X-PLUG/Multi-LLM-Agent

Authors: Weizhou Shen, Chenliang Li, Hongzhan Chen, Ming Yan, Xiaojun Quan, Hehong Chen, Ji Zhang, Fei Huang
1 Motivation




• 外部工具(例如APIs, 函数)的使用要求LLM不仅要了解用户查询并准确生成答案,而且要擅长任务计划、工具调用和结果总结。

• 单个LLM特别是Small LLMs调用外部工具(例如APIs, 函数)的能力以及自主完成各种任务时表现不太好。

• 之前的研究方法主要探索如何训练并提高单个LLMs的能力,利用多LLM来提高上述能力的工作并不多。
2 Methods

论文通过提出一个新颖的多LLM框架来解决问题,该框架将任务规划、工具调用和结果总结的能力分解为计划者、调用者和总结者三个组件。每个组件由专注于特定能力的单个LLM实现,并与其他LLM合作完成任务。此外,论文引入了一个两阶段训练范式,首先在整个数据集上对背景LLM进行微调,其次使用微调过的LLM对上述三个组件进行初始化,然后再在相应的子任务上进行持续的微调。
2.1 详细方法和步骤:


• 首先,对整个数据集进行微调,为主干LLM提供对任务的全面理解,而不区分子任务。

• 然后,使用微调过的LLM实例化规划者、调用者和总结者,分别对应子任务继续微调。

• 这种模块化框架促进了单个组件的更新,并且有可能使用更小型的LLMs来构建每个能力。

• 在各种工具使用基准测试中,该多LLM框架超越了传统的单LLM方法,突出了其在工具学习上的高效性和优势。


Figure 2: An illustration of how α-UMi works to complete a task.
规划器(Planner):α-UMi 框架中的规划器组件负责生成任务执行的逻辑和计划。它根据当前系统状态和用户指令来决定下一步的操作。规划器的输出包括一个理由(Rationale)和一个决策,决策可能是:

• “Next: Caller”:指示调用者(Caller)组件进行下一步操作。

• “Next: Summarizer”:如果已经收集到足够的信息,指示总结器(Summarizer)组件生成最终答案。

• “Next: Give up”:如果认为任务无法解决,决定放弃执行。

调用者(Caller):根据规划器的指示和理由,调用者组件负责调用具体的工具或 API。它根据规划器提供的逻辑生成合法且有用的请求,并从工具中获取观察结果(Observation)。

总结器(Summarizer):一旦规划器决定已经有足够的信息来解决用户指令,它会指示总结器生成最终的答案。总结器根据执行轨迹和用户指令来构建最终的回复,提供给用户。
2.2 训练方法



α-UMi 采用了全局到局部渐进式微调(Global-to-Local Progressive Fine-Tuning,简称 GLPFT)策略,用于有效训练多 LLM 系统,它分为两个主要阶段:

1. 全局微调(Global Fine-tuning):

• 在这个阶段,首先对一个基础的大型语言模型(LLM backbone)进行微调,使用的是整个训练数据集,而不区分子任务,微调的目标是让模型获得对整个工具学习任务的综合理解。

• 经过全局微调后,基础 LLM 被训练成能够依次输出理由(rationale)、动作(action)和答案(answer)。

2. 局部微调(Local Fine-tuning):

• 原始的训练数据集被重新组织,形成针对每个 LLM 角色(规划器、调用者和总结器)的特定数据集。

• 接着,分别对规划器、调用者和总结器进行进一步的微调,以增强它们在各自子任务中的具体能力。

• 在局部微调阶段,基础 LLM 被复制成三个独立的模型,每个模型专注于一个特定的子任务,每个子任务的专家模型(规划器、调用者和总结器)能够在其专门的任务上进行优化,从而提高整体框架的性能。


总结:GLPFT 策略通过分阶段的微调方法,使得每个组件模型能够在其专门的任务上达到更高的性能,同时保持了整个系统的协同工作能力。这种策略有效地提高了模型在工具学习任务中的表现,并充分利用了每个小型 LLM 的潜力。
3 Conclusion


• 在工具使用的任务中,本文提出的多LLM代理微调框架表现出色,能够超过像ChatGPT、GPT4等闭源模型,证明了多agent思路在工具调用上的有效性。
二、详细内容

1 实验表现



实验设置:

• Model Size = 7B / 13B:指的是模型的参数数量,7B 表示 70 亿参数,13B 表示 130 亿参数。

• Multi-LLM one-stage:在单一阶段直接对规划器、调用者和总结器进行微调的多 LLM 模型。

• α-UMi w/o reuse / w/ reuse:α-UMi 框架的不同版本,其中一个版本在微调过程中重用了用户指令集(w/ reuse),另一个版本没有(w/o reuse)。

实验结论:

1. 利用α-UMi框架对7B/13B左右的模型微调,效果能超过GPT-4:α-UMi 框架在多个评估指标上超越了传统的单一大型语言模型(如 ChatGPT 和 GPT-4),特别是在规划器准确率(Plan ACC)和 Rouge-L 分数(R-L)方面,α-UMi 有了显著的改进。

2. 模型越大,效果越好:使用 13B 参数模型的 α-UMi 版本在大多数指标上表现优于 7B 参数版本,这表明更大的模型容量可以带来更好的性能。然而,值得注意的是,即使是 7B 参数的 α-UMi 也能在某些情况下超越 13B 参数的单一大型语言模型,这强调了 α-UMi 框架设计的有效性。

3. 多阶段微调比单阶段微调效果更好:与单阶段微调的多 LLM(Multi-LLM one-stage)和多任务微调的单一大型语言模型(Single-LLM multi-task)相比,α-UMi 展现了更好的性能,说明 GLPFT 策略在提升模型性能方面的有效性。

4. 添加用户指令数据效果更佳:α-UMi w/ reuse(重用用户指令的版本)在大多数指标上优于 α-UMi w/o reuse(不重用用户指令的版本),这表明在微调过程中重用用户指令可以帮助模型更好地学习和适应任务需求。

综上所述,α-UMi 框架通过其模块化设计和渐进式微调策略,在工具学习任务上展现了显著的性能提升,特别是在任务规划和结果总结方面。此外,该框架的有效性不受模型大小的限制,即使是小型模型也能通过合作达到高性能。
2 ToolBench上的详细表现


Table 2: Results of real-time evaluation on ToolBench
主要结论:

1. α-UMi 框架效果非常不错:

• α-UMi(使用 7B 模型)在多数测试组中的通过率(Pass)和胜利率(Win)都超过了 ChatGPT 和 ToolLLaMA,这表明 α-UMi 框架在实时 API 调用任务中表现出色,能够有效地解决实际问题。

• 在某些测试组中,α-UMi 的通过率与 GPT-4 相当,甚至在 I1-Inst. 和 I2-Inst. 组别中超过了 GPT-4。

2. DFSDT vs ReACT:使用 ReACT 和 DFSDT 策略的模型在不同的测试组中表现出不同的性能。这表明不同的推理策略对于模型解决任务的能力有显著影响,选择合适的策略对于提升模型性能至关重要。

3. 小模型的工具调用能力也可以做得很不错:尽管 GPT-4 拥有更大的模型容量,但在某些情况下,α-UMi(7B)的性能与 GPT-4 相当,这表明通过有效的框架设计和微调策略,较小的模型也能实现与大模型相媲美的性能。

总结:α-UMi 框架在实时工具调用任务中的有效性和竞争力,也表明通过选择合适的推理策略和优化的微调方法,可以显著提升模型(特别是小模型)在实际应用中的性能。
3 训练数据量对不同框架工具调用能力的影响


Figure 4: Results of data scaling law study on ToolBench with different evaluation metrics
评估指标:

• Plan ACC(规划器准确率):衡量规划器在决策下一步行动时的准确性。

• Act. EM(动作实体匹配):衡量调用者在调用 API 时参数匹配的准确性。

• Hallu. (幻觉率):衡量模型在生成 API 名称时是否产生了不存在的实体。

• Arg. F1(参数 F1 分数):衡量 API 调用中参数准确性的指标。

结论:α-UMi 框架性能不错,效果较为稳定,性能随数据量的增加稳步提升。随着训练数据的增加,α-UMi 框架在多个评估指标上的性能得到了显著提升,尤其是在任务规划和 API 调用方面。
三、总结

结论1: 多LLM代理框架(例如本文的Planner、Caller、Summarizer)能够克服传统单个LLM在工具学习方面的性能限制,通过模块化的方法分解任务,可以利用小型LLMs构建特定能力,并且更容易更新和维护。

结论2: 多阶段微调比单阶段微调效果更好。与单阶段微调的多 LLM(Multi-LLM one-stage)和多任务微调的单一大型语言模型(Single-LLM multi-task)相比,α-UMi 展现了更好的性能,说明 GLPFT 策略在提升模型性能方面的有效性。

结论3: 添加用户指令数据微调效果更佳:α-UMi w/ reuse(重用用户指令的版本)在大多数指标上优于 α-UMi w/o reuse(不重用用户指令的版本),这表明在微调过程中重用用户指令可以帮助模型更好地学习和适应任务需求。

进技术交流群请添加AINLP小助手微信(id: ainlp2)

请备注具体方向+所用到的相关技术点
https://mmbiz.qpic.cn/mmbiz_jpg/nW2ZPfuYqSJADkmZ2IX6Z23znAibuEevotDMq9iaMxiapK7jfMibiauGFkycicAJEs6x5U9SGyDJZ0S1tRed9TPNUUDQ/640?wx_fmt=other&wxfrom=5&wx_lazy=1&wx_co=1&tp=webp

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括LLM、预训练模型、自动生成、文本摘要、智能问答、聊天机器人、机器翻译、知识图谱、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP小助手微信(id:ainlp2),备注工作/研究方向+加群目的。

页: [1]
查看完整版本: 多agent思想显著提升小模型工具调用能力