《LLM + Agent学习》---1.脉络梳理

Hello,大家好,这里是小白鸽(哥)
最近一个栏目 ,将给大家带来最近很火热的Agent技术的梳理,从最开始的React到目前最强的 LATS,详细从源码角度以及论文角度给大家带来一次精简的Agent学习旅途~~~~~~~~~~~~~~~
!!当然随着博客更新,后面应该也有新的技术,比如现在2024/9/27 就出现openai的o1以及清华的DoT不同推理范式,酌情考虑再进一步增加内容

作为本系列的第一节,我希望从宏观角度探讨当前的Agent及其发展脉络,以便为我们后续的学习奠定基础。

首先,我们需要明确一个问题: 什么是Agent?它与LLM有什么不同?

答:Agent是一种能够自主决策并执行特定任务的软件实体。它能够根据环境输入、预设规则和目标进行响应。最直观的理解是,Agent能够与环境或当前状态进行交互。这个“环境”非常广泛,不同任务的具体环境各异。例如,大家熟知的AlphaGo的环境就是围棋棋局的状态。此外,Agent具备自主决策和任务执行的能力。目前,最热门的Agent是利用LLM进行自主决策,它可以基于一系列提示Prompt对当前任务进行规划并执行。因此,Agent的核心要素可以归纳为两个方面:任务规划与任务执行。总的来说,Agent是一个能够进行任务规划和执行的载体。

Agent类型以及其发展脉络

现在我们明确了Agent的定义,那么在大模型出现后,Agent的技术路线是怎样的呢?参考LangChain对Agent的介绍,现在的Agent可分为三大类:规划Agent和反思Agent(这两个都是单一Agent)以及多个Agent的结合,接下来详细介绍这几种类型的agent以及其各自发展脉络。
只涉及概念上的初步理解,和后面代码结合起来才能更好地学习这些复杂的概念~~

1. 规划Agent

该类智能体重视对任务的规划能力,目前主要有 Reasoning without Observation、Plan-and-Execute、LLMCompiler。
Reasoning without Observation(REWOO):
规划器(Planner)生成任务列表,然后依次利用该列表调用工具,逐步完成每项任务。最终,将获得的上下文交给规划器以生成结果。
优势:1.与React相比,通过一次生成使用的完整工具链来减少令牌消耗和执行时间。(ReACT的代理架构需要许多次T-A-O重复(Thought、Action、Observation)REWOO相当于少了根据O生成T的过程,直接在最开始就生成全部的Tasks。2.简化微调过程。由于规划数据不依赖于工具的输出,因此无需实际调用工具即可对模型进行微调(理论上)。
请添加图片描述

Plan-and-Execute(PE):
请添加图片描述
核心思想是先制定一个多步骤的计划,然后逐项执行该计划。完成特定任务后,您可以重新审视该计划并进行适当修改(与REWOO的区别)。

LLM&Compile:
无论PE还是REWOO,其任务是顺序执行的,无法并行执行,为此有效改进的方法就是将每个任务表现为有向无环图,这样可以让任务并行执行,大幅降低执行总时间,为此:
LLM&Compiler 就是这样一种代理架构,旨在通过 DAG(有向无环图) 中的即时执行任务来加速代理任务的执行。它还通过减少对 LLM 的调用次数来节省冗余令牌使用的成本。以下是其计算图的概述:
请添加图片描述

2. 反思Agent

前面的规划型Agent其发展脉络:React—>规划能力—>REWOO—>反思能力—>PE—>并行处理能力—>LLM Compiler,这些agent主要侧重于规划能力,接下来介绍侧重于反思的Agent。

Basic Reflection 与 Reflexion:
Basic Reflection类似有个Teacher Agent,负责对学生Agent的结果进行打分,随着循环次数结束,输出经过n轮后的,学生产生的结果。
在这里插入图片描述
Reflexion:
Reflexion本质上是强化学习,可以理解为是Basic reflection 的升级版。Reflexion机制下,整个架构包括Responder和Revisor,和Basic Reflection机制中的Generator和Reflector有点类似。但不同之处在于, Responder自带批判式思考的陈述,Revisor会以 Responder 中的批判式思考作为上下文参考对初始回答做修改。此外,Revisor还引入了外部数据来评估回答是否准确,这使得反思的内容更加具备可靠性。
下图是Reflexion的原理:Responder接收来自用户的输入,输出initial response,其中包括了Response、Critique和工具指示(示例图中是Search)Responder将Initial Response给到执行工具,比如搜索接口,对Initial Response进行初步检索将初步检索的结果给到Revisor,Revisor输出修改后的Response,并给出引用来源Citations
再次给到执行工具,循环往复,直到循环次数Revisor将最终结果输出给用户【风叔云】

在这里插入图片描述

Language Agent Tree Search:
LATS,全称是Language Agent Tree Search,说的更直白一些,LATS = Tree search + ReAct + Plan&Execute + Reflexion。
但小白鸽也没看到这部分的源码,后续再更新这个比较复杂的内容~~~~~~~~~~~可以看一下这一部分的介绍
在这里插入图片描述

Self-Discover Agent:
SD-Agent是一种自动发现以及构建推理结构,以解决各种推理任务的框架。
—>它的核心在于原子推理模块,即模型可以在没有明确任务的情况下,自主地从原子推理模块中选择子推理,并将其组合成一个推理结构。
—>进一步地,LLM再根据选出来的原子推理,再进一步根据输入问题适配,使得其符合我们的问题(可以理解为变为有序列表)
—>最后执行推理过程得到结果。

 reasoning_modules = [      
"1. 我该如何设计一个实验来解决这个问题?",     
"2. 列出解决这个问题的想法,然后逐一应用它们来解决这个问题,看看是否可以取得任何进展。",       
"3. 我怎样才能衡量这个问题的进展?",        
"4. 我怎样才能简化这个问题以便于解决?",        
"5. 这个问题背后的关键假设是什么?",      
"6. 每种解决方案的潜在风险和缺点是什么?",       
"7. 对于这个问题,还有哪些其他的观点或看法?",        
"8. 这个问题及其解决方案的长期影响是什么?",       
"9. 我怎样才能将这个问题分解成更小、更易于管理的部分?",       
"10. 批判性思维:这种思维方式包括从不同角度分析问题、质疑假设以及评估现有证据或信息。它侧重于逻辑推理、基于证据的决策以及识别思维中的潜在偏见或缺陷。",        
 ....

当我们提问

“Lisa 有 10 个苹果。她给了朋友 3 个苹果,然后从商店买了 5 个苹果。Lisa 现在有多少个苹果?“

第 1 阶段选择:

选定模块:9. 我如何将这个问题分解成更小、更易于管理的部分?
这个问题可以分解成两个部分:首先,计算 Lisa 在送出一些苹果后有多少个苹果,其次,计算她购买更多苹果后有多少个苹果。这种方法简化了问题并使其更容易解决。
此外,10. 批判性思维:这种风格涉及从不同角度分析问题、质疑假设以及评估可用的证据或信息。它侧重于逻辑推理、基于证据的决策以及识别思维中的潜在偏见或缺陷。
批判性思维在解决问题中始终很重要,因为它有助于确保解决方案基于合理的推理和证据。在这种情况下,它可以帮助确认问题被正确解释并且解决方案合乎逻辑且准确。
因此,910 都是此问题的相关推理模块。

第 2 阶段 适应

改编模块:1. 分解问题:问题可以分解为两个较小的任务:
a) 计算 Lisa 送给朋友 3 个苹果后还有多少个苹果。b) 计算 Lisa 从商店购买 5 个苹果后还有多少个苹果。
通过将问题分解为这些较小的任务,解决问题会变得更容易。
2. 批判性思维:运用批判性思维确保问题得到正确解释,解决方案合乎逻辑且准确。这包括:
a) 确认问题得到正确理解(Lisa 从 10 个苹果开始,赠送 3 个,然后购买 5 个)。b) 确保正确遵循操作顺序(在添加购买的苹果之前减去赠送的苹果)。c) 仔细检查计算以确保准确性。
通过运用批判性思维,您可以确信解决方案基于合理的推理和证据。

第 3阶段实施

推理结构:1. 分解问题:
a) 计算 Lisa 送给朋友 3 个苹果后还剩下多少个苹果:- Lisa 一开始有 10 个苹果- 她送出了 3 个苹果- 从最初的苹果数量中减去送出的苹果数量
b) 计算 Lisa 从商店购买 5 个苹果后还剩下多少个苹果:- 送出 3 个苹果后,Lisa 还剩下一定数量的苹果(来自任务 a)- 然后她又买了 5 个苹果- 将购买的苹果数量加到剩余的苹果数量中
2. 批判性思维:
a) 确认问题理解正确:- Lisa 一开始有 10 个苹果- 她送出了 3 个苹果- 她又买了 5 个苹果
b) 确保操作顺序正确:- 首先,减去送出的苹果- 然后,加上苹果购买
c) 仔细检查计算结果:- 确认减去的苹果数量正确- 确认添加了的苹果数量正确
通过遵循此推理结构,您可以通过将问题分解为较小的任务、运用批判性思维和仔细检查计算结果来解决问题。最终答案应准确且基于合理的推理。

最终答案:Lisa现在有 12 个苹果。

3. 多Agent系统

多Agent系统依赖多个Agent的协同工作,更侧重于如何组织现有的Agent以实现更复杂的任务。例如,在点外卖的过程中,需要确定下单时间、进行外卖下单和银行支付等任务。复杂任务可以拆分为多个子任务,每个任务由专门负责该子任务的Agent来执行,最终共同完成总体任务。这种合作模式主要分为协同、监管和分层次三种。

协同多Agent:单个agent通常可以使用单个领域内的少量工具有效地运行,但即使使用像这样的强大模型gpt-4,它在使用许多工具时的效率也会较低。处理复杂任务的一种方法是采用“分而治之”的方法:为每个任务或领域创建一个专门的agent,并将任务路由给正确的“专家”。
请添加图片描述

监管Agent:基本与协同Agent一致,但是使用LLM来对路由监管,而不是由最初的research agent分发子任务。
请添加图片描述
分层次Agent:
在监管Agent中,我们引入了单个主管节点的概念,以便在不同的工作节点之间路由工作。
但是,如果单个工人的工作太复杂怎么办?如果工人数量太多怎么办?
对于某些应用程序来说,如果工作按层次分布,系统可能会更有效。可以通过组合不同的子图并创建顶级主管以及中级主管来实现这一点。
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值