大语言模型智能体规划能力 | 豆包MarsCode AI刷题

317 阅读13分钟

1 什么是大模型规划(Planning)

随着大型语言模型(LLM)展现出显著的智能,利用LLM作为自主Agent规划模块的进展受到了更多关注。 Planning 指

  • 任务分解:把大任务划分成小任务,进而解决复杂问题;
  • 反思和提炼:基于已有动作做自我批评和自我反思,从错误中学习优化接下来的动作。

任务分解的典型实现方案是 CoT(Chain of thought)和 ToT(Tree of thoughts)。

一项复杂任务包括多个子步骤,智能体需要提前将任务分解,并进行规划。

规划模块分类

  • 无反馈规划:大语言模型在做推理的过程中无需外界环境的反馈。这类规划进一步细分为三种类型:
    • 单路推理,仅一次大语言模型调用就输出完整的推理步骤;
    • 多路推理,借鉴众包思想,让大语言模型生成多个推理路径,进而确定最佳路径;
    • 借用外部的规划器。
  • 有反馈规划:外界环境提供反馈,而大语言模型需要基于环境的反馈进行下一步以及后续的规划。这类规划反馈的提供者来自三个方面:环境反馈、人类反馈和模型反馈。

2 大模型规划能力分类

中科大的一篇综述提供了基于LLMAgent规划的首个系统性视角,涵盖了旨在提高规划能力的最新工作。本文提供了现有LLM-Agent规划工作的分类,可以归类为任务分解、计划选择、外部模块、反思和记忆。

由于基于LLM的Agent规划的研究呈现出繁荣景象,已经提出了各种方法来开发规划能力的上限。为了更好地鸟瞰现有的先进工作,我们挑选了一些代表性和有影响力的工作,分析了它们的动机和基本思想。为了更好地理解,我们在表1中说明了分析。根据表格,我们为基于LLM的Agent规划提出了一种新颖和系统的分类法,将现有工作分为五个重要类别,涵盖了任务分解、多计划选择、外部模块辅助规划、反思和提炼以及记忆增强规划,如图1所示。这里我们简要总结以下五个方向。

image.png

任务分解。 现实生活的任务通常是复杂和多步骤的,为规划带来了严重的难度。这种方法采用了分而治之的思想,将复杂的分解为几个子任务,然后依次为每个子任务规划。该过程可以表示如下:g0, g1, ···, gn = decompose(E, g; Θ, P);pi = (ai 0, ai 1, ··· ai m) = sub-plan(E, gi; Θ, P)。

多计划选择。 这种方法专注于引导LLM“思考”更多,为任务生成各种替代计划。然后使用与任务相关的搜索算法来选择一个计划执行。该过程可以表示如下:P = p1, p2, ···, pn = plan(E, g; Θ, P);p* = select(E, g, P; Θ, F)。其中F代表搜索策略,例如一些树搜索算法。

外部规划器辅助规划。 这种方法旨在利用外部规划器提升规划过程,旨在解决生成计划的效率和可行性问题,而LLM主要扮演规范化任务的角色。该过程可以表示如下:h = formalize(E, g; Θ, P); p = plan(E, g, h; Φ)。其中Φ表示外部规划器模块,h代表规范化信息。

反思和提炼。 这种方法强调通过反思和提炼来提高规划能力。它鼓励LLM反思失败,然后改进计划。该过程可以表示如下:p0 = plan(E, g; Θ, P); ri = reflect(E, g, pi; Θ, P);pi+1 = refine(E, g, pi, ri; Θ, P);

记忆增强规划。 这种方法通过额外的记忆模块增强规划,在其中存储有价值信息,例如常识知识、过去的经历、特定领域的知识等。在规划时检索信息,作为辅助信号。该过程可以表示如下:m = retrieve(E, g; M); p = plan(E, g, m; Θ, P)。其中M代表记忆模块。

这五个方向是相互联系而不是相互排斥的,通常涉及同时采用多种技术。在后续部分,我们将深入探讨有关LLMAgent规划的五个研究方向,阐明它们的动机,提出代表性解决方案,并解决固有局限性。

3 任务分解

在现实世界场景中,环境通常以复杂性和可变性为特征,因此通过单步规划过程解决复杂任务是一个巨大的挑战。
这种将复杂任务简化为几个更简单的子任务的过程是人类的一个显著能力,体现在将一个任务分解为几个更简单的子任务上,这类似于众所周知的算法策略“分而治之”,如图 (1) 所示。任务分解通常涉及两个关键步骤:首先,将复杂任务分解为“子任务”,称为“分解”步骤;其次,为子任务规划,称为“子计划”步骤。在该领域中,当前的任务分解方法通常分为两类:首先分解和交错分解,如图 2 所示。

image.png

4 多计划选择

由于任务的复杂性和LLM固有的不确定性,LLMAgent为给定任务生成的计划可能是多样化的。尽管LLM拥有强大的推理能力,但LLM生成的单一计划可能是次优的,甚至不可行。更自然的方法是多计划选择,包括两个主要步骤:多计划生成和最优计划选择。

4.1 多计划生成
多计划生成涉及生成多个计划路径以构成候选计划集。主流方法考虑使用生成模型解码过程中的不确定性。自洽性 [Wang 等人,2022b] 采用了一个简单的直觉:复杂问题的解决方案很少是唯一的。与 CoT 不同,CoT 生成一个路径,自洽性通过解码过程中的采样策略(如温度采样、top-k 采样)获得多个不同的推理路径。思维树 (ToT) [Yao 等人,2023] 提出了两种生成计划(即思维)的策略:采样和提议。采样策略与自洽性一致,LLM 在解码过程中会采样多个计划。提议策略通过提示中的少量示例明确指示 LLM 生成各种计划。思维图 (GoT) [Besta 等人,2023] 通过添加思维的转换来扩展 ToT,支持任意思维聚合。LLM-MCTS [Zhao 等人,2023b] 和 RAP [Hao 等人,2023] 利用 LLM 作为蒙特卡洛树搜索 (MCTS) 的启发式策略函数,通过多次调用获得多个潜在动作。

4.2 最优计划选择
为了在候选计划中选择最优计划,采用了多种策略作为启发式搜索算法。自洽性 [Wang 等人,2022b] 应用了简单的多数投票策略,将得票最多的计划视为最优选择。得益于树状结构,思维树 (ToT) [Yao 等人,2023] 支持树搜索算法,如传统的 BFS 和 DFS。在选择要扩展的节点时,它使用 LLM 评估多个动作并选择最优的。与 ToT 类似,LLM-MCTS [Zhao 等人,2023b] 和 RAP [Hao 等人,2023] 也采用树结构来协助多计划搜索。与 ToT 不同,它们采用蒙特卡洛树搜索 (MCTS) 算法进行搜索。LLM A* [Xiao 和 Wang,2023] 利用人工智能中的经典 A* 算法来协助 LLM 进行搜索。从当前位置到目标位置的切比雪夫距离作为选择最优路径的启发式成本函数。

5 外部规划器

外部规划器辅助规划 (External Planner-Aided Planning)

语音助手解决问题时,常常面临一些复杂环境约束, 单纯的LLM可能就会有点力不从心,比如解决数学问题或生成可接受的行动方案。尽管LLM在推理和任务分解方面展现出了强大的能力,但在面对具有复杂约束的环境时,例如数学问题求解或生成可执行动作,仍然面临挑战。

根据引入的规划器类型,分为两类:

  • 符号规划器(Symbolic Planner): 基于形式化模型,如PDDL,使用符号推理来找到从初始状态到目标状态的最优路径。
  • 神经规划器(Neural Planner): 通过强化学习或模仿学习技术训练的深度模型,针对特定领域展现出有效的规划能力。

External Planner-Aided Planning,整体略复杂,很少会用到

虽然, LLM 在推理和任务分解方面展现出了强大的能力,但在面对复杂约束的环境时,借助外部规划器的规划方法显得尤为重要。LLM在这里主要扮演辅助角色,其主要功能包括解析文本反馈,为规划提供额外的推理信息,特别是解决复杂问题时。

这种结合统计AI和LLM的方法,有望成为未来人工智能发展的主要趋势。

6 自我反思

自我反思自我修正(Reflection and Refinemen)

为什么要反思和修正?

  • LLM 规划过程中可能会产生幻觉,或因为理解不足而陷入“思维循环
  • 这时候停下来回头看看,总结一下哪里出了问题,然后进行调整,就能更好地继续前进。
  • 反思和总结失败有助于代理纠正错误并在后续尝试中打破循环

自我反思让自主智能体改进过去的行动决策、纠正之前的错误来迭代改进,在可以试错的现实任务中非常有用。

反馈和改进是规划过程中不可或缺的组成部分,增强了LLM Agent 规划的容错能力和错误纠正能力。

7 记忆增强规划

对于Agent来说,记忆是增强规划能力和潜在成长的关键途径。关于 LLM-Agent中的记忆机制,目前有两种主要方法通过记忆增强规划能力:基于 RAG 的记忆和体现记忆。

7.1 基于 RAG 的记忆

记忆是提升规划能力的关键, 帮助代理从经验中学习并适应新情境。

通过记忆来增强 LLM-Agents 规划能力的方法: RAG记忆 和 参数记忆

① RAG 记忆

RAG,检索增强生成,用检索到的信息来增强LLM最新知识。把过去的经验存储在记忆中,需要时检索出来。

RAG-based Memory(基于RAG的记忆):

  • 概念:使用检索增强生成(Retrieval-Augmented Generation, RAG)技术,将记忆以文本形式存储,并在需要时检索出来辅助规划。
  • 方法:如 MemoryBankTiM 和 RecMind,通过文本编码模型将记忆编码为向量,并建立索引结构,以便在规划时检索与当前任务相关的经验。

这些记忆通常以文本表格形式或知识图谱等形式存储。

  • 有的系统把人类每天行为经验以文本形式存储起来,然后基于相关性和新鲜度来检索记忆。
  • 还有的系统用向量编码模型将每个记忆编码成向量,并建立索引结构,以便在检索时快速找到相关信息。
② 参数记忆

参数记忆通过微调LLM,将 Agent历史经验样本嵌入到模型参数中。

Embodied Memory(体现记忆):

  • • 概念:通过微调(fine-tuning)LLM,将代理的历史经验样本嵌入到模型参数中,从而增强记忆能力。
  • • 方法:如 CALM 和 TDT,这些方法使用从代理与环境交互中收集的数据来微调模型,使其能够记住与规划相关的信息,并在规划任务中表现更好。

这些经验样本通常来自Agent与环境的交互,可能包括关于环境的常识知识、与任务相关的先验知识,以及成功或失败的经验。虽然微调一个大参数的模型成本很高,但通过PEFT,可以通过只训练一小部分参数来降低成本并加快速度。

8 结论

自从大型语言模型(LLM)显示出智能的迹象以来,利用LLM增强Agent规划能力的关注度日益增加。本文总结了主要方向,并在第3至7节中详细比较和分析了各种方法。我们还对四个基准进行了实验,比较了几种代表性方法的有效性,并表明随着费用的增加,性能也有所提高。尽管这些工作在规划能力方面取得了进步,但仍存在一些重大挑战。

幻觉问题。 在规划过程中,LLM经常遭受幻觉的困扰,导致不合理的计划、不忠实于任务提示或未能遵循复杂指令。例如,计划可能包括与环境中不存在的项目交互的动作。尽管这些问题可以通过精心设计的提示工程来缓解,但它们反映了LLM的根本缺陷

生成计划的可行性。 LLM本质上是基于统计学习的,通过大量数据优化下一个词的概率。与符号人工智能相比,这种方法在遵守复杂约束方面存在困难,尤其是在处理LLM训练期间遇到的不常见约束时。因此,LLM生成的计划可能缺乏可行性,没有考虑足够的先决条件。将LLM与符号规划模型连接起来,而不改变LLM本身,是一个有前景的未来方向。

生成计划的效率。 生成高效计划是规划中的一个关键问题。然而,在现有的LLMAgent中,规划是基于LLM输出的生成计划进行的,没有考虑生成计划的效率。因此,未来的开发可能需要引入额外的效率评估模块,与LLM协同工作,以实现更高效的计划。

多模态环境反馈。 LLM最初设计用于处理文本输入,但现实世界的环境反馈通常是多模态的,包括图像、音频等,这些在自然语言中难以描述。因此,LLMAgent在处理此类场景时面临限制。未来的考虑可能涉及整合多模态大型模型的发展,并重新审视相关的规划策略。

细粒度评估。 现有的基准测试大多依赖于任务的最终完成状态,缺乏细粒度的逐步评估。此外,环境反馈通常是基于规则的、简单的,并且与现实世界场景相距甚远。一个潜在的未来方向是利用像LLM这样的高智能模型来设计更现实的评估环境。