Agent是大模型与场景间价值传递桥梁
重要性不言而喻。
Agent系统由多个组件构成,规划、记忆和工具使用等
= + Planning + Feedback + Tool use
下面给大家介绍下核心知识点:规划Planning模块。
Planning 指
- 任务分解:把大任务划分成小任务,进而解决复杂问题;
- 反思和提炼:基于已有动作做自我批评和自我反思,从错误中学习优化接下来的动作。
任务分解的典型实现方案是 CoT(Chain of thought)和 ToT(Tree of thoughts)。
一项复杂任务包括多个子步骤,智能体需要提前将任务分解,并进行规划。
规划模块分类
1)无反馈规划:大语言模型在做推理的过程中无需外界环境的反馈。这类规划进一步细分为三种类型:
-
单路推理,仅一次大语言模型调用就输出完整的推理步骤;
-
多路推理,借鉴众包思想,让大语言模型生成多个推理路径,进而确定最佳路径;
-
借用外部的规划器。
2)有反馈规划:外界环境提供反馈,而大语言模型需要基于环境的反馈进行下一步以及后续的规划。这类规划反馈的提供者来自三个方面:环境反馈、人类反馈和模型反馈
上面的解析简单,不够全面,有没有更加详细的分析?
【2024-2-5】中科大对Agent的Planning方法做了深入分析、归类和总结:
论文 Understanding the planning of LLM agents: A survey
下面简要介绍下论文要点。
传统Planning工作主要依赖符号方法或强化学习方法, 比如 领域定义语言 (Planning Domain Definition Language)
这类方法存在若干不足:
- 符号方法要求将灵活的自然语言转化成符号****模型, 少不了人工专家介入
- 这种方法对错误容忍度低,稍有不慎就导致任务失败
- 强化学习方法通过深度神经网络模型模拟策略网络、奖励模型.
- 需要大量与环境交互的样本学习, 代价较高且不易实施
大型语言模型(LLM)标志着一个范式转变。LLM在多个领域取得了显著成功,在推理、工具使用、规划和指令跟随方面表现突出。
这种智能为将LLM作为代理的认知核心提供了另一种可能性,有潜力提高规划能力。
论文提出新颖的分类法,将现有 LLM-智能体规划方法分成了五大类:任务分解、多计划选择、外部模块辅助规划、反思与细化以及记忆增强规划。
- 任务分解: 把大蛋糕切成小块,让智能体一步步地解决。类似分治思想
- 多计划选择: 给智能体一个“选择轮”,生成多个计划,然后挑一个最好的来执行。类似召回、排序。
- 外部模块辅助规划: 借助外部规划器,有个军师在旁边出谋划策。类似强化学习的判官。
- 反思与细化: 执行计划过程中,能够停下来反思,然后改进计划。
- 记忆增强规划: 一个记忆面包,记住过去经验,为将来规划提供帮助。
这些方法并不孤立,相互交织,共同提升智能体的规划能力。
1、任务分解
1.1 任务分解 (Task Decomposition) 两个关键步骤:
- “分解”: 将复杂任务分解成若干个子任务;
- “子计划”: 为每个子任务制定计划。
1.2 任务分解方法分为两类:
- 分解优先 (Decomposition-First Methods): 将任务分解为子目标,依次为每个子目标制定规。
- 交错分解(Interleaved Decomposition Methods): 在任务分解和子任务规划之间进行交错,每次只揭示当前状态的一个或两个子任务。
① 分解优先
“分解优先” 把所有拼图碎片按颜色或形状分类,然后再逐个拼起来。
- 优点: 子任务与原任务之间的联系更强,减少了任务遗忘和幻想风险。
- 缺点: 如果某个步骤出错,可能会影响到整个任务的完成。
- 案例: “HuggingGPT” 和 “Plan-and-Solve”
案例
• : LLM作为控制器,负责将人类输入的任务分解为子任务,选择模型,并生成最终响应。
• : 将原始的“让我们逐步思考”转变为两步提示指令:“我们首先制定计划”和“我们执行计划”。
• : 将自然语言描述的任务转化为编码问题,将每个动作形式化为函数,每个对象表示为变量。
② 交错分解
“交错分解”: 一边分解任务,一边制定计划,边拼图边调整拼图碎片位置。
- 优点: 可根据环境反馈动态****调整任务分解,提高了容错性。
- 缺点: 如果任务太过复杂,可能会导致智能体在后续的子任务和子计划中偏离原始目标。
案例: 类似于ReAct, COT, POT都可以归类到这个范畴中。
• (): 通过构建轨迹指导LLM推理复杂问题,利用LLM的推理能力进行任务分解。
• : 使用“让我们逐步思考”的指令,解锁LLM零样本推理能力。
• : 将推理和规划解耦,交替进行推理(思考步骤)和规划(行动步骤)。
1.3 CoT
思维链(Chain of Thought, CoT) 是一种 prompt 方法,通过编写每步推理逻辑(推理链),解决复杂问题。
COT 已然成为「诱导模型推理」的标准提示技术,可以增强解决复杂任务时的模型性能。
- 通过「Think step by step」,模型可以利用更多测试时计算(test-time computation)将任务分解为更小、更简单的子步骤,并能够解释模型的思维过程。
具体可用 Zero-shot 和 Few-shot 的 COT
1.4 Zero-shot COT 的实现分为两步:
- 第一步输入 得到推理链
- 第二步输入 + 得到最终答案
- 合并成一步:
1.5 总结
分解优先
- 优势: 创建了子任务与原始任务之间的强关联,降低了任务遗忘和幻觉风险。
- 劣势: 需要额外的调整机制,以避免某个步骤的错误导致整体失败。
交错分解
- 优势: 根据环境反馈动态调整分解,提高了容错性。
- 劣势: 但对于复杂任务,过长的轨迹可能导致LLM产生幻觉,偏离原始目标。
尽管任务分解显著提高了智能体解决复杂任务能力,但挑战依然存在。
- 任务分解带来的额外开销,需要更多的推理和生成,增加了时间和计算成本。
- 对于那些被分解成数十个子任务的高度复杂任务,智能体上下文长度限制可能会导致规划轨迹遗忘。
所以,任务分解给智能体的一本“任务攻略”,教它如何一步步解决问题。
- 但这本攻略也不是万能的,需要智能体有足够的“智慧”去理解和运用,同时还要避免在复杂情况下迷失方向。
未来的研究,或许能找到更高效、更可靠的任务分解方法,让智能体在面对复杂任务时更加游刃有余。
2、多计划选择
1、多规划选择 (Multi-Plan Selection)
由于任务复杂性 和 LLM固有的不确定性,给定任务,LLM代理可能会生成多种不同的规划。
如何让机器像人类一样,面对复杂任务时,能够生成多种可能解决方案,并从中选择最优的计划呢?
这正是“多计划选择”(Multi-Plan Selection)要解决的问题。
智能Agent面对复杂问题,可能会生成多个计划。但是,这些计划可能各不相同,甚至有些可能根本不可行。
怎么办? 多计划选择, 两个主要步骤:多计划生成和最优计划选择。
- 多计划生成阶段: LLMs 尝试生成一系列可能的计划。
- 最优计划选择阶段: Agent 从多个候选计划中选择一个最好的
多计划选择理论上很美,却面临着一些挑战。
- 首先,增加计算需求,尤其是对于大模型来说,计算成本可能会非常高。
- 依赖于LLM来评估计划的性能,这本身还存在不确定性,需要进一步的验证和调整。
①多计划生成
头脑风暴阶段尽可能多地提出解决方案。
主流方法利用生成模型在解码过程中的不确定性,比如通过温度采样或top-k采样获得多个不同推理路径。
- Tree-of-thought 提到了2种生成 planing 策略:sample、propose
- 采样 : 策略与 Self-consistency 策略一致,在解码过程中,LLM会采样多个plan。
- 提议 : 提示中使用少量示例指导LLM生成各种plan。
多规划生成涉及利用生成模型解码过程中的不确定性,通过不同采样策略来产生多个候选规划。
- : 采用简单直觉,即复杂问题的解决方案很少是唯一的。通过温度采样、top-k采样等策略,获得多个不同的推理路径。
- (ToT) : 提出“采样”和“提议”两种策略来生成规划。LLM在解码过程中会采样多个规划,并通过少量示例提示生成各种规划。
- (GoT) : 在ToT的基础上增加了思想转换,支持任意思想聚合。
- LLM-MCTS 和 RAP: 利用LLM作为启发式策略函数,通过蒙特卡洛树搜索()算法来获取多个潜在动作。
② 最优计划选择
最优计划选择阶段,Agent 从多个候选计划中选择一个最好。
候选规划中选择最优规划时,采用了多种启发式搜索算法, 比如 简单的多数投票策略,或者利用树结构来辅助多计划搜索
案例
- : 使用简单的多数投票策略,将得票最多的规划视为最优选择。
- (ToT) : 支持树搜索算法,如广度优先搜索(BFS)和深度优先搜索(DFS),使用LLM评估多个动作并选择最优动作。
- 和 : 也用树结构辅助多规划搜索,但采用MCTS算法进行搜索。
- : 利用经典的A算法协助LLM搜索,使用当前位置到目标位置的切比雪夫距离作为启发式成本函数来选择最优路径。
思考
• 多规划选择的可扩展性显著优势在于提供广阔搜索空间中广泛探索潜在解决方案的能力。
• 然而,这种优势伴随着计算需求的增加,尤其是对于具有大量token计数或计算的模型,这在资源受限的情况下尤为重要。
• LLM 在规划评估中的作用引入了新的挑战,因为LLM在任务排名方面的表现仍在审查中,需要进一步验证和微调其在此特定情境下的能力。
• LLM 的随机性质为选择过程增加了随机性,可能影响所选规划的一致性和可靠性。
3、外部规划器
外部规划器辅助规划 (External Planner-Aided Planning)
语音助手解决问题时,常常面临一些复杂环境约束, 单纯的LLM可能就会有点力不从心
- 比如解决数学问题或生成可接受的行动方案。
尽管LLM在推理和任务分解方面展现出了强大的能力,但在面对具有复杂约束的环境时,例如数学问题求解或生成可执行动作,仍然面临挑战。
根据引入的规划器类型,分为两类:
• (Symbolic Planner): 基于形式化模型,如PDDL,使用符号推理来找到从初始状态到目标状态的最优路径。
• (Neural Planner): 通过强化学习或模仿学习技术训练的深度模型,针对特定领域展现出有效的规划能力。
External Planner-Aided Planning,整体略复杂,很少会用到
虽然, LLM 在推理和任务分解方面展现出了强大的能力,但在面对复杂约束的环境时,借助外部规划器的规划方法显得尤为重要。LLM在这里主要扮演辅助角色,其主要功能包括解析文本反馈,为规划提供额外的推理信息,特别是解决复杂问题时。
这种结合统计AI和LLM的方法,有望成为未来人工智能发展的主要趋势。
① 基于符号
符号规划器一直是自动规划领域的基石
基于明确的符号化模型
- 比如 PDDL 模型,用符号推理来找出从初始状态到目标状态的最优路径。
- 通过结合基于PDDL的符号规划器,增强了LLM的规划能力,用LLM的语义理解能力和编码能力,把问题组织成文本语言提示输入LLM,然后利用Fast-Downward求解器进行规划。
- 如果环境动态交互式,接收到环境反馈后,将信息形式化为语言,然后用 BFS 求解器生成计划。
- 此外, 也在用PDDL语言形式化任务,并且加入了手动验证步骤,以防LLM生成的PDDL模型出现问题。
符号规划器代表工作:
• : 通过结合基于PDDL的符号规划器,使用LLM将问题组织成PDDL语言格式,并利用Fast Downward solver进行规划。
• : 特别为动态交互环境设计,将环境反馈信息形式化为PDDL语言,并使用BFS solver生成规划。
• : 在LLM生成的PDDL模型中增加手动验证步骤,并提出使用LLM生成的规划作为局部搜索规划器的初始启发式解。
• : 将自然语言描述的任务转换为ASP问题,然后使用ASP求解器CLINGO生成规划。
规划过程中,提出的计划可作为局部搜索规划器的初始启发式解,加快搜索进程。
② 基于神经网络
神经规划器是深度模型,通过或技术在收集的规划数据上训练,表现出在特定领域内有效的规划能力。
- 通过将规划过程建模为,训练策略网络来获得深度决策模型。
- 而 Decision Transformer 则通过,让一个transformer模型复制人类的决策行为。
问题复杂且少见时,这些小模型可能因训练数据不足而表现不佳。
有些研究将LLM与轻量级神经网络规划器结合起来,以进一步提升规划能力。
神经规划器代表工作:
-
: 早期提出将语言模型与基于RL的神经规划器结合起来,语言模型处理文本环境信息,生成系列候选动作,然后 策略网络重新对这些候选动作进行排序,最终选择最优动作。
-
利用中的,将规划过程分为和。
-
涉及复杂推理和理性思考,而则类似于通过长期训练发展起来的本能响应。
-
当执行计划时出现错误,表明问题更复杂时,Agent会切换到慢思考过程,LLM基于当前状态进行推理和规划。这种快思考和慢思考的结合在效率方面非常有效。
思考
• 这些策略中,LLM主要扮演支持角色,主要功能包括: 解析文本反馈并提供额外的推理信息以协助规划,特别是在解决复杂问题时。
• 传统符号AI系统在构建符号模型时复杂且依赖于人类专家,而LLM可以加速这一过程,有助于更快更优地建立符号模型。
• 符号系统优势包括理论完备性、稳定性和可解释性。将统计AI与LLM结合,有望成为未来人工智能发展的主要趋势。
4、自我反思
自我反思和自我修正(Reflection and Refinemen)
为什么要反思和修正?
- LLM 规划过程中可能会产生幻觉,或因为理解不足而陷入“思维循环”
- 这时候停下来回头看看,总结一下哪里出了问题,然后进行调整,就能更好地继续前进。
- 反思和总结失败有助于代理纠正错误并在后续尝试中打破循环
自我反思让自主智能体改进过去的行动决策、纠正之前的错误来迭代改进,在可以试错的现实任务中非常有用。
反馈和改进是规划过程中不可或缺的组成部分,增强了LLM Agent 规划的容错能力和错误纠正能力。
如何反思、修正?
- 迭代过程:、和。
案例
• : 利用迭代过程,包括生成、反馈和精炼。在每次生成后,LLM为计划产生反馈,促进基于反馈的调整。
论文 Self-Refine: Iterative Refinement with Self-Feedback
• : 扩展 方法,通过引入评估器来评估轨迹。LLM 检测到错误时生成自我反思,帮助纠正错误。
• : 使用外部工具,如知识库和搜索引擎,验证LLM生成的动作。然后利用外部知识进行自我纠正,显著减少事实错误。
论文 CRITIC: Large Language Models Can Self-Correct with Tool-Interactive Critiquing
• : 使用称为ReChain的自我纠正机制。LLM用于评估由交互推荐代理生成的响应和工具使用计划,总结错误反馈,并决定是否重新规划。
• : 首先收集错误的规划样本,然后使用更强大的GPT-4进行纠正。纠正后的样本随后用于微调LLM代理,从而在各种规模的LLaMA模型上实现显著的性能提升。
挑战
-
LLM 自我反思,目前还没有证明这种文本形式更新最终能够让LLM达到指定目标。
-
毕竟, 人类学习时,既要反思,还要老师或他人的指导,才能更有效地学习和进步。
LLM通过自我反思和修正,不仅能够提高自身的容错能力和错误纠正能力,而且还能在复杂问题规划中表现得更加出色。
思考
• 自我反思策略类似于强化学习的原则,其中代理作为决策者,环境反馈触发策略网络的更新。然而,与深度强化学习通过修改模型参数来更新不同,在LLM代理中,这种更新是通过LLM自身的自我反思来实现的,最终形成文本形式的反馈。
• 这些文本反馈可以作为长期和短期记忆,通过提示影响代理后续的规划输出。然而,目前还没有确凿的证据证明这种文本形式的更新最终能够使LLM代理达到特定目标。
5、记忆增强
记忆增强规划 (Memory-Augmented Planning)
记忆是提升规划能力的关键, 帮助代理从经验中学习并适应新情境。
通过记忆来增强 LLM-Agents 规划能力的方法: RAG记忆 和 参数记忆
① RAG 记忆
RAG,检索增强生成,用检索到的信息来增强LLM最新知识。
把过去的经验存储在记忆中,需要时检索出来。
RAG-based Memory(基于RAG的记忆):
• 概念:使用(Retrieval-Augmented Generation, )技术,将记忆以文本形式存储,并在需要时检索出来辅助规划。
• 方法:如 、 和 ,通过文本编码模型将记忆编码为向量,并建立索引结构,以便在规划时检索与当前任务相关的经验。
这些记忆通常以文本、表格形式或知识图谱等形式存储。
- 有的系统把人类每天行为经验以文本形式存储起来,然后基于相关性和新鲜度来检索记忆。
- 还有的系统用向量编码模型将每个记忆编码成向量,并建立索引结构,以便在检索时快速找到相关信息。
案例
- :以文本形式存储类似于人类的日常经验,并根据当前情况的相关性和新鲜度来检索记忆。
- 、 和 :将每个记忆编码成向量,并使用索引结构(如FAISS库)来组织这些向量。检索时,使用当前状态的描述作为查询来检索记忆池中的记忆。区别在于更新记忆的方式不同。
- :借鉴了计算机架构中的多级存储概念,将LLM 上下文视为RAM,并将额外的存储结构视为磁盘。LLM 自主决定是检索历史记忆还是将当前上下文保存到存储中。
- :将历史记忆以Q值表的形式存储,每个记录是一个包含环境、任务、动作和Q值的元组。在检索时,会同时检索正面和负面记忆,以便LLM根据环境和任务的相似性生成计划。
② 参数记忆
参数记忆通过微调LLM,将 Agent历史经验样本嵌入到模型参数中。
Embodied Memory(体现记忆):
• 概念:通过微调(fine-tuning)LLM,将代理的历史经验样本嵌入到模型参数中,从而增强记忆能力。
• 方法:如 和 ,这些方法使用从代理与环境交互中收集的数据来微调模型,使其能够记住与规划相关的信息,并在规划任务中表现更好。
这些经验样本通常来自Agent与环境的交互,可能包括关于环境的常识知识、与任务相关的先验知识,以及成功或失败的经验。
虽然微调一个大参数的模型成本很高,但通过PEFT,可以通过只训练一小部分参数来降低成本并加快速度。
思考
两种方法都有优势和局限性。
记忆更新方式:
- 基于 RAG 方法提供了实时、低成本的外部记忆更新,主要在自然语言文本中,但依赖于检索算法的准确性。
- 而 FineTuning 微调通过参数修改提供了更大的记忆容量,但记忆更新成本高,并且在保留细节方面存在挑战。
总结
• 记忆增强的LLM代理在规划中表现出更强的增长潜力和容错能力,但记忆生成在很大程度上依赖于LLM自身的生成能力。
• 通过自我生成的记忆来提升较弱LLM代理的能力仍然是一个具有挑战性的领域。
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以微信扫描下方CSDN官方认证二维码,免费领取【】