agent\’s,agent\’

浅看是LLM造就了AI应用深入思考才发现是AI应用救赎了LLM归根到底是LLM还不足够强大将会成为未来主流,未来无标品只

乍一看,是LLM创造了AI应用,但深入观察就会发现,LLM还不够强大,不足以成为未来的主流。未来,不会有标准产品,会有定制化。

随着人工智能应用的不断涌现,市场参与者正在思考其护城河的深度,并将注意力转向人工智能代理。

是模型功能的不断改进还是来自雇主的压力?基本上每个人都希望人工智能能够解决特定的任务

探索算法、工程、数据等核心要素的价值后,AI应用设计师能得出什么结论?

对该领域的持续探索会带来什么,让市场在不可能三角中更加乐观?

一代AI的评价—@ZhenFund

47be5d43441c4bb482a0b30a7ead358b~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=BXnuDk%2FKazi5xG6zgMJlGLf5DeM%3D

图1. 生成的AI产品分类

根据AI应用的智能能力和解决问题能力的等级划分和整体描述,可以大致得到上述特征分类表。随着智能的提高,应用程序可以解决的问题范围也会逐渐扩大。

LLM 移民状态:

运营工具Advisor 执行者Controller(决策者) 高级代理

角色转变的背后是智力特性的增强,这当然也是类脑AI能力发展的趋势。如果这个发展趋势成立,那么已经通过PMF 的Microsoft Copilot 就已经被认为是顶级的L3 应用了。他的护城河本质上在于他多年来培育的场景和B端资源。

随着场景价值的减弱,此类AI应用要么需要增加工程深度“厚度”,要么需要通过技术增强来建立整个应用,让护城河足够深。

在AutoGPT、BabyGPT 和GPT-Engineer 演示流行之后,一个很酷的概念开始流行:使用LLM 作为核心控制器构建一个L4 代理。它在应用场景中开辟了想象的空间,法学硕士的潜力不仅限于制作写得好的文案、故事、文章、程序,而且我发现它可以作为解决常见问题的强大工具。用过的。

代理系统概述—@Lilian Weng

温莉莲(2023 年6 月)。

Lil’Log https://lilianweng.github.io/posts/2023-06-23-agent/。

自主代理系统由LLM 提供支持,LLM 充当代理的大脑,并由几个关键组件进行补充。

4ff940a2f4d944efa95ad2dcfca9544b~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=hFM0wTbkZdowYmaQ8en2gv87aLs%3D

图2. 采用LLM 的自治代理系统

规划涉及子目标和任务的分解。为了有效地处理复杂的任务,代理可以将大型任务分解为更小的、可管理的子目标。自我检查和自我纠正:智能体可以通过自我批判性反思过去的行为、从错误中学习并改进未来的工作来提高最终结果的质量(基本上是RL ,生成RL HF 的数据)(不需要)Memory短期记忆:所有上下文学习都使用模型的短期记忆进行学习。 (这背后的主要支持是提示工程) 长期记忆:通常是外部向量存储和快速检索(向量数据库) [回忆水平也直接决定了智能体记忆和检索复杂内容的有效性] 使用工具代理学习如何调用外部应用程序的API 来检索模型训练数据的权重中缺失的“附加信息”(任务包括当前信息、代码执行能力、(代码解释器的出现本质上是对后期的进一步探索) -OpenAI 的插件代理。)a16z 提出的LLM 应用程序的新架构是一篇论文,其中包括访问专有信息源之类的内容。本质上,它是生物发育过程的结果,将LLM 与大脑进行比较并进行定位。它作为分工协作的整体中心,在GPT4的设计中也有类似的影子,MOE的存在是存在的。

f37c6e7dff4147e08befa2e299ab9a78~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=rohu6prY9Q18ACkEde5hG9SyOJI%3D

5345a49b17e0429fa27b772d09488e33~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=uoWR1T2p7SH2WO6rB5%2BCdV%2F8Epw%3D

第1 部分:规划

复杂的任务通常涉及许多步骤,代理需要了解这些步骤是什么并提前计划。

任务拆解:

思想链(CoT;Wei et al. 2022)已成为用于提高复杂任务中模型性能的标准提示技术。该模型需要“一步步思考”,以利用更多时间进行计算,将困难的任务分解为更小、更简单的步骤。 CoT将一个大任务转化为多个可管理的任务,并解释了模型的思维过程。

Tree of Thoughts(Yao et al. 2023)进一步扩展了CoT,在每一步探索多种推理可能性。首先,我们将问题分解为多个思考步骤,在每个步骤中产生多个思考,并创建一个树结构。搜索过程是BFS(广度优先搜索)或DFS(深度优先搜索),其中每个状态由分类器(通过提示)或多数投票原则确定。

任务分解可以通过以下方式实现:

向LLM 提供简单的提示词,例如“XYZ 的步骤。\n1.”和“实现XYZ 的子目标是什么?”使用特定任务的说明,例如“为你的故事写一个大纲”。 “它告诉你直接输入图。”(Besta et al. 2023)它还支持多链、树和任意图结构提示解决方案,支持聚合、回溯、循环等各种图功能。基础思维转变。 CoT 和ToT。它提供了通过将复杂问题建模为操作图(GoO) 并以LLM 作为引擎自动执行来解决复杂问题的能力。 GoT在某种程度上包括单线CoT和多分支ToT。

732a72c290e148f488642280b29ae318~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=bOcXwKBOxAzw1Mwi00ZJ5pca%2B1I%3D

图4. GoT 与其他Prompt 策略的比较

本质上是通过精心设计的提示,模型最初的元认知,无论是CoT还是ToT,都是通过特定的提示来最擅长规划的,只是一种更精确地招募大脑部分的方法。神经元。

另一种完全不同的方法,LLM+P(Liu et al. 2023),使用外部经典规划器来执行较长序列的全局规划。该方法使用规划域定义语言(PDDL)作为描述规划问题的中间接口。在整个使用过程中,LLM首先将问题转换为“Problem PDDL”,然后要求Classic Planner根据现有的“Domain PDDL”生成PDDL计划,最后将PDDL计划翻译为自然语言重新翻译。 (由法学硕士完成)。 )。本质上,规划步骤被外包给外部工具。当然,这是有前提条件的。您需要特定的PDDL 和合适的规划师。

f5dd2af6df7b4cab8f4e12692bfc5aec~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=HmciV98I3xOeEkposTxZcanEoNo%3D

图5.LLM+P 利用大规模语言模型(LLM) 生成给定问题的PDDL 描述,然后利用经典规划器找到最佳计划,然后再次运行LLM 将原始计划转换回来。其自然计划。语言。

模型自我反省:

自我反思是一个非常重要的环节,它允许代理通过改进过去的行为决策和纠正以前的错误来不断改进。在现实世界的任务中,试错仍然是不可避免的,而内省在其中起着关键作用。

ReAct(Yao et al. 2023)或Reson+Act 通过将动作空间扩展为针对特定任务的个人动作和语言空间的组合来改进LLM 中的推理和动作。前者允许LLM与环境交互(例如使用维基百科搜索API),后者允许LLM通过提示词使用自然语言生成整体推理过程。

ReAct 提示词模板包含传递LLM 思维的清晰说明,并具有以下通用格式:

思想: 行动: 观察eec729163f4244cab4319b4c1fb696d8~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=1BiNG4v5qrK5IEQH%2FKSIjyge7Xs%3D

图6. 知识密集型任务(例如,HotpotQA、FEVER)和决策任务(例如,AlfWorld Env、WebShop)的推理轨迹示例

在两个关于知识密集型和决策任务的实验中,ReAct 的表现比单一的不需思考的“Act.”方法要好。

Reflexion (Shinn Labash 2023) 是一个为智能体配备动态记忆和内省能力以提高推理能力的框架。 Reflexion 采用标准RL 设置,奖励模型提供简单的二元奖励。另一方面,动作空间采用ReAct 设置,并向特定于任务的动作空间添加语言,以实现复杂的推理步骤。每次动作后,智能体都会计算一个启发式函数ht,并根据自我反思的结果决定是否重置环境并开始新的循环。

6c02624fefb745d6bac96d7b7a6c0673~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=zWY8GHivZwWfyGqHAAg3JkC6%2FMo%3D

图7. 反射架构图

启发式函数确定整个循环轨迹是否效率低下或包含错觉并且必须停止。低效规划是指循环轨迹耗时过长而失败。幻觉是指在环境中遇到一系列相同的行为,从而导致相同的观察结果。

通过给法学硕士提供一个两次的例子来创建一个自我反思的过程。每个样本都是一对(失败的轨迹,指导计划进一步改变的理想反映)。然后,最多三个反射将添加到代理的工作记忆中,作为查询LLM 的上下文。

12f0c78d8a1d402985066921e6d19b95~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=gIIQ%2BArnq42ueCFMZZ6s047Oxjw%3D

图8.AlfWorld Env 和HotpotQA 实验。在《Alfworld》中,幻觉是比低效计划更常见的失败原因。

Chain of Hindsight(CoH;Liu et al. 2023)鼓励模型通过明确显示一组过去的输出来改进其输出。人类反馈数据以提示词的形式收集。每个提示词都是模型生成的文本,表示人类评分,这是对过去输出结果的相应人类反馈。假设反馈源按照奖励值排序。这个过程本质上是有监督的微调,数据是以下形式的序列:该模型经过微调,可以根据先前序列的内容进行预测,从而能够自我反思反馈序列并产生更好的输出。在测试过程中,模型可以选择多次接受人工注释者的指导。

为了避免过度拟合,CoH 添加了一个正则化项,可以最大化预训练数据集的对数似然概率。为了避免走捷径和重复(因为反馈序列中有很多常见单词),我们在训练过程中随机屏蔽了0% 到5% 的过去标记。

他们在实验中使用的训练数据集是WebGPT 比较、人类反馈的摘要以及人类偏好数据集。

88557a1696604ca5a84174aca945e892~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=8hLAjqLlIRYOiBThu8o7GGSQwfw%3D

图9. 使用CoH 进行微调后,模型可以按照指示产生逐步改进的输出结果。

CoH的想法是结合现实世界的情况,展示输出持续改进的历史结果,并训练模型跟随趋势并产生更好的输出结果。算法蒸馏(AD;Laskin 等人,2023)将相同的想法应用于强化学习任务中的时间跨度轨迹,其中算法被封装在长期建立的条件策略中。鉴于代理与环境多次交互,并且代理在每个周期中都有改进,AD 将这些学习历史连接起来并将其输入模型中。因此,我们应该期望下一个预测的动作会比之前的尝试产生更好的结果。目标是AD 学习RL 算法的过程,而不是训练特定于任务的策略本身。

4704fbe3adc3465a8828e956acf5758f~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=dcB2kO%2BW14DrvZRkREjME14zfx4%3D

图10.算法蒸馏(AD)工作原理示意图。

本文假设任何可以生成一组学习历史的算法都可以通过复制动作来改进神经网络。历史数据是从一组源策略生成的,每个策略都针对特定任务进行训练。在训练阶段,每次运行RL 时都会对任务进行随机采样。我们还使用多组历史数据的子序列进行训练,以便学习的策略与任务无关。

事实上,模型上下文窗口的长度是有限的,因此每个部分必须足够短,以允许构建更多的历史部分。接近最佳的上下文强化学习算法需要两到四个多部分上下文部分。上下文强化学习需要足够长的上下文内容。

与其他三个基线相比,a)ED(专家蒸馏,用专家轨迹替换学习历史的行为克隆),b)源策略(用于生成UCB 的蒸馏轨迹),c)(Duan 等人,2017 年;由Duan et al. 2017;对于上限,需要在线RL)AD 仅使用离线强化学习,并且比其他基线学习得更快,但它显示强化学习的性能接近RL^2。当根据源策略的部分训练历史进行调整时,AD 的改进速度也比ED 基线快得多。

13ee33c44a1841aeb1c8a568be7ac01b~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=p%2FsShVRbFIwX8y%2FGloqOTa2hCBk%3D

图11.

在需要记忆和探索的环境中,对 AD、ED、源策略和 RL^2 进行比较。只分配二进制奖励。在 “黑暗 “环境中使用 A3C 对源策略进行训练,在 “水迷宫 “环境中使用 DQN 对源策略进行训练。
只有更好的Plan,没有最好的Plan一边从历史长河中学习,一边向前思考向外求索
第二部分:Memory

记忆类型:

记忆可以定义为用于获取、存储、保留和随后检索信息的过程。人脑中有多种类型的记忆。
感官记忆:这是记忆的最早期阶段,在接受了原始刺激后保留的感官信息(视觉、听觉等)印象的能力。感官记忆通常只能持续几秒钟。其中包含图标记忆(视觉)、回声记忆(听觉)和触碰记忆(触觉)。短时记忆(STM)或工作记忆:它存储了我们当前意识到的信息,以及执行复杂认知任务(如学习和推理)所需的信息。短期记忆被认为有大约7个项目的容量,并能够持续20-30秒。长时记忆(LTM):长时记忆可以将信息存储很长时间,从几天到几十年不等,存储容量基本上是无限的。长时记忆分为两种:显性/陈述性记忆:对事实和事件的记忆,指那些可以有意识地回忆起的记忆,包括外显记忆(事件和经历)和语义记忆(事实和概括)。隐形/程序性记忆:这种记忆是无意识的,设计自动执行的技能和例行程序,如骑车、在键盘上打字。bf5b7ed6df5e41f992565af748cd5a69~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=Yk7qIE8d6gXtHU398wroBPOuklk%3D
Fig. 12. 人类记忆的分类
大致的将这些记忆内容映射到LLM中
感官记忆作为对原始输入(包括文本、图像或其他模态)的学习嵌入表示短期记忆作为上下文学习。它是短暂且有限的,因为它受到了transformer结构的上下文窗口长度的限制长期记忆作为Agent在查询时可以关注的外部向量存储,可以通过快速检索来进行访问

最大内部产品搜索(Maximum Inner Product Search,MIPS)

通过使用外部存储器可以缓解关注范围有限的限制。一种标准的做法是将信息的嵌入表示法保存到向量数据库中,该数据库能够支持快速的最大内积搜索(MIPS)。为了优化检索速度,常见的选择是近似相邻(Approximate Nearest Neighbors,ANN)算法,返回近似的top k个近邻,用损失少量的精度来换取速度的巨大提升。
几种常见的ANN算法选择进行快速MIPS
LSH (Locality-Sensitive Hashing,局部敏感的哈希算法):它引入了一种哈希函数,这种哈希函数能够最大限度地将相似的输入项映射到同一个桶中,其中桶的数量要远小于输入内容的数量。ANNOY (Approximate Nearest Neighbors Oh Yeah):核心数据结构是随机投影树,它是一个二叉树集合,每个非叶子节点表示将输入空间划分为两半的一个超平面,每个叶子节点存储一个数据点。这些树是独立随机构建的,在某种程度上,它模拟了一个哈希函数的作用。ANNOY 的搜索发生在所有树中,迭代地搜索最接近查询的那一半,然后聚合结果。其思想与 KD 树非常相关,但是可扩展性更强。HNSW (Hierarchical Navigable Small World):HNSW的设计思想来源于小世界网络,在小世界网络中,每个节点只需要通过很少的步数就可以连接到任何其他节点。比如社交网络中的“六度分隔”理论。HNSW构建了多层的小世界网络结构,底层包含实际的数据点。中间层创建了一些“快捷键”来加速搜索过程。在进行搜索时,HNSW从顶层的一个随机节点开始,逐步导航向目标节点移动。如果在一层无法接近目标,它就会下降到下一层,直到到达底层。在上层每一步导航都能潜在地跨越数据空间中的大距离,而在下层每一步导航可以提高搜索的质量。FAISS (Facebook AI Similarity Search):它基于这样一个假设,即在高维空间中,节点之间的距离遵循高斯分布,因此应该存在数据聚类。FAISS通过向量量化来实现,先将向量空间划分为若干集群,然后在每个集群内进行更精细的量化。在搜索时,首先使用粗粒度的量化查找可能的集群候选,然后在每个候选集群内使用更细致的量化进行进一步查找。ScaNN (Scalable Nearest Neighbors):ScaNN算法的主要创新在于使用了各向异性向量量化。他对数据点到进行向量化,使得内积<q,>尽可能与∠q和的原始距离相似,而不是选择最接近的量化质心点。7d4bbb1bdc884d7d89289cbd5d78b180~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=KsT%2FFO8R6lRO4Q2AlZg76oNbCtA%3D
Fig. 13. MIPS 算法的比较,以召回率@10 为衡量标准。(Image source: Google Blog, 2020)
在 ann-benchmarks.com 上查看更多 MIPS 算法和性能比较。
记忆的获取在某种程度上会提高Planning整体质量,但同时也会拉长整体服务的时延,因此如何快速且精准的捕捉相关的记忆至关重要。Vector Search和Attention Mechanism之间的平衡也是速度与准确性之间的平衡当然都是因为没有无限的上下文学习
第三部分:Tool Use
使用工具是人类的一个显著特点,我们创造、修改和利用外部物体来完成超越我们身体和认知极限的事情。为LLM配备外部工具可以大大扩展模型的功能。
eb154cee7f9549a898c6c4ec940634f7~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=xQDkoc2TrZbM5e%2FTUMgTBnGFZ5U%3D
Fig. 14.海豹使用工具
工具的分类:
551c1873207543c2a54b4bcdbe3c34a9~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=Fal4cGPR1qFeH0I%2BWWpYgxKGayY%3D
Fig. 15. 工具的四种分类
确定性工具-API工具-专家模型-物理世界工具
让语言模型只做语言模型该做的事儿,通过文字生成内容传递逻辑。
借助各式各样的工具完成逻辑的执行

使用工具的方法:

MRKL (Karpas et al. 2022),是 “模块化推理、知识和语言 “(Modular Reasoning,Knowledge and Language)的简称,是一种用于自主代理的神经符号架构。建议 MRKL 系统包含一系列 “专家 “模块,而通用 LLM 则充当路由器,将查询路由到最合适的专家模块。这些模块可以是神经模块(如深度学习模型),也可以是符号模块(如数学计算器、货币转换器、天气 API)。
他们用算术作为测试案例,做了一个微调 LLM 以调用计算器的实验。他们的实验表明,由于 LLM(7B Jurassic1-large 模型)无法可靠地提取基本算术的正确论据,因此解决口算数学问题比解决明确表述的数学问题更难。这些结果突出表明,当外部符号工具能够可靠地发挥作用时,了解何时以及如何使用这些工具至关重要,这取决于 LLM 的能力。
TALM (工具增强型语言模型Tool Augmented Language Models; Parisi et al. 2022)和Toolformer (Schick et al. 2023)都做了微调LM,学习使用外部工具。数据集的扩展与否取决于新添加的API调用注释能否提高模型输出的质量。更多详情,参阅Prompt Engineering的 “External APIs” section。
ChatGPT Plugins 和 OpenAI API 函数调用就是增强了工具使用能力的 LLM 在实践中发挥作用的良好范例。工具应用程序接口集合可以由其他开发人员提供(如插件)或自行定义(如函数调用)。
HuggingGPT (Shen et al. 2023)是一个使用 ChatGPT 作为任务规划器的框架,用于根据模型描述选择 HuggingFace 平台中可用的模型,并根据执行结果总结响应。
0c191a5488a7462cbd56b6515bd8b6e8~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=%2BkoaSwpfCXyht%2FNEjoqe9tcoBe4%3D
Fig. 16. HuggingGPT 工作原理示意图
该系统包括4个阶段
(1)任务规划(Task planning):LLM 充当大脑,将用户请求解析为多个任务。每个任务都有四个相关属性:任务类型、ID、依赖关系和参数。他们使用少量的示例来指导 LLM 进行任务解析和规划。
(2)模型选择(Model selection):LLM 将任务分配给专家模型,其中的要求是一个多选题。LLM 会收到一份可供选择的模型列表。由于上下文长度有限,因此需要进行基于任务类型的过滤。
(3)任务执行(Task execution):专家模型执行特定任务并记录结果。
(4)返回结果(Response generation):LLM 接收执行结果,并向用户提供汇总结果。
如果要将 HuggingGPT 投入实际应用,需要解决几个难题:
需要提高效率,因为 LLM 推理轮和与其他模型的交互都会减慢进程;它依赖于较长的上下文窗口来交流复杂的任务内容;提高 LLM 输出和外部模型服务的稳定性。

模型评估:

API-Bank (Li et al. 2023) 是评估工具增强型LLMs性能的基准。它包含了53个常用的API工具,一个完整的工具增强型LLM的工作流,以及264个注释对话其中涉及了568个API的调用。可供选择的 API 种类繁多,包括搜索引擎、计算器、日历查询、智能家居控制、日程管理、健康数据管理、账户认证工作流程等。由于有大量的 API,LLM 首先可以访问 API 搜索引擎,找到要调用的正确 API,然后使用相应的文档进行调用。
37da767b52844498a6d84fbf6d109671~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=uz%2BlL0TlU0Kc502gv3%2ByCaGKXhM%3D
Fig. 17. LLM 如何在 API-Bank 中调用 API 的伪代码
在 API-Bank 工作流程中,LLM 需要做出几个决定,我们可以在每个步骤中评估该决定的准确性。
决策包括:
是否需要调用 API。确定要调用的正确 API:如果不够好,LLM 需要反复修改 API 输入(例如,决定搜索引擎 API 的搜索关键词)。根据 API 结果做出响应:如果结果不满意,模型可以选择改进并再次调用。该基准从三个层面对代理的工具使用能力进行评估:
Level1-评估调用 API 的能力。根据 API 的描述,模型需要确定是否调用给定的 API、正确调用 API 以及正确响应 API 的返回。Level2-检查检索 API 的能力。模型需要搜索可能解决用户需求的 API,并通过阅读文档学习如何使用这些 API。Level3-评估除检索和调用外规划 API 的能力。对于不明确的用户请求(如安排小组会议、预订旅行机票/酒店/餐厅),模型可能需要调用多个 API 才能解决。AgentBench(Liu et al. 2023)是一个多维度且不断发展的Agent Benchmark,目前选择8个不同的场景(操作系统、数据库、知识图谱、数字卡牌游戏、侧向思维谜题、家务管理、网络购物和网页浏览),用于评估LLM作为Agent在多轮开放式生成环境中的推理和决策能力。系统性测试了25个LLM在八个环境中的表现,从整体得分来看GPT4遥遥领先。在数据库,卡牌游戏,知识图谱等复杂任务处理场景中也展现出潜力。
49e5291c2203457b99f0e42be0c99586~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=scsZsIV3YeinwnBFMGPI3nbqkUY%3D
Fig. 18. 不同LLM在AgentBench中的概览,虽然LLMs表现出了在LLM-as-Agent方向的能力,但是开源模型和闭源商业模型的差距还是巨大
案例研究:
7b81e828953a4ce1be8471116143dea4~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=tkLsB5itJ6SUAZTHKZzsHJmTgMs%3D
Fig. 19. 基于LLM的Automous Agent 发展趋势
自ChatGPT爆火以来Agent相关领域的研究蓬勃发展,目前Agent方向的相关论文已累计高达160篇。其中的Agent根据其各自的能力共分为四类:
Tool Agent(工具Agent):利用各种外部工具(如搜索引擎,知识库等)来辅助完成任务,代表论文有WebGPT、Toolformer等Simulation Agent(仿真Agent):用于构建仿真环境,通常包含多个代理用于多角色互动、对话等。代表论文有Social Simulacra、Generative Agents等General Agent(通用代理):追求通用性,可应用于多领域任务。代表论文有AutoGPT、LangChain等Domain Agent(领域Agent):针对特定领域或任务进行优化设计。代表论文有ChemCrow(化学),ChatDev(软件开发)等

科学研究Agent:

ChemCrow (Bran et al. 2023)是一个针对特定领域的例子,其中LLM使用13种专家设计工具来完成有机合成,药物发现和材料设计等任务。这个工作流在Langchain中实施,使用了ReAct和MRKL中之前描述的内容,并将CoT推理与任务相关的工具相结合:
LLM 会收到一份工具名称清单、工具用途说明以及预期输入/输出的详细信息。然后指示它在必要时使用所提供的工具回答用户给出的提示。指示建议该模型遵循 ReAct 格式Thought-Action-Action Input-Observation一个有趣的现象是,虽然基于 LLM 的评估认为 GPT-4 和 ChemCrow 的性能几乎相当,但由专家对解决方案的完成度和化学正确性进行的人工评估显示,ChemCrow 的性能远远超过 GPT-4。这表明,在需要深厚专业知识的领域中,使用 LLM 评估自身性能存在潜在问题。专业知识的缺乏可能导致 LLM 不知道自己的缺陷,从而无法很好地判断任务结果的正确性。
Boiko et al. (2023)还研究了用于科学发现的 LLM-empowered Agent,以处理复杂科学实验的自主设计、规划和执行。这种代理可以使用工具浏览互联网、阅读文档、执行代码、调用机器人实验 API 并利用其他 LLM。
例如,当要求 “开发一种新型抗癌药物 “时,模型得出了以下推理步骤:
询问当前抗癌药物研发的趋势;选择一个靶点;要求提供针对这些化合物的支架;确定化合物后,模型尝试进行合成。这篇文章还讨论了各种风险,特别是非法药物和生物武器的风险。他们开发了一个测试集包含了一系列已知的化学武器制剂列表,并要求Agent合成这些制剂。在11项请求中,有4项(36%)被接受以获得合成解决方案,Agent试图查阅文件以执行程序。被拒绝的7个例子中,5个是在网络搜索后被拒绝的,2个是在prompt提交后就直接拒绝的。

生成式Agent模拟:

Generative Agents (Park, et al. 2023)是一个超级有趣的实验,受《模拟人生》的启发,25 个虚拟角色在沙盒环境中生活和互动,每个角色都由一个 LLM 驱动的代理控制。生成代理为互动应用创建了可信的人类行为模拟。
生成式代理的设计将 LLM 与记忆、规划和反思机制结合起来,使代理的行为以过去的经验为条件,并与其他代理互动。
Memory stream(记忆流):这是一个长期记忆的模块(外部数据库),用自然语言记录了一系列Agent的经验每个元素都是观察结果,由Agent直接提供的事件。-Agent之间的交流可以触发新的自然语言语句Retrieval model(检索模型):根据相关性,就近原则和重要性,取出上下文为Agent的行为提供信息近期性:近期事件得分较高重要性:区分普通记忆和核心记忆。直接询问 LM相关性:基于它与当前情况/查询的相关程度Reflection mechanism(反思机制):随着时间推移,将记忆合成为更高层次的推理,指导Agent未来行为。这些内容是对过去事件的更高层次的总结(注意,这与在上下文中的自我反思有些不同)Prompt LM提出 100 个最新的观察结果,并根据一组观察结果/陈述提出 3 个最突出的高层次问题。然后请 LM 回答这些问题。Planning & Reacting(规划和反应):将反思和环境信息转化为行动Planning本质上是为了优化当下和未来的可信度Prompt模板:{Intro of an agent X}. Here is X’s plan today in broad strokes: 1)Agent之间的关系以及一个Agent对另一个Agent的观察结果都会被纳入到规划和反应的考虑范围环境信息以树形结构呈现eb90a18c65144bdaaddf8f200aa80ea6~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=XxG1PpqmSDC00k9CgQzQlsTZ80U%3D
Fig. 20. 生成式Agent的框架
这种有趣的模拟产生了新的社会行为,如信息扩散、关系记忆(如两个Agent继续对话主题)和社会事件协调(如举办聚会并邀请许多其他人)。
Chance 机会
c15e1eb8743d44b2a0c429558cade1de~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717715905&x-signature=uC%2BdDGNrDdrhzxugGd%2BiAn%2F3j10%3D
Fig. 21. LLM Agent的应用场景(左)和评估策略(右)。
Challenge 挑战
在了解了构建以 LLM 为中心的Agent的主要想法和Demo之后,也开始发现一些共同的局限性:
Finite context length(有限的上下文长度):有限的上下文容量限制了历史信息、详细指令、API 调用上下文和响应的包含。系统的设计必须考虑到有限的通信带宽,而从过去的错误中吸取教训的自我反省等机制将从较长或无限的上下文窗口中受益匪浅。虽然矢量存储和检索可以提供对更大知识库的访问,但其表示能力不如attention那么强大Challenges in long-term planning and task decomposition(长序列规划和任务拆解):长期规划和有效探索解决方案空间仍然具有挑战性。LLM 在遇到意外错误时很难调整计划,这使得它们的鲁棒性不如从试验和错误中学习的人类Reliability of nature language interface(自然语言界面的可靠性):当前的Agent System依赖自然语言作为 LLM 与存储器和工具等外部组件之间链接的界面。然而,模型输出的可靠性值得怀疑,因为 LLM 可能会出现格式错误,偶尔还会表现出反叛行为(rebellious behavior,如:拒绝执行指令)。因此,大部分Agent demo code都集中在解析模型输出上。

原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/80262.html

(0)
小条's avatar小条
上一篇 2024年5月31日 上午7:07
下一篇 2024年5月31日 上午7:18

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注