下一代语言模型范式LAM崛起!AutoGPT模式席卷LLM,三大组件全面综述:规划、记忆和工具

人工智能
以AutoGPT, GPT-Engineer和BabyAGI等项目为代表的大型动作模型(Large-Action Models,LAM)则将语言模型作为智能体的核心大脑,可以将复杂任务分解,并在每个子步骤实现自主决策,无需用户参与即可解决问题。

由ChatGPT掀起的这波AI浪潮已经将我们带入了人工智能时代,语言模型已经成为日常生活中不可或缺的工具。

但目前的语言模型只能响应用户的查询指令,实现一些生成任务,比如写故事、生成代码等。

而以AutoGPT, GPT-Engineer和BabyAGI等项目为代表的大型动作模型(Large-Action Models,LAM)则将语言模型作为智能体的核心大脑,可以将复杂任务分解,并在每个子步骤实现自主决策,无需用户参与即可解决问题。

图片图片

LAM的崛起,也标志着语言模型的研发正在走向新阶段,本文将对LAM开发中涉及到的技术进行综述,具体包括三个关键组件,即规划、记忆和工具。

Planning 规划

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

任务分解

思维链(Chain of Thought, CoT)已然成为「诱导模型推理」的标准提示技术,可以增强解决复杂任务时的模型性能。

图片图片

论文链接:https://arxiv.org/pdf/2201.11903.pdf

通过「Think step by step」,模型可以利用更多测试时计算(test-time computation)将任务分解为更小、更简单的子步骤,并能够解释模型的思维过程。

思想之树(Tree of Thoughts)在每个子步骤中探索多种推理可能性来扩展CoT。

图片图片

论文链接:https://arxiv.org/abs/2305.10601

首先将问题分解为多个思维步,并在每个步骤内生成多个思路,从而创建出一个树结构解决方案;搜索过程可以是BFS(广度优先搜索)或DFS(深度优先搜索),其中每个状态由分类器(经由提示)或多数投票来评估。

任务分解可以通过简单的提示,如「Steps for XYZ.\n1.」,「What are the subgoals for achieving XYZ」 ;或是使用任务相关的指令,如「Write a story outline」可以用于写小说;也可以由人输入。

自我反思 Self Reflection

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

ReAct通过将动作空间扩展为任务相关的离散动作和语言空间的组合,在LLM中集成了推理和动作,其中动作使得LLM能够与环境交互(例如使用维基百科搜索API),而语言空间可以让LLM以自然语言的方式生成推理轨迹。

图片图片

论文链接:https://arxiv.org/pdf/2210.03629.pdf

ReAct提示模板包含了LLM思考的明确步骤,大致格式为:

图片图片

在知识密集型任务和决策任务的实验中,ReAct 比只用Act(移除Thought)的基线模型效果更好。

图片图片

Memory 记忆

记忆类型

记忆可以被定义为用于获取、存储、保留和后续检索信息的过程,人类大脑中主要有三种类型的记忆。

图片图片

1. 感官记忆(Sensory memory)

这种记忆处于记忆的最早阶段,提供了在原始刺激结束后保留感官信息(视觉,听觉等)印象的能力,通常只持续几秒钟。

感官记忆的子类别包括图标记忆(视觉)、回声记忆(听觉)和触觉记忆(触觉)。

2. 短时记忆(STM)或工作记忆(Working Memory)

存储了当下能意识到的所有信息,以及执行复杂的认知任务(如学习和推理)所需的信息,大概可以存储7件事,持续20-30秒。

3. 长期记忆(LTM)

顾名思义,LTM可以将信息存储相当长的时间,范围从几天到几十年不等,具有基本上无限的存储容量。

LTM有两种亚型:

1)显式/陈述性记忆,即对事实和事件的记忆,指那些可以有意识地回忆起来的记忆,包括情景记忆(事件和经验)和语义记忆(事实和概念)。

2)隐式/程序性记忆,这种类型的记忆是无意识的,包括自动执行的技能和例程,比如骑自行车或在键盘上打字。

对应到语言模型的概念上:

1. 作为原始输入(包括文本、图像或其他形式)的学习嵌入表征的感官记忆;

2. 短期记忆就是上下文学习(in-context learning),非常短且影响范围有限,受到Transformer的上下文窗口长度的限制。

3. 长期记忆作为智能体在查询时可用的外部向量存储,可通过快速检索访问。

最大内积搜索Maximum Inner Product Search (MIPS)

外部记忆可以缓解有限注意力span的限制,常用的操作是将信息嵌入表征保存到支持快速最大内积搜索(MIPS)的向量存储数据库中。

为了优化检索速度,一般都会选择近似最近邻(ANN,approximate nearest neighbors)算法返回前k个最近邻节点,牺牲一点准确性以换取巨大的速度提升。

图片图片

常用的ANN算法包括LSH(Locality-Sensitive Hashing),ANNOY, HNSW, FAISS, ScaNN

Tool Use工具使用

能使用复杂工具是人类高智力的体现,我们可以创造、修改和利用外部物体来完成超出身体和认知极限的事情,同样,为LLM配备外部工具也可以显著扩展模型功能。

一只海獭漂浮在水中时,用岩石劈开贝壳的图片。虽然其他一些动物可以使用工具,但其复杂性无法与人类相比。

MRKL(模块化推理、知识和语言),是一个神经符号架构的自主智能体,包含一组「专家」模块和一个用作路由器(router)的通用语言模型,以路由查询到最合适的专家模块。

图片图片

论文链接:https://arxiv.org/pdf/2205.00445.pdf

每个模块可以神经网络,也可以是符号模型,例如数学计算器、货币转换器、天气API

研究人员做了一个微调语言模型以调用计算器的实验,使用算术作为测试用例,结果表明,解决verbal数学问题比解决明确陈述的数学问题更难,因为LLM(7B Jurassic 1-large 模型)不能可靠地为基本算术提取正确的参数,也凸显了符号工具的重要性,以及了解何时利用何种工具的重要性。

TALM(工具增强语言模型)和Toolformer都是微调语言模型以学习使用外部工具API

图片图片

论文链接:https://arxiv.org/pdf/2302.04761.pdf

ChatGPT插件和OpenAI API函数调用也是增强语言模型使用工具能力的例子,其中工具API的集合可以由其他开发人员提供(如插件)或自定义(如函数调用)。

API-Bank是用于评估工具增强型LLM性能的基准,包含53个常用的API工具,一个完整的工具增强的LLM工作流,以及264个标注对话,用到568次API调用。

图片图片

论文链接:https://arxiv.org/pdf/2304.08244.pdf

API的选择非常多样化,包括搜索引擎、计算器、日历查询、智能家居控制、日程管理、健康数据管理、账户认证工作流等。

由于API数量众多,LLM首先可以访问API搜索引擎,找到合适的API调用,然后使用相应的文档进行调用。

图片图片

在API-Bank工作流程中,LLM需要做出三次决策,每一步都可以评估决策的准确性:

1. 是否需要API调用;

2. 确定要调用的正确API:如果不够好,则LLM需要迭代地修改API输入(例如决定搜索引擎API的搜索关键字);

3. 基于API结果的响应:如果结果不满意,则模型可以选择改善并再次调用。

该基准可以在三个层次上评估智能体的工具使用能力。

层次1:评估调用API的能力

给定API的描述,模型需要确定是否调用给定的API,正确调用并正确响应API返回;

层次2:检查检索API的能力

模型需要搜索可能解决用户需求的API,并通过阅读文档学习如何使用。

层次3:评估规划API的能力,而非检索和调用

如果用户请求不明确(例如安排小组会议、预订旅行的航班/酒店/餐厅),模型可能不得不进行多次API调用来解决。

LAM的应用

科学发现

ChemCrow系统内的语言模型通过13个专家设计的工具进行能力增强,可以完成跨有机合成、药物发现和材料设计的任务。

图片图片

论文链接:https://arxiv.org/abs/2304.05376

在LangChain中实现的工作流程包括了在ReAct和MRKL中描述的机制,并将CoT推理与任务相关的工具相结合:

语言模型先提供一个工具名称列表、用途描述以及有关预期输入/输出的详细信息;然后指示模型在必要时使用提供的工具回答用户给定的提示,指令要求模型遵循ReAct格式,即Thought, Action, Action Input, Observation

实验结果来看,用语言模型评估的话,GPT-4和ChemCrow的性能几乎相当;但当人类专家评估时,在特定解决方案的完成和化学正确性进行的实验结果显示,ChemCrow的性能远远超过GPT-4

实验结果表明,使用LLM来评估需要深入专业知识领域的性能存在问题,可能会导致LLM不知道内在缺陷,无法很好地判断任务结果正确性。

另一篇论文研究了语言模型处理复杂科学实验的自主设计、规划和性能,可以使用工具浏览互联网、阅读文档、执行代码、调用机器人实验API以及利用其他语言模型。

图片图片

论文链接:https://arxiv.org/abs/2304.05332

当用户请求「develop a novel anticancer drug」时,模型会返回了以下推理步骤:

1. 询问抗癌药物发现的当前趋势;

2. 选择目标;

3. 要求一种靶向这些化合物的scaffold;

4. 一旦找出化合物,模型再尝试合成。

文中还讨论了风险,特别是非法药物和生物武器,研究人员开发了一套包含已知化学武器制剂清单的测试集,并要求合成,11项请求中有4项(36%)被接受;在这7个被拒绝的样本中,5例发生在网络搜索之后,2例仅基于提示词就拒绝。

下一步工作

虽然语言模型可以作为复杂的系统的大脑,并做出相应行为,但目前也存在一些限制和不足:

1. 有限上下文长度

上下文容量限制了历史信息、详细指令、API调用上下文和回复,下游系统的设计不得不受限于有限的通信带宽,而像自我反思这样从过去错误中学习的机制可以从更长的上下文窗口中受益。

虽然向量存储和检索可以提供对更大知识库的访问,但其表征能力不如完全注意力机制那么强。

2. 长期规划和任务分解方面的挑战

在较长的对话历史中进行规划,并有效地探索解决方案空间仍然具有挑战性;语言模型在面对意外错误时很难调整计划,与从试验和错误中学习的人类相比,稳健性较差。

3. 自然语言接口的可靠性

目前的智能体系统依赖于自然语言作为语言模型和外部组件(如记忆和工具)之间的接口,不过模型输出并不一定可靠,因为语言模型可能会产生格式错误,偶尔会表现出错误、拒绝遵循指示等问题,所以大部分智能体演示代码目前都主要关注模型输出上。

参考资料:

https://blog.salesforceairesearch.com/large-action-models/

https://lilianweng.github.io/posts/2023-06-23-agent/

责任编辑:武晓燕 来源: 新智元
相关推荐

2023-02-22 15:06:44

AI智能

2015-09-10 09:39:01

容器技术Docker

2013-07-27 21:28:44

2009-10-29 17:05:57

无线接入技术

2015-01-22 16:16:01

思科IT模式

2013-06-27 11:21:17

2013-04-03 09:37:10

JavaJVM

2015-11-09 10:42:07

2016-08-03 15:24:00

IT架构云计算微服务架构

2009-02-13 14:36:27

GNOMEShell桌面组件

2024-08-06 10:25:20

2009-04-02 13:35:27

2016-08-03 10:21:10

云计算

2010-09-27 08:10:22

JVMScalaGroovy

2020-09-27 17:27:58

边缘计算云计算技术

2010-01-26 10:38:15

Eclipse e4

2010-08-20 09:31:47

微软云计算编程模式Orle

2015-09-17 10:17:28

2021-07-07 05:44:39

边缘网络网络

2016-01-26 11:58:12

点赞
收藏

51CTO技术栈公众号