AI大模型系列之六:基于LLM的Agent架构图解
Agent是什么?Agent是一种能够自主决策、采取行动以达到某种目标的实体。AI Agent则被明确定义为:基于人工智能(尤其是大模型)技术,能够感知和理解环境,并采取行动以完成目标的智能实体。Agent能干什么?AI Agent 主要依托LLM模型和具体的业务场景来调用相应的工具来完成任务目标,智能化程度和行业贴合度会更明显。
目录
研究内容:基于大型语言模型(LLM)的Agent的架构
Agent定义
Agent是什么?
Agent是一种能够自主决策、采取行动以达到某种目标的实体。
AI Agent的确定义:基于人工智能(尤其是大模型)技术,能够感知和理解环境,并采取行动以完成目标的智能实体。
Agent能干什么?
AI Agent 主要依托LLM模型和具体的业务场景来调用相应的工具来完成任务目标,智能化程度和行业贴合度会更明显。
典型案例有什么?
智能核保应用,如果解决方案搭载AI Agent能力,Agent具体工作:
1)能自动识别业务需求,调用OCR信息抽取和结构化管理;
2)构建核保决策模型;
3)联合出保及费率管理等模块,快速完成核保目标。
Agent和大模型LLM有什么关系?
对于大模型和AI Agent 的关系,说法有很多,但总结下来我们可以得出三点:
1)AI Agent 以大模型技术为驱动,大模型以AI Agent 为业务触手。
2)不同的大模型应用行业应用,往往会催生不同的AI Agent。
3)两者相辅相成、相得益彰,共同拓展着AI的应用边界和通用能力。
总结,大模型 + 插件 + 执行流程 = Agent,图解如下:
论文地址:https://browse.arxiv.org/pdf/2308.11432.pdf
A Survey on Large Language Model based Autonomous Agents
本论文的Agent一种架构是什么?
在Agent架构设计方面,该论文提出了一个统一的框架,包括Profile模块、Memory模块、Planning模块和Action模块。
Profile模块解析
定义和管理Agent角色的特性和行为。它包含一系列参数和规则,描述了Agent的各种属性,如角色、目标、能力、知识和行为方式等。这些属性决定了Agent如何与环境交互,如何理解和响应任务,以及如何进行决策和规划。
三种Agent角色生成方式,包括LLM生成方法、数据集对齐方法和组合方法。具体如下:
1. LLM生成方法:利用大语言模型自动生成代理的个人特征,比如年龄、性别、个人喜好等背景信息。具体做法是:首先设定代理的组成规则,明确目标人群中代理应具备的属性;然后指定几个手工创建的种子配置文件作为示例;最后利用语言模型生成大量代理配置文件。这种方法可以快速批量生成配置文件,但由于缺乏精确控制,生成的代理可能会缺乏细节。
2. 数据集对齐方法:是从真实世界的人口数据集中获取代理的配置文件信息,比如通过抽取人口调查数据组织成自然语言描述。这样可以使代理行为更真实可信,准确反映真实人口的属性分布。但需要可靠的大规模数据集支持。
3. 组合方法:利用真实数据集生成一部分关键代理,确保反映真实世界规律;然后用LLM生成方法补充大量其他代理,拓展代理数量。这样既保证了代理的真实性,又实现了充足的代理数量,使系统可以模拟更复杂的社会交互。谨慎的配置文件设计是构建有效代理系统的基础。
Memory模块解析
在Agent系统中扮演重要角色,它存储和组织从环境中获取的信息,以指导未来行动。
结构上,内存模块通常包含短期记忆和长期记忆两个部分。短期记忆暂存最近的感知,长期记忆存储重要信息供随时检索。
格式上,内存信息可以用自然语言表达,也可以编码为向量嵌入提高检索效率。还可以利用数据库存储,或组织为结构化列表表示内存语义。
操作上,主要通过记忆读取、写入和反射三种机制与环境交互。读取提取相关信息指导行动,写入存储重要信息,反射总结见解提升抽象水平。
Planning模块解析
主要任务:帮助Agent将复杂的任务分解为更易处理的子任务,并制定出有效的策略。它大致分为两种类型,一种是不依赖反馈的计划,另一种则是基于反馈的计划。
不依赖反馈的计划在制定过程中并不参考任务执行后的反馈,它有几种常用的策略。比如单路径推理,它按照级联的方式,一步一步地生成计划。另外,还有多路径推理,它会生成多个备选的计划路径,形成树状或图状的结构。当然,我们也可以利用外部的规划器进行快速搜索,以找出最优的计划。
基于反馈的计划,它会根据任务执行后的反馈来调整计划,这种方式更适合需要进行长期规划的情况。反馈的来源可能来自任务执行结果的客观反馈,也可能是根据人的主观判断给出的反馈,甚至还可以是由辅助模型提供的反馈。
Action模块解析
职责:将抽象的决策转化为具体的行动,它就像是一个桥梁,连接了Agent的内部世界与外部环境。在执行任务时,需要考虑行动的目标、生成方式、应用范围以及可能产生的影响。
理想的行动应当是有目的的,例如完成特定任务、与其他代理进行交流或者探索环境。行动的产生可以依赖于查询过去的记忆经验,或者遵循预设的计划。而行动的范围,不仅可以通过利用如API和知识库等外部工具来扩展,还需要发挥大型语言模型(LLM)的内在能力,例如规划、对话及理解常识等。
架构:就像PC的硬件,但仅依赖架构设计是不够的,我们还需要赋予Agent完成不同任务的能力,这些被视为“软件”资源。论文中提出了几种方法,包括模型微调、提示工程和机械工程。其中提示工程应该是最为常见的一种形式了,我们常听说的提示词工程师就是在这个语境下的角色。
模型微调。使用特定任务数据对模型进行微调,提升相关能力。数据可以来自人类注释、LLM生成或实际应用中收集。这可以使Agent行为更符合人类价值观。
提示工程。通过自然语言描述向LLM灌输所需的能力,然后将描述作为提示指导Agent操作。这可以让Agent快速获得指定的软件能力。主要涵盖:
1)试错法:Agent先执行操作,根据效果调整行动。逐步优化。
2)众包法:整合多个Agent的见解,形成更新的集体响应。
3)经验积累法:Agent通过不断探索积累经验,逐步提升软件能力。
4)自我驱动法:Agent自主设置目标并在环境中不断探索,最终获得软件能力。
基于LLM的Agent的设计和构建策略是一个复杂且有挑战性的任务。
主流的另外一种Agent架构?
LLM-based Agent 框架包含三个组成部分:控制端(Brain)、感知端(Perception)和行动端 (Action)。
1、控制端:Brain
自然语言交互:高质量文本生成和言外之意的理解(chatgpt,chatglm ,llama)
知识:基于大批量语料训练的 LLMs,拥有了存储海量知识(Knowledge)的能力。除了语言知识以外, 常识知识和专业技能知识都是 LLM-based Agents 的重要组成部分。(Langchain)
记忆力:长期记忆,短期记忆。
扩充记忆的方法扩展 Backbone 架构的长度限制:针对 Transformers 固有的序列长度限制问题进行改进。
总结记忆(Summarizing):对记忆进行摘要总结,增强代理从记忆中提取关键细节的能力。
压缩记忆(Compressing):通过使用向量或适当的数据结构对记忆进行压缩,可以提高记忆检索
推理 & 规划:将复杂任务分解为更易于管理的子任务。在制定计划后,可以进行反思并评估其优劣。迁移性 & 泛化性:对未知任务的泛化
情景学习(In-context Learning):场景化学习,持续学习
2、感知端:大模型行的耳朵和眼睛
文本输入,视觉输入:图片->文本 图片->编码,听觉输入,其他输入
3、行动端:Action 大模型的手和脚
文本输出:LLMs 最基础的能力,计算微积分,计算泛函,
工具使用:尽管 LLMs 拥有出色的知识储备和专业能力,但在面对具体问题时,也可能会出现鲁棒 性问题、幻觉等一系列挑战。与此同时,工具作为使用者能力的扩展,可以在专业性、事实性、可 解释性等方面提供帮助。例如,可以通过使用计算器来计算数学问题、使用搜索引擎来搜寻实时信 息。
其他模型:调用语音生成、图像生成等专家模型,来获得多模态的行动方式。
案例分析:华为诺亚的盘古Agent
近日,来自华为诺亚方舟实验室、伦敦大学学院(UCL)、牛津大学等机构的研究者提出了盘古智能体框架(Pangu-Agent)尝试来解决 AI 智能体面临的挑战。该研究作者包括伦敦大学学院计算机系教授汪军。
论文链接:https://arxiv.org/abs/2312.14878
该工作在两个关键方面区别于先前的框架:
1)将智能体的内部思维过程形式化为结构化推理的形式;
2)展示了通过监督学习和强化学习来微调智能体的方法。
标准强化学习侧重于直接学习从感知中输出行动的策略。虽然人们习惯于通过深度网络架构参数化策略,但作者认为,当通过基础模型策略跨任务扩展智能体时,标准 RL 管道中缺乏固有推理结构可能会成为一个重大瓶颈,因为梯度无法为所有深度网络提供足够的监督。
盘古 Agent 框架展示了结构化推理如何帮助强化学习克服这些挑战,利用大规模基础模型提供先验知识并实现跨广泛领域的泛化能力。
据介绍,该工作的主要贡献包括:
1)证明了结构化推理在智能体框架中的重要性,盘古 Agent 的通用性足以有效涵盖现有智能体框架的任务范围。作为一个元智能体框架,它可以利用内部函数调用的顺序进行调整或微调,或者将决策委托给底层 LLM。使用者也可以轻松扩展智能体的功能,并组合或重用许多已经实现的方法。
2)作者在七个 LLM 和六个不同领域上进行了评估。该评估可用于告知研究人员如何初始化其智能体以及如何收集微调步骤的数据。
3)研究证明了框架的监督微调(SFT)和强化学习微调(RLFT)的影响。通过结构化推理,该工作成功实现了基于拒绝采样的 SFT 管道,大幅提高了 LLM 在 ALFWorld 领域的表现,成功率从 27% 增加到 82%。尽管 SFT 的好处已趋于稳定,但通过 RL 可以实现进一步增强,将 BabyAI 任务的成功率提高到 88%,甚至从 28% 提高到 91%。此外,跨领域实验显示通过 RL 管道训练的单个 LLM 能够同时在 ALFWorld (82%) 和 BabyAI(18 项任务中平均 58.7%)领域实现高性能。
主流的多智能体有哪些?
与单智能体(即一个Agent完成所有的任务)的区别:
1.多智能体的每个Agent只需要关注自己的立场,与自己相关的信息即可。不需要cover所有的历史信息,而单智能体,比如AutoGPT,是需要记住所有的历史信息,意味着单智能体在面临长历史的复杂任务时,对记忆容量(大模型支持的序列长度)要求比较高。多智能体在这方面有很明显的优势。
2.通过角色扮演的机制可以排除一些其他视角的观点,让大模型的表现更稳定,单智能体由于混杂了很多任务,无法做到这一点。
3.可拓展性更好,单智能体的拓展性依赖于memory的一些节省token的策略,对于更复杂的任务,每次输入给大模型的context会变长,会产生性能下降的风险(大模型处理长序列会存在丢失关键信息的情况等等)。多智能体分工协作则没有这个问题,因为每个智能体只完成特定的子任务,子任务一般不会造成很长的context。
4.可以多方案并行探索,然后选取最优的解决方案。单智能体则没有这种优势,或者实现起来会相对麻烦一点。
MetaGPT
和现实世界人类团队之间的软件开发SOP(Standardized Operating Procedures ,维基百科的解释是组织编制的一套循序渐进的说明,用于帮助工人进行日常操作。SOP旨在实现效率、质量输出和性能一致性,同时减少沟通失误和不遵守行业法规的情况。)。在软件工程中,SOP促进不同角色之间的协作。MetaGPT展示了其将复杂任务分解为分配给不同角色的特定可操作过程的能力(例如Product Manager, Architect, Engineer等等)。
AutoGen
是2023年最成功的Multi-Agent的Framework之一,为了减少开发人员跨各个域创建复杂LLM应用程序所需的工作量,AutoGen的一个核心设计原则是精简和使用多智能体对话来整合多智能体工作流。这种方法还旨在最大限度地提高实现的可重用性agents。
AutoAgents
其过程是分为两个关键阶段:Drafting 阶段和Execution阶段。Drafting阶段包括三个预定义agent(Planner、Agent Observer和Plan Observer)之间的协作讨论来综合定制的agent团队和适合输入问题的执行计划或任务。Execution阶段通过agent间协作和反馈完善计划,以及产生最终结果。论文提出self-refinement ,通过个体agent和协作进行自我完善通过多个agent进行细化,以提高agent的熟练程度并促进各agent之间的知识共享agents。为了促进合成团队中agents之间的具体分工,作者引入预定义的agent(Action Observer)以协助agents团队共享信息,协调行动,达成共识,适应环境。
总结
Agent刚开始出现的时候,代表性的是AutoGPT, BabyAGI(主张一个agent来调用工具来解决复杂的任务),代表方法是ReACT,总体上强调的是Agent使用工具的能力。后面出现了Multi-Agent(这个概念应该是借鉴的强化学习里面的Multi-agent),侧重角色扮演(通过写prompt给Agent赋予一个角色,并规范一些行为),和Agents之间的协作,竞争等策略来完成一项复杂的任务,除了从底层支持和改进多Agents协作的能力外,还需要建设Agent自动化调度(广播机制,订阅发布者机制),Multi-Agent通信协议,动态数量的Agents协作等,有了这些基础设施,就可以在原有的Agent基础上完成更高阶的任务。
Multi-Agent像是一个团队,团队里面的Agent更像是不同的工种,通过不同的Agent之间的分工协作,完成一些比较复杂的任务。
更多推荐
所有评论(0)