大模型(LLMs)agent面
一、什么是大模型(LLMs)agent?二、大模型(LLMs)agent有哪些部分组成?2.1介绍-下规划(planning)?2.1.1拆解子目标和任务分解2.1.1.1如何进行拆解子目标和任务分解?2.1.1.2拆解子目标和任务分解有哪些方法?2.1.2模型自我反省2.1.2.1如何进行模型自我反省?2.1.2.2模型自我反省有哪些方法?2.2介绍一下记忆(Memory)?2.3介绍一下工具使用(tooluse)?三、大模型(LLMs)agent主要利用了大模型哪些能力?四、结合代码讲解大模型(LLMs)agent思路?4.1思路介绍4.2实例一:利用大模型判断做选择4.3实例二:让大模型通过判断正确选择函数工具并输出4.4实例三:agent模板和解析4.5实例四:将skylark接入langchain 中测试 agent五、如何给LLM注入领域知识?六、常见LLMAgent框架或者应用有哪些?致谢
一、什么是大模型(LLMs)agent?
大模型(LLMs)agent是一种超越简单文本生成的人工智能系统.它使用大型语言模型(LLM)作为其核心计算引擎,使其能够进行对话、执行任务、推理并展现一定程度的自主性.简而言之,代理是一个具有复杂推理能力、记忆和执行任务手段的系统.
二、大模型(LLMs)agent有哪些部分组成?
在LLM赋能的自主agent系统中(LLMAgent),LLM充当agent大脑的角色,并与若干关键组件协作.
2.1介绍一下规划(planning)?
一项复杂任务通常会包含很多步骤,Agent需要了解这些步骤是什么并提前规划.
2.1.1拆解子目标和任务分解
1.拆解子目标和任务分解:Agent能够将大型任务分解为较小,易于管理的子目标,从而高效地处理复杂任务.
2.1.1.2拆解子目标和任务分解有哪些方法?
1.Chainof thought:模型被要求"thinkstepby step利用更多的时间进行计算,将艰难的任务分解成更小,更简单的步骤.CoT将大型任务转化为多个可管理的任务,并对模型的思维过程进行了阐释:
2.TreeofThoughts:进一步扩展CoT,在每一步都探索多种推理的可能性.它首先将问题分解为多个思考步骤,并在每个步骤中生成多个思考,从而创造一个树形结构.搜索过程可以是BFS(广度优先搜索)或DFS(深度优先搜索),每个状态由分类器(通过一个prompt)或少数服从多数的投票原则来决定.
3.任务分解可通过以下几种方式实现:
7.GraphofThoughts:同时支持多链、树形以及任意图形结构的Prompt方案,支持各种基于图形的 思考转换,如聚合、回溯、循环等,这在CoT和ToT中是不可表达的.将复杂问题建模为操作图(GraphofOperations,GoO) 以LLM作为引擎自动执行,从而提供解决复杂问题的能力.某种程度上,GoT囊括了单线条的CoT和多分棱的ToT.
注:无论是CoT还是ToT,本质上是通过Prompt的精心设计,激发出模型原有的Metacognition
只是如何通过某条神经元的线索能更加精准的调动出大脑中最擅长Planning的部分
1.LLMP:通过借助一个外部的经典Planner来进行一个更加长序列的整体规划.这种方法利用规划域定义语言(Planning Domain Definition Language,PDDL)作为中间接口来描述规划问题.整成一个PDDLPlan,最后将PDDL计划翻译回自然语言(LLM做的).根本上讲,Planning Step是 个使用过程,首先LLM将问题翻译成问题PDDL",接着请求经典Planner根据现有的"领域PDDL生外包给外部工具的,当然也有一个前提:需要有特定领域的PDDL和合适的Planner.
LLM P (In-context Leaming)
LLMP利用大型语言模型(LLM)生成给定问题的PDDL描述,然后利用经典规划器寻找最佳计划,然后再次使用LLM将原始计划翻译回自然语言.
2.1.2模型自我反省
2.1.2.1如何进行模型自我反省?
1.自查与自纠:Agent能够对过去的actions进行自我批评和自我反省,从错误中吸取教训,并在今后的工作中加以改进,从而提高最终结果的质量(本质上是产生RL的数据,RL并不需要HF)
2.1.2.2模型自我反省有哪些方法?
1.ReAct:即ResonAct通过将ActionSpace扩展为特定任务的离散动作和语言空间的组合,在LLM内部整合了推理(Reasoning)和行动(Action).2.推理(Reasoning):使LLM能够与环境交互(例如,使用wikipedia Search的API);3.行动(Action):通过提示词使得LLM用自然语言生成整体的推理过程.
ReAct提示词模板包含了提供LLM思考的明确步骤,其大致格式为:
Thought:...
Action....
知识密集型任务(如HotpotQA、FEVER)和决策型任务(如AlfWorld Env、WebShop)的推理轨迹示例
在知识密集型任务和决策任务的两个实验中,ReAct的表现比去掉Thought..的单一Act..方式更加优异
1.Reflexion:是一个让Agent具备动态记忆和自我反思能力以提高推理能力的框架.Reflexion采用标准的RL设置,其中奖励模型提供简单的二进制奖励,而ActionSpace则采用ReAct中的设置,即在特定任务的行动空间中加入语言,以实现复杂的推理步骤.在每一个Actionat之后,Agent会计算一个启发式函数ht,并根据自我反思的结果决定是否重置环境以开始一个新的循环
Reflexion的架构示意图
启发式函数判断何时整个循环轨迹是低效的或者何时因为包含了幻觉需要停止.低效规划指的是耗时过长却未成功的循环轨迹.幻觉是指在环境中遇到一连串相同的行动,而这些行动会导致相同的观察结果,
自我反思过程通过给LLM一个two-shot例子创造,每个例子都是一对(失败的轨迹、在计划中指导进一三个, 步变化的理想反思).接着,reflections将会被添加到Agent的工作记忆中作为查询LLM的上下文,最多