问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

聊聊大模型多agent的思考——多LLM下的多agent实现

创作时间:
作者:
@小白创作中心

聊聊大模型多agent的思考——多LLM下的多agent实现

引用
51CTO
1.
https://blog.51cto.com/u_16163452/12385680

在AI领域,多agent系统的设计和实现一直是研究的热点。本文将探讨大模型多agent的核心模块,并介绍一种创新的多LLM协作解决方案,该方案通过创建专门用于理解和适配环境的小模型,作为大模型的"小脑",显著提高了工具调用的成功率和稳定性。

多agent

目前来说,Prompt依旧是大模型agent的核心,实现的重要手段之一。

目前业界普遍认为,AI Agent技术包括四大核心部分:

  1. 角色定义模块。Agent在此阶段需要和人类一样,对任务执行中的背景资料和具体要求保持关注,这一环节实质上是构建角色定位的数据集合。

  2. 记忆模块。其功能是信息的存储与检索,分为短期记忆和长期记忆两种形式。短期记忆基本上等同于模型处理的即时上下文,长期记忆则通常来源于外部存储如向量数据库。

  3. 规划模块。它仿照人类处理问题时将复杂问题拆分为多个小问题并逐一击破的策略,将复杂任务细化为更易于管理和解决的小任务或小目标。

  4. 执行模块。它关乎AI Agent与其所处环境的直接互动。这可能涉及到使用应用程序接口、激活其他功能模块或实施具体操作,具体执行方式将依据任务的具体需求而定。简单来说,AI Agent要学会使用工具。

以上模块中都要用到Prompt,而结构化Prompt则通过提供模板指令和格式要求,帮助AI更准确地捕捉用户的意图。

不过目前的agent框架,一般都是侧重于prompt与LLM原生的function call功能,剩下的就是引入memory模块持久化。

总体来说,我自己有时候觉得这些多agent框架还是有一些欠缺——极端依赖于如上所述,尤其是prompt。

多LLM协作

为了帮助Agent更好地理解和适应不同环境,一种可能的解决方案是创建专门用于理解和适配环境的小模型,作为大模型的"小脑"。

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

URL:https://arxiv.org/abs/2401.07324

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

微调

相比较普遍agent来说,该理论有一个很关键的点——微调。目前的agent基本上都是依赖于LLM原生的工具调用能力,Agent需要有效的反馈机制来理解环境并调整行为,但目前这一点还没有很好的解决。在复杂工具使用场景中,仅仅依靠prompt难以达到足够高的成功率。Agent系统需要能够学习和适应如何调用不同的工具来完成任务,这涉及到工具调用学习的问题。而该理论会针对工具调用微调,增强其能力。

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

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

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

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

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

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

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

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

数据可参考:train-example[1]

通过特定的微调,增强LLM工具调用的学历能力,让LLM更理解适配环境,从而提出更合理更合适的ReAct。

小结

结合自己以前使用的多agent框架体验来说,的确在agent的应用和设计上,总觉得过于依赖prompt,虽然这也没错,但随之带来的不确定性和稳定性很大。尽管扣子这类平台已经做的不错了,很完善的实现了agent的理论,但我个人总觉得,还是差点;通过这次对多LLM agent微调框架的理论及实现的摸索,个人觉得这是一个很好的方向,不仅让LLM的工具调用更稳定而且也在更大程度上实现了多agent理论。

本文原文来自51CTO

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号