赞
踩
AI Agent,即人工智能智能体(AI Agent),是一种能够自主感知环境、进行决策和执行动作的智能体。它通常基于LLM技术,具备自主性和自适应性,在特定任务或领域中能够自主地进行学习和改进。
去年,OpenAI的Lilian Weng 在她的博客中写了一篇文章:LLM Powered Autonomous Agents。这篇文章介绍了如何利用LLM来构建具有自主决策和执行能力的智能体系统,即Agent系统:
https://lilianweng.github.io/posts/2023-06-23-agent/
以下是文章的目录:
关于AI Agent定义
在 LLM 语境下,Agent 是一种能够理解、规划决策和执行复杂任务的智能体。AI Agent可定义为集合了LLM、记忆、任务规划和工具使用的能力 。
AI Agent核心组成
规划(Planning)。涉及任务分解、反思和完善,使Agent能够高效处理复杂任务 。
记忆(Memory)。包括短期记忆和长期记忆,后者通过外部存储实现信息的长期保留和快速检索 。
工具使用(Tool use)。Agent学习调用外部 API 来补充模型权重中缺失的信息 。
(见下图)
规划模块
1)规划Planning
在处理复杂任务时,Agent需要了解所需步骤并提前规划,最关键的一环是任务分解:通过思维链/Chain-of-Thoughts, CoT技术,模型通过"think step by step"逐步思考,将难题拆解为更小、更简单的子任务。
CoT 通过逐步分解任务来增强模型在复杂任务上的表现。而思维树Tree of Thoughts则进一步扩展了 CoT,通过在每个步骤中探索多种推理可能性,生成树状结构。这种方法可以使用广搜BFS或深搜DFS进行,每个状态由分类器或多数投票评估。
任务分解方法:任务分解可以通过简单的提示(如“XYZ的步骤”)或特定任务的指令(如“写小说大纲”)来完成。此外,还可以通过人类输入来辅助分解。
另一种方法是 LLM+P (此处略去),本质上是将规划步骤外包给外部工具。
2)反思 Self-Reflection
Agent通过反思和改进过去的行动决策来迭代提高性能。
ReAct 方法通过将动作空间扩展为特定于任务的离散动作和语言空间的组合,将推理和动作集成在 LLM 中。这种方法使 LLM 能够与环境交互,例如使用维基百科搜索 API,同时生成推理痕迹;Reflexion 框架为Agent配备了动态记忆和自我反思能力,提高了其推理技能。它通过展示失败的轨迹和理想反思的示例,帮助Agent在工作记忆中存储反思,以指导未来的计划。
反思还涉及到启发式功能,该功能决定何时停止当前的规划轨迹,因为它变得效率低下或包含幻觉。通过这种方式,Agent能够识别并避免无效的行动序列,从而提高整体的决策质量。这种自我反思的能力是Agent在复杂环境中进行有效决策和学习的关键。
记忆模块
(参见上图)
短期记忆:短期记忆主要涉及模型的上下文学习。它利用模型的即时计算能力来处理和存储任务执行过程中的临时信息。短时记忆对于理解当前任务的上下文和执行即时决策至关重要。
长期记忆:长期记忆则提供了一种机制,使Agent能够长时间保留和回忆信息。这通常通过外部向量vector存储和快速检索实现。长期记忆允许Agent访问和利用过去的经验和知识,这对于复杂任务的执行和决策制定至关重要。
记忆系统在Agent的决策过程中扮演着重要角色。它不仅帮助Agent记住过去的行动和结果,还能够在需要时检索相关信息,从而提高任务执行的效率和准确性。例如,在处理复杂问题时,Agent可以通过检索长期记忆中的相关信息来辅助当前的决策。
尽管记忆系统在理论上具有巨大的潜力,但在实际应用中也面临一些挑战。例如如何有效地管理和检索大量信息,以及如何确保信息的准确性和相关性。此外,记忆系统的设计和实现也需要考虑到Agent的计算能力和资源限制。
关于记忆的实现,在实际应用中,记忆系统可以通过多种方式实现。一种常见的方法是使用**外部数据库或知识库(vector database)**来存储和管理信息,Agent可以通过查询这些数据库来检索所需的信息。
工具Tool Use模块
通过有效调用和利用外部工具和 API,Agent能够扩展其功能,提高其处理复杂任务的能力。文章也举了几个例子,比较有代表性的比如HuggingGPT,其他的还介绍了API-Bank等外部工具。
HuggingGPT 是一个框架,使用 ChatGPT 作为任务规划器,根据模型描述从 HuggingFace 平台上选择可用的模型,并根据执行结果总结响应。HuggingGPT 的系统包括任务规划、模型选择、任务执行和响应生成四个阶段。
工具使用的挑战:尽管工具使用为Agent提供了巨大的潜力,但也存在一些挑战。例如,如何确保调用的 API 是正确的,如何处理 API 调用的复杂性和多样性,以及如何优化 API 调用的性能和效率。为了提高工具使用的性能,研究人员和开发者正在探索新的技术和方法。这包括开发更智能的 API 调用策略、优化 API 调用的参数,以及使用机器学习算法来预测和选择最佳的 API。
一个case study:斯坦福小镇
斯坦福小镇指的是一篇去年非常著名的工作,俗称斯坦福小镇的论文:Generative Agents: Interactive Simulacra of Human Behavior(arxiv.org/pdf/2304.03442)。在一个虚拟的小镇沙盒里进行了一个有趣的实验,其中包含了25个AI角色,每个角色由一个由LLM驱动,即25个AI Agent。这些AI Agent通过结合LLM、记忆、规划和反思机制,在一个沙盒环境中生活和互动,模拟人类行为。
这其中包含了几个核心模块:
记忆:包含一个长期记忆模块(外部数据库),以自然语言记录Agent的全面体验。每个记忆点都是一个观察/事件。
检索模型,即retrieval model:基于检索模型也是一个经典方法,可以根据相关性和重要性,向Agent提供信息,以指导其行为。
反思机制:将记忆合成,形成更高层次的推断,并指导Agent的未来行为。这些是过去事件的高层次总结(与上述自我反思略有不同)。
规划与反应:将反思和环境信息转化为行动。规划本质上是为了优化当前时刻和时间上的可信度。
最后,总结下来的几点常见限制:
有限的上下文长度:受限的上下文容量限制了历史信息、详细指令、API调用上下文和响应的包含。系统的设计必须与有限的通信带宽一起工作,而像自我反思这样的机制可以从长或无限的上下文窗口中受益,以从过去的错误中学习。虽然向量存储和检索可以提供对更大知识库的访问,但它们的表示能力不如全注意力强大。
长期规划和任务分解的挑战:在长期历史中进行规划并有效探索解决方案空间仍然具有挑战性。当面临意外错误时,LLM难以调整计划,这使得它们与通过试错学习的人类相比不够稳健。
自然语言接口的可靠性:当前的Agent系统依赖于自然语言作为LLM和外部组件(如内存和工具)之间的接口。然而,模型输出的可靠性有限,因为LLM可能会出现格式错误,并偶尔表现出叛逆行为(例如拒绝遵循指令)。
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
保证100%免费
】Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。