目前,基于大模型调用API、function和代码解释器的工具学习agent,例如OpenAI code interpretor[1], AutoGPT[2]等项目,在工业界和学术界均引起了广泛关注。在外部工具的加持下,大模型能够自主完成例如网页浏览、数据分析、地址导航等更复杂的任务,因此AI agent也被誉为大模型落地的一个重要方向[3]. 然而,上述项目主要基于闭源ChatGPT、GPT-4大模型,其本身在推理、步骤规划、调用请求生成和总结回复等能力上已经足够强。相比之下开源小模型,例如LLaMA-2-7b等,由于模型容量和预训练能力获取的限制,单个模型无法在推理和规划、工具调用、回复生成等任务上同时获得比肩大模型等性能,目前也有相关工作验证了小模型上存在不同能力之间的冲突[4],这对训练本地可微调的开源小模型完成agent任务造成了限制,为了解决这个问题,中山大学、阿里通义实验室联合提出了\alpha-\text{UMi}:一种本地可微调的多个小模型协作agent框架。

●论文地址:https://arxiv.org/abs/2401.07324 ●项目代码:https://github.com/X-PLUG/Multi-LLM-Agent ●魔搭社区:https://modelscope.cn/models/iic/alpha-umi-planner-7b/summary 总的来说,本文的主要贡献在于两个方面: ●提出了一种多模型协作的agent框架,该框架利用三个小模型:planner、caller和summarizer分别负责路径规划、工具调用和总结回复,对小模型进行工作负荷的卸载。同时该框架对比单模型agent支持更灵活的prompt设计。其在ToolBench[5],ToolAlpaca corpus[6]等多个benchmark上超过单模型agent框架,获得比肩GPT-4的性能。 ●提出了一种“全局-局部”的多阶段微调范式(GLPFT),利用该范式成功在开源小模型上训练了多模型协作框架,实验结果表明这种两阶段范式为目前探索出的最佳训练多模型协作agent范式。

\alpha-\text{UMi}

: 多模型协作框架

\alpha-\text{UMi}与普通的单模型agent在概念上的对比如下图所示:

\alpha-\text{UMi}中包含三个小模型planner、caller和summarizer,其中planner模型为系统的核心大脑,负责在某一agent执行步骤内激活caller或summarizer,并给予对应的推理(rationale)指导,而caller和summarizer则分别负责接收planner的指导完成该步后续工作。具体来说: Planner: planner 以其对应prompt\mathcal{P}{plan},用户请求q和历史执行记录\tau{t-1}作为模型输入,输出当前执行步骤的推理rationale: r_t = \mathcal{M}\text{plan}(\mathcal{P}\text{\text{plan}},\tau_{t-1}, q). r_t中包含两部分内容,第一部分为模型推理,即大模型agent范式中的thought部分,起到辅助后续动作执行的作用。第二部分为一个特殊的选择文段,如果该选择文段内容为“Next: Caller”,会激活caller模型与外部工具产生交互;文段内容为“Next: Summarizer”,会激活summarizer模型生成最终回复;文段内容为“Next: Give up”,则带planner判断用户请求在当前环境下无法完成,需要放弃执行任务或稍后尝试。 Caller:当caller被planner激活后,以其对应prompt\mathcal{P}{call},用户请求q,历史执行记录\tau{t-1}以及planner在当前步骤的rational r_t作为输入,输出当前执行步骤与外部交互的动作: a_t = \mathcal{M}\text{call}(\mathcal{P}\text{call}, \tau_{t-1}, q, r_t). 受外部工具种类不同,a_t表现为不同格式,在api调用时,a_t表现为“Action:api名 Action Input:api调用参数”,在执行代码时a_t表现为可运行的python 代码。 Summarizer: 当summarizer被planner激活后,其将负责根据历史执行内容总结出最后的回复。 下图直观展示了一个\alpha-\text{UMi}系统解决真实用户问题的流程:

GLPFT: 全局-局部多阶段微调范式

多模型协作框架的训练并非一件简单的事,有两个作用截然相反的影响因素:1. 生成Rationale,Action和Final Answer三个任务在训练中可以相互促进的,同时也能增强模型对于agent任务的全局理解,因此目前大部分工作均训练单个模型同时生成rationale, action和final answer。2. 模型的容量,不同任务的数据配比等也限制了我们很难训练单个模型同时在三个任务上获得表现峰值。综合考虑上述两点,本文提出了一种“全局-局部”的多阶段训练方法,目标在于利用充分利用Rationale,Action和Final Answer在训练中相互促进的优势,获得一个较好的单模型初始化,再进行多模型微调,专攻子任务性能的提升。

上图展示这种多阶段微调的流程,在第一阶段中,使用预训练LLM在完成工具调用agent任务上微调,获得一个单模型的agent LLM初始化。接着,在第二阶段中,本文对工具调用agent任务的训练数据进行重构,分解成生成rationale,生成工具交互action和生成最终回复三个子任务,并将第一阶段训练好的Single-LLM agent底座复制三份,分别在不同子任务上进一步微调。 下图的训练loss曲线展示了当单模型agent底座在第2个epoch结束之后拆分成planner、caller和summarizer三个模型,并获得进一步的优化空间。也揭示了这种多阶段训练的本质:当单模型agent在工具调用agent任务中到达性能上界之后,通过进一步拆分和子任务微调,多模型协作agent能够在各个子任务中获得更好的表现。

实验结果

静态评估

在静态评估中,本文将所有对比baseline的输出结果与标注输出进行对比,可以看到: ●\alpha-\text{UMi}系统表现显著超过了ChatGPT 和工具调用开源模型ToolLLaMA,性能与GPT-4比肩。值得一提的是,ToolLLaMA需要8192的输出长度以获得令人满意的结果,当输入长度为4096时,其效果急剧下降,幻觉率飙升,而对比之下\alpha-\text{UMi}只需要4096的输入长度,这得益于多模型框架带来的更灵活的prompt设计。 ●对比本文作者团队复现的单模型agent框架,\alpha-\text{UMi}也取得了性能的显著提高。 ●在多模型协作框架模型的微调方案对比上,直接微调三个模型、或单个模型多任务微调均无法使多模型协作框架发挥效果,只有使用多阶段微调GLPFT才能达到最佳性能,突出了文章提出的GLPFT在多模型协作框架微调中的必要性。

真实api调用评估

单纯与标注比对无法全面展示agent框架性能,因此作者也在ToolBench数据集上引入了一种真实api调用的评估方式,该评估方式对比agent框架完成任务的成功率(pass rate)和agent框架与标准baseline框架(ChatGPT-ReACT)对比的胜率(win rate)。实验结果如下: 在该真实api调用实验结果中, \alpha-\text{UMi}依然战胜了ChatGPT和ToolLLaMA,并在成功率上取得了与GPT-4相当的结果。

Data scaling law

通过比对不同训练数据下的模型表现,我们可以发现两点结论: ●除了rouge-L指标外,多模型协作的\alpha-\text{UMi}在不同训练数据量、不同指标下都一致地超过了单模型agent架构。特别是在Plan ACC和Aug F1这类关系到工具调用agent到规划能力和工具调用能力的指标上,\alpha-\text{UMi}对比单模型agent的表现提升更加明显,反映了文章提出的多模型协作架构对于工具调用agent的适用性。 ●可以观察到,单模型agent在各项指标上达到峰值所需的数据量是不同的,而\alpha-\text{UMi}却能随着数据量的增加,在各个指标上都获得稳定的表现提升,这更加凸显了多模型协作的必要性:我们很难找到一个在所有指标上达到峰值的数据量和模型检查点,而通过多模型协作,我们可以解决这个问题。

模型开销

多模型协作会引入更多成本,作者探究了多模型协作框架在训练、推理及储存阶段的开销对比:

总体来说,多模型协作框架确实会在训练和模型参数储存上引入更高的开销,但其推理速度与单模型框架相当。当然,考虑到多模型协作agent框架使用7B底座的性能远超13B单模型agent性能,总开销也更少。这意味着我们可以选择小模型为底座的多模型协作agent框架来降低开销,并超过大模型的单模型agent框架。

总结

●本文以缓解小模型在工具调用agent任务中的容量限制为出发点,设计了多个小模型协作的工具调用agent框架及其对应的多阶段微调方法,在多个工具调用benchmark上取得了超过单模型agent baseline,比肩GPT-4的工具调用结果。 ●该框架的成功主要得益三点:1. 多模型协作框架减轻了单个模型的工作负载,通过任务分解让工具调用任务变得更简单,更适合能力稍差的开源小模型。2. 多模型协作框架支持更精细的prompt制定,能够让每个模型专注于自身任务,减少其他冗余信息的干扰。3. “全局-局部”的多阶段微调方式综合了各种微调范式的优势,是多模型协作在开源模型底座下成为可能。 ●该工作未来仍有一定扩展空间,例如增强planner的泛化性,使其使用于更广泛的agent任务场景,进行caller模型的本地私有化,使其专注于本地工具调用任务,以及云端大模型结合本地小模型的“大-小”模型协同框架。

引用

[1] GPT-4 code interpretor: https://chat.openai.com/?model=gpt-4-code-interpreter [2] AutoGPT: https://github.com/Significant-Gravitas/Auto-GPT [3] Navigating the AI Agent Landscape: Insights into Advancements and Opportunities: https://medium.com/@VAI_LABS/navigating-the-ai-agent-landscape-insights-into-advancements-and-opportunities-75c4e67ffc8e [4] How abilities in large language models are affected by supervised fine-tuning data composition. [5] ToolLLM: Facilitating Large Language Models to Master 16000+ Real-world APIs [6] ToolAlpaca: Generalized Tool Learning for Language Models with 3000 Simulated Cases

成为VIP会员查看完整内容
36

相关内容

北京时间2023年3月15日凌晨,ChatGPT开发商OpenAI 发布了发布了全新的多模态预训练大模型 GPT-4,可以更可靠、更具创造力、能处理更细节的指令,根据图片和文字提示都能生成相应内容。 具体来说来说,GPT-4 相比上一代的模型,实现了飞跃式提升:支持图像和文本输入,拥有强大的识图能力;大幅提升了文字输入限制,在ChatGPT模式下,GPT-4可以处理超过2.5万字的文本,可以处理一些更加细节的指令;回答准确性也得到了显著提高。
KnowledGPT:基于知识库的检索和存储访问增强大型语言模型
【KDD2023教程】用文本编辑模型的快速文本生成, 190页ppt
专知会员服务
26+阅读 · 2023年8月10日
【KDD2023】协同过滤的高效联合超参数和架构搜索
专知会员服务
22+阅读 · 2023年7月23日
【ICML2023】基于最优多任务插值的多模态基础模型迁移
专知会员服务
30+阅读 · 2023年4月29日
【AAAI2022】基于对比学习的预训练语言模型剪枝压缩
专知会员服务
27+阅读 · 2022年1月24日
专知会员服务
35+阅读 · 2020年11月29日
高效的文本生成方法 — LaserTagger 现已开源
TensorFlow
30+阅读 · 2020年2月27日
如何使用自然语言工具包(NLTK)在Python3中执行情感分析
Python程序员
19+阅读 · 2019年10月28日
大数据分析研究组开源Easy Machine Learning系统
中国科学院网络数据重点实验室
16+阅读 · 2017年6月13日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
7+阅读 · 2015年12月31日
国家自然科学基金
24+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
Arxiv
155+阅读 · 2023年4月20日
A Survey of Large Language Models
Arxiv
397+阅读 · 2023年3月31日
Arxiv
19+阅读 · 2023年3月17日
VIP会员
相关基金
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
7+阅读 · 2015年12月31日
国家自然科学基金
24+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
微信扫码咨询专知VIP会员