AI Agents综述论文读后总结,附一些关于Agent System的脑洞

本文探讨了AIAgents领域的最新综述文章,强调了基于Transformer架构的LLM在技术突破中的核心作用。作者提出从计算机系统设计中寻找Agent系统灵感,比较了单Agent与计算机系统,以及规划模块在Agent设计中的挑战和思考。
摘要由CSDN通过智能技术生成

一、写在前面

本文是2023.10.02发表在同名公众号「陌北有棵树」上的一篇文章,个人观点是基础理论的学习现在仍是有必要的,所以搬运过来。

关于AI Agents的研究,最近有两篇综述性文章值得关注,可以说是涵盖了目前AI Agents的所有研究成果,对于对此领域感兴趣的人来讲,可以说是喜大普奔,往后需要哪个细分方向的资料,按图索骥就好。

其中一篇是来自复旦大学自然语言处理团队(FudanNLP)的关于 LLM-based Agents 综述论文 《The Rise and Potential of Large Language Model Based Agents: A Survey》 (https://arxiv.org/pdf/2309.07864.pdf)

另一篇是来自人大高瓴人工智能学院的基于 LLM-based Agents的综述论文《A Survey on Large Language Model based Autonomous Agents》(https://arxiv.org/pdf/2308.11432.pdf)

这两篇文章都很长,一篇86页,引用了673篇文献;一篇35页,引用了187篇文献,所以在读的时候就遇到了一个问题,信息太多就近乎于没有信息,如果没有自己的逻辑框架,就会迷失在这两篇长长的文献里。

我的想法是这样,虽然Agents的最终目标是通向AGI,虽然Andrej Karpathy(OpenAI联合创始人)在采访中说需要回到神经科学领域去获取一些关于AI Agent启示。但我想,最终总是要落到系统工程上面来。

计算机或许是目前最复杂的系统设计之一了,而且他的理论模型「图灵机」的基本思想是用机械操作来模拟人们用纸笔进行数学运算的过程。所以是否可以从计算机的体系机构设计上,来寻找一些灵感。就像是当年图灵提出了通用图灵机的理论模型,但最终落地的是冯诺依曼设计的架构体系一样。Agent应该是一套完备的系统设计,复杂程度可能不低于计算机系统。

所以 「Agent vs 计算机系统」「多Agents vs 分布式集群」是不是会有一些概念和抽象可以借鉴呢?

本轮技术变革的核心在于,基于Transformer架构的LLM的技术突破,而这轮理论突破的上限,可能也就在于通过继续增加参数和训练数据,能够继续释放的Transformer的潜力还有多少。所以这在理论层面,再一次跨越式跃迁的奇点还需要多久其实很难预测,或许科学家的脚步暂时停一停也无妨,该工程师继续上场了。

二、单Agent VS 计算机系统

首先,对于LLM-based Agent的架构组成,上述的两篇综述论文,以及之前OpenAI应用研究主管Lilian Weng的文章,都已经提供了架构设计图。

【1】FudanNLP综述论文中LLM-based Agent概念框架图

【2】高瓴人工智能学院综述论文中LLM-based Agent架构图

【3】Lilian Weng文章中LLM-based Agent架构图

这个和传统的Agent模型也保持了一致,在《人工智能:现代方法》这本书中,给出了Agent的工作流程,基于这个流程,我们可以将Agent定义为从感知序列到动作的映射。在这本书中对此的阐述是:

对于每个可能的感知序列,给定感知序列提供的证据和智能体所拥有的任何先验知识,理性智能体应该选择一个期望最大化其性能度量的动作。

说完了Agent系统的架构,再回过头温习一遍计算机系统。

以下是计算机系统中的一些概念与抽象,描述来自《深入理解计算机系统》

「CPU」是解释/执行存储在主存中指令的引擎。

「主存」是在CPU执行程序时,存放程序和程序处理的数据的存储设备。

「IO设备」是系统与外部的联系通道。

「高级语言程序」到「可执行文件」,需要经过预处理器,编译器,汇编器,连接器四个步骤

操作系统是应用程序和硬件之间的媒介

「文件」是对IO设备的抽象。

「虚拟内存」是对主存和磁盘的抽象。

「进程」是对处理器、主存、IO设备的抽象。

三、一些关于Agent System的脑洞

继续沿着上面的思路,

「感知模块」可以类比为「IO设备」,只是模态进行了扩充。

「记忆模块」可以类比为「主存和磁盘」,磁盘是长时记忆、主存是短时记忆、后面可继续根据需要设计「多级高速缓存(Cache)」

「行动模块」可以类比「中央处理器(CPU)」,做的事情就是类似CPU,取指令、执行、取指令、执行…

「操作系统」的本质是对资源、程序的虚拟化,用于更高效的执行指令、利用资源。我觉得目前可能有比较简单的调度系统,还谈不上是OS的级别,但操作系统的演进也不是一蹴而就的,从批处理操作系统、分时操作系统、实时操作系统…一步步迭代演化。当Agent系统复杂到一定程度后,操作系统中的一些抽象模型,是一定会有其借鉴意义的。

「Planning模块」该映射到哪里?

在计算机系统里,高级语言程序需要转换成二进制可执行文件才能被处理,这个转换过程需要经过预处理器,编译器,汇编器,连接器四个步骤。

我现在没有想清楚的是,这个过程是应该定义到CPU的模块里,还是编译器的模块里?

所以这个「Planning」模块一直是我觉得最值得研究的,目前的所有研究成果,都几乎没有脱离基于LLM的「Prompt Engineering」

按照Agent的目的划分,可以分为面向任务的Agent(助手场景)、面向生命周期的Agent(类似于斯坦福小镇,社会模拟)

按照Planning的特性划分,可以划分为「单路径推理 vs 多路径推理」「接受外部环境反馈 vs 不接受外部环境反馈」…

论文标签简要描述
《Chain of Thought Prompting Elicits Reasoning in Large Language Models》单路径推理、不接收反馈CoT(思维链):将解决复杂问题的推理步骤输入到提示中。这些步骤作为例子,启发llm循序渐进地计划和行动。在该方法中,规划是根据提示中示例的启发来创建的。
《Self-Consistency Improves Chain of Thought Reasoning in Language Models》多路径推理、不接收反馈、树形结构推理步骤首先利用CoT生成各种推理路径和相应的答案。随后,选择频率最高的答案作为最终输出
《Tree of thoughts: Deliberate problem solving with large language models》多路径推理、不接收反馈、树形结构推理步骤树中的每个节点代表一个“思想”,这对应于一个中间推理步骤。这些中间步骤的选择是基于对LLMs的评估。使用广度优先搜索(BFS)或深度优先搜索(DFS)策略生成最终规划。与CoT-SC一起生成所有规划步骤相比,ToT需要为每个推理步骤查询llm。
《SwiftSage: A Generative Agent with Fast and Slow Thinking for Complex Interactive Tasks》单路径推理、不接收反馈首先得到一个小型模型,然后将其与 LLM 进行融合。这样,便可以利用大量数据对小型模型进行微调,使其具备环境和任务相关的知识,并仅在需要时调用大型模型进行高阶推理
《Reasoning with Language Model is Planning with World Model》多路径推理、树形结构推理步骤RAP 将 LLM 重新定位为既扮演世界模型又进行推理的角色,并结合了蒙托卡罗树搜索算法,在庞大的的推理空间中进行搜索。在推理过程中,LLM(作为推理者)在 LLM(作为世界模型)和任务特定奖励的指导下逐步构建推理树,并在广度与深度之间取得适当的平衡,从而有效地获得高奖励推理路径。
《Planning with Large Language Models via Corrective Re-prompting》单路径推理、不接收反馈在生成计划之前检查每个步骤是否满足必要的先决条件。如果不能满足,它会引入一个先决条件错误信息,并提示LLM重新生成计划。
《ReWOO: Decoupling Reasoning from Observations for Efficient Augmented Language Models》单路径推理、不接收反馈、递归推理一种将规划与外部观察分离的范式,智能体首先独立生成规划并获得观察结果,然后将它们组合在一起以得出最终结果
《Voyager: An Open-Ended Embodied Agent with Large Language Models》接收环境反馈通过结合程序执行的中间进度、执行误差和自验证结果三种环境反馈来制定计划。这些信号可以帮助智能体为下一步行动做出更好的计划。

「Planning模块」只能映射到编译器?这个想法听起来就太不sexy,毕竟这是最重要的“大脑”,但是CPU需要完全明确的指令,模糊是不被允许的。这个「Planning模块」如何才能通用且明晰?又让人不得不陷入沉思。抽象能力的确是工程师最为重要的能力了。是不是应该从冯诺依曼的体系结构中抽离出来,回到图灵机。

图灵机思想的价值所在是因为它虽然结构简单,但却可以描述任何人类能够完成的逻辑推理和计算过程,换句话说,图灵机的计算能力是人类能够完成的所有计算的全集,只要一个问题是可判定的,它的计算过程可以被符号和算法所表达出来,它就可以使用图灵机来完成计算。我仿佛回到当年读书的时候,被那门《可计算性与计算复杂性》课程支配的恐惧迎面袭来😂😂

路漫漫其修远兮,值得吾辈上下求索…

  • 27
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值