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

写在前面

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

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

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

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

这两篇文章都很长,一篇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模块」如何才能通用且明晰?又让人不得不陷入沉思。抽象能力的确是工程师最为重要的能力了。是不是应该从冯诺依曼的体系结构中抽离出来,回到图灵机。

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

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

相关推荐
gz7seven2 小时前
BLIP-2模型的详解与思考
大模型·llm·多模态·blip·多模态大模型·blip-2·q-former
不爱说话郭德纲7 小时前
探索LLM前沿,共话科技未来
人工智能·算法·llm
z千鑫8 小时前
【人工智能】PyTorch、TensorFlow 和 Keras 全面解析与对比:深度学习框架的终极指南
人工智能·pytorch·深度学习·aigc·tensorflow·keras·codemoss
程序员X小鹿13 小时前
AI视频自动剪辑神器!点赞上万的影视剧片段,一键全自动剪辑,效率提升80%!(附保姆级教程)
aigc
我爱学Python!13 小时前
解决复杂查询难题:如何通过 Self-querying Prompting 提高 RAG 系统效率?
人工智能·程序人生·自然语言处理·大模型·llm·大语言模型·rag
学习前端的小z17 小时前
【AIGC】如何准确引导ChatGPT,实现精细化GPTs指令生成
人工智能·gpt·chatgpt·aigc
刘悦的技术博客1 天前
MagicQuill,AI动态图像元素修改,AI绘图,需要40G的本地硬盘空间,12G显存可玩,Win11本地部署
ai·aigc·python3.11
xindoo1 天前
如何用GPT-4o解读视频
aigc·gpt-3·音视频
任某某01161 天前
第四期书生大模型实战营 - 基础岛闯关作业3 - 浦语提示词工程实践
llm
起名字真南2 天前
【C++】深入理解 C++ 中的继承进阶:多继承、菱形继承及其解决方案
java·jvm·c++·chatgpt·aigc