一篇来自人大高瓴的综述,详细介绍了基于LLM的智能体的发展和应用,以及对未来的预测。作为AI当前最火的领域,智能体上手容易,操作简单,本质上就是框架+prompt,但是其效果惊艳,能够完成很多LLM无法完成的简单任务,其在未来一定大有可为。
Paper | https://arxiv.org/pdf/2308.11432.pdf |
---|---|
Code | https://github.com/Paitesanshi/LLM-Agent-Survey |
From | arXiv 7 Sep 2023 |
自主智能体一直都是学术界和工业界的重点研究焦点。先前的研究关注于具有有限知识的智能体在隔绝环境下的训练,这与人类学习方式大相径庭,因此很难像人类一样做决策。最近,LLMs通过获取的丰富web知识,在完成人类等级只能上展现出非凡的潜力。本文对该领域研究进行了全面的调查,作者首先讨论了基于LLMs的自主智能体的构建,提出一个大一统的框架,接着作者阐述了基于LLMs的自主智能体在社科、自然科学和工程领域的各种应用,最后作者深入研究了基于LLMs的自主智能体常用的评估策略。基于这些研究,作者也提出了这个领域的一些挑战和未来方向。
自主智能体一直都被认为是解决AGI的有前途的方法,它有望通过自我指导的规划和行动来完成任务。但是之前的工作,智能体都在隔绝的环境中,基于简单启发式策略函数来学习,这与人类学习方式大相径庭,因此它们无法复刻人类的决策。
近年来,LLMs基于海量数据和模型参数获得了类人类智能,取得显著的成效。因此越来越多研究将LLMs作为中央控制器,来指导自主智能体获取人类决策的能力。其关键是为LLMs配备记忆和规划等关键能力,让它们像人类一样完成任务。
本文对基于LLMs的自主智能体提做了一个全面的综述,具体来说,作者将综述分为三个部分:构建,应用和评估。构建主要关注如何设计更好的智能体框架,以及激发和增强智能体完成不同任务的能力。应用主要关注智能体在社会科学、自然科学和工程上的应用。评估部分作者深入研究了评估基于 LLM 的自主代理的策略,重点关注主观和客观策略。
总的来说,本文对基于LLM的自主智能体领域进行了系统的回顾,建立了全面的分类法。主要关注:智能体创建,应用和评估。基于之前的研究,作者确定了领域的挑战,讨论了未来发展方向。
我们期待基于LLM的自主智能体能够利用LLM的类人类能力来解决各种问题,为了实现这个目标,有两个重要的方面:
作者首先整合了一个全面的统一框架,接着根据是否对LLM进行微调,总结智能体获取能力的策略。下面是详细的介绍。
LLMs在QA任务上展现巨大的潜力,但是自主智能体和QA又远远不同,因为它们需要根据指定的角色,像人一样自主感知环境并从环境中学习。为了建立LLM和智能体的桥梁,关键在于设计合理的智能体架构帮助LLM最大化其能力。本文提出的大一统框架如上图所示,由画像模块、记忆模块、规划模块和动作模块组成。画像模块用于识别智能体的角色,记忆模块和规划模块让智能体在动态环境中可以根据历史的行为计划未来的动作。动作模块将智能体的决策付诸于行动。画像模块影响记忆和规划模块,三者共同影响动作模块。
自主智能体通过承担特定的角色来执行任务,而这一角色很大程度取决于具体的应用场景。那么如何为智能体创建特定的画像呢,现有的方法通常采用如下三种策略:
作者认为,将上述三种方法结合起来可能有额外的好处,比如数据对齐可以让画像更真实,再加上手动构建可以丰富画像的信息。画像模块作为智能体设计的基础,对智能体的记忆、规划和动作过程都有很大的影响。
记忆模块存储从环境中获取的信息,并利用已有的记忆帮助未来的动作。记忆模块帮助智能体积累经验,自我提升,从而以有效、合理、一致的方式行事。本小节关注于记忆模块的结构、格式和操作。
基于LLM的自主智能体通常结合人类记忆的原理和机制。具体来说,人类有长期记忆和短期记忆,在智能体中,也有类似的机制,长期记忆类似于外部向量存储,智能体可以根据需求快速检索查询,短期记忆类似于受Transformer架构约束的上下文窗口的输入信息。下面将介绍两种智能体中常见的架构:
只有长期记忆的方法很少出现在文献中,因为智能体在与环境交互的过程中总是需要短期记忆捕获动作之间的连续性。
从格式上来看,记忆又可以分为自然语言记忆和embedding记忆等,下面进行列举:
上面只是有代表性的记忆形式,还有很多其它的形式。不同的记忆形式有自己优势的场景。
记忆模块通过与环境交互去获取、积累和使用,这一般涉及三个操作:记忆存储,记忆读取和记忆反思。
传统LLM和Agent的一个显著区别是后者必须在动态环境中学习和完成任务的能力,这个区别的体现主要在记忆模块和规划模块。
当面对复杂 的任务时,人类会倾向将复杂任务分解为多个简单的子任务并单独解决。规划模块即赋予智能体这种能力。具体来说,作者根据是否接受反馈将现有研究分类如下:
总的来说,没有反馈的规划只能适用于某些简单的任务,而有反馈的规划需要更为细致的设计,但是能够解决更多复杂的任务。
动作模块用于将智能体的决策转换为具体的结果,直接与环境交互。它受到画像,记忆和规划模块的影响。本节从动作目标,动作产生,动作空间,动作影响四个方面对动作模块进行介绍。
智能体可以执行具有任何目标的动作。这样的目标有:
与传统的LLM不同,智能体会通过不同的策略和来源来采取动作。有两种常见的动作产生策略:
动作空间是指智能体可以执行的一组可能的动作。这些动作主要分为两类,外部工具和LLMs内部知识。
动作执行后会产生很多的结果。这些结果可以分为如下类别:
上面的框架相当于智能体的硬件,但是仅仅依靠硬件资源不足以实现有效的任务性能,因为智能体可能缺乏必要的特定任务的能力、技能和经验,这些可以视作软件资源。为了让智能体配备这些资源,主要根据是否微调分为两种策略。
增强智能体完成任务能力的直接方法是在任务相关的数据集上进行微调。这些方法如下:
在智能体时代,模型的能力可以通过模型微调,prompt工程和机制工程获取。机制工程是一个宽泛的概念,涉及开发专门模块、引入新的工作规则以及其它增强智能体能力的策略。上图是模型在获取能力上策略的转变过程。
微调的方式虽然能够通过调整参数来提高智能体的能力,但是只能应用在开源的LLM,无需微调的方式通常基于精细的Prompt工程和机制工程来增强智能体。它们不受开源闭源的限制,但是受到上下文窗口的限制。
上面这些小节就是基于LLM的智能体构建细节,主要在于架构和能力获取两个方面。相关的工作见下表。
基于LLM的智能体在很多领域展现出显著的潜力。本节基于前面的研究将应用场景分类为三种:社会科学,自然科学和工程。
社会科学致力于研究社会以及社会人与人之间的关系。基于LLM的智能体可以利用其出色的人类理解能力、思考和任务解决能力来促进这个领域的发展。下面是几个典型的领域:
在自然科学中,基于LLM的智能体也有很多的应用:
基于LLM的智能体在工程研究和应用上也展现了强大的潜能:
为了推动基于LLM的智能体的应用,研究人员还引入了开源库,帮助其他开发人员根据自己的需求快速实现和评估智能体。例如开源框架LangChain,可以自动编码、测试、调试和文档生成。基于语言模型和数据源集成,LangChain通过自然语言通信和多角色智能体协作来实现高效的软件开发。此外还有自动化智能体AutoGPT、通过对话完成任务的WorkGPT,利用大语言模型的能力,再加上爬虫获取的外部知识来总结和汇总摘要。
当然,基于智能体的LLM虽然支持上面的一系列应用,但也会带来一定的风险与挑战。一方面,大模型本身会易出现幻觉问题,导致提供错误的答案,因此用户必须采取适当的措施。另一方面,基于LLM的智能体可能会被恶意使用,比如发展化学武器。需要采取适当的安全措施。
有两种常见的评估策略,即第三节图中的客观评估和主观评估。
主观评估主要基于人类的判断,通常适用于没有评估数据集或者难以量化的场景。下面是两种常用的主观评估策略:
基于LLM的智能体通常设计用于服务人类,因此主观评估方法非常重要,但是这种方法仍需面对高昂成本、低效和人口偏差。为了解决这个问题,很多研究者采用LLM作为主观评估的代理,随着LLM模型能力的提升, 这样的评估策略会越来越可信可用。
客观评估是采用定量指标来评估基于LLM的智能体的能力。客观评估旨在为智能体提供具体的、可测量的见解。它包括三个重要方面:评估指标、协议和基准。
常见的评估指标如下:
如何利用这些评估指标也很重要,通常有如下的评估协议:
给定指标和协议,剩下的关键就是采用合适的基准执行评估。过去常用ALFWorld、IGLU和Mincraft等模拟环境作为评估的benchmark,现有的benchmark有AgentBench,它提供了一个全面的框架,用于评估跨环境智能体。SocKET评估LLM社交能力,AgentSims评估基于LLM的智能体在交互环境的有效性。WebShop用于评估基于LLM的智能体的产品搜索和检索能力。此外还有多个benchmark,详见原文。
客观评估采用不同的指标对基于LLM的智能体的能力进行评估,虽然无法完美衡量,但是也是对主编评估的重要补充。
随着大语言模型的蓬勃发展,出现了大量的总数,提供各个方面的见解,比如有介绍LLM的背景和发展,LLM在下游任务上的应用与挑战,LLM的幻觉问题,LLM的对齐方法,LLM推理能力的探索等等,但是一直没有基于LLM的Agent的相关综述。本文整理了超过百篇基于LLM的智能体的相关著作,涵盖其构建、应用和评估。
虽然基于LLM的智能体取得了很多显著的成功,但是也有很多局限性和挑战。
角色扮演在智能体对话中至关重要,但是LLM会很难扮演不熟悉的角色(即在预训练过程中很少见的)。此外智能体很难模拟人类的认知心理,导致对话场景缺乏自我意识。潜在的解决方法是微调,但是也很难保证微调后其它角色扮演仍表现良好。此外还有设计量身定制的框架,但是这样的设计空间太大,很难找到最佳。
传统的LLM通过微调来达到符合人类的价值观,但是现有的LLM都是与广义的人类价值观对齐,需要有针对不同场景的人类价值观对齐,比如消极的人类价值观,通过研究这个可以帮助阻止现实中存在的类似问题。可以尝试的方向是设计有趣的Prompt。
为了确保智能体的合理行为,设计者通常设计不同的模块到LLM中(包含大量的Prompt)来促进一致的操作和有效的沟通。但是Prompt的方式缺乏稳健性,可能会影响别的模块,可行的解决方案有:反复试错,或者GPT自行生成。
幻觉对LLM提出了根本的挑战,为了解决这个问题,一种可能的方法是讲人类校正反馈纳入到人类与智能体交互的循环中。
基于LLM的智能体的一个重要的应用是模拟人类行为。但是LLM通常有强大的知识储备,因此在做判断的时候通常会用到广泛的知识,与真实人类做决策行为不同。如何约束它使用这些知识也是未来的方向。
LLM推理速度较慢,如果采用密钥部署多个智能体会显著增加时间成本。
本文系统总结了基于LLM的智能体现有的研究,从构建、应用和评估三个方面进行介绍和总结。最后作者还提出这个领域的几点挑战,预期该领域的未来方向。
一篇总结非常到位的基于LLM智能体的综述,总结了从22年底到23年9月近百篇智能体的工作,当然后序还是有很多衍生的工作产生,毕竟这个领域实在是太火了。在我看来,真正的智能体就是文章中所提到的四合一,即画像、规划、记忆和动作。画像限定了智能体的角色,也就限定了智能体的活动空间和范围,规划是针对特定任务所设计的步骤,记忆是便于复用以前的经验,而动作是执行计划,是真正与环境的交互,人在执行任务的时候也是同样的过程,首先人本身有自己的角色,是老师、学生还是设计师等等,有了角色,面对当前任务才会采取特定角色的规划策略,执行任务时也会根据自身的技能与环境交互,在交互过程中复用以前的知识。这样的智能体才真正像人类一样行动,才是真正意义上的智能体。
那么对于火热的智能体领域,文章中也提到了未来的发展与挑战,当前很多大公司已经在制定智能体的框架,那么小的研究团队能做的也就是找到特定的应用场景做应用,比如机器人,这就相当于给机器人加上大脑。或者从智能体本身存在的问题出发,设计出通用的方法,比如怎样减少幻觉,如何合理规划,如何更好复用记忆,如何减少通信次数提高效率。面对这一新兴的领域,有许许多多的工作值得我们去做。