ChatGPT 人工智能 GPT4 伦理 生成式 医疗 监管 安全 机器学习 深度学习 神经网络 计算机视觉 强化学习 模型 算法 应用 开发 研究 工具 平台 框架 数据集 训练 部署 安全 合规 培训 投资 LLM,llm AI,ai,Ai 大模型 大语言模型 制图 生图 绘图 文生图 文生视频 生成式AI AGI 世界模型 sora chatGPT,chatgpt,ChatGpt claude openai Llama deepseek midjourney 红熊猫模型 Red panda,panda Stable Diffusion,StableDiffusion,stable DALL- E 3 DALL E DALL Flux,flux 扩散模型 混元大模型 文心一言 通义千问 可灵 Pika PixelDance 豆包 月之暗面 零一万物 阶跃星辰 搜索增强 MiniMax Talkie Agent prompt fastai LangChain TTS 微调 提示词 知识库 智能体
# 热门搜索 #
搜索
探索AI Agent的认知架构及记忆的实现机制
8102点击    2024-08-01 11:57

Agent的记忆实现和调用是提高Agent智能水平的关键。


大语言模型在过去几年中迅猛发展,已成为推动人工智能领域前进的核心力量。基于大型语言模型(LLM)的AI智能体,正逐渐成为实现大模型应用落地的关键途径。


AI Agent的认知架构正成为研究的热点领域。在我看来,AI Agent 认知架构不仅能够提高 Agent 的性能和效率,还能够增强其可扩展性和适应性,使其能够更好地应对不断变化的需求和环境。


为了深入探究这一问题,我们从人类的认知系统中汲取灵感,根据对行业前沿文章的研究,结合近期的实践,谈一谈关于Agent认知架构和记忆的实现内容,与大家分享。


从人类的认知系统看AI Agents


今天的AI与人类相比较,在认知系统层面的差异具体体现在哪些方面?


人的大脑面对不同的任务会做出不同的反应。世界著名的认知心理学家、诺贝尔经济学奖得主Daniel Kahneman在《Thinking, Fast and Slow》中对人类的认知系统进行了两种定义分类:


系统 1:是一种响应迅速且自动化的推理过程。


  • 优点是响应迅速,但在复杂任务中表现可能不理想。

  • 反应快但改变较慢,就像人类的习惯难以快速改变。

系统 2:是慢速、深思熟虑的推理过程。


  • 通过生成中间推理步骤来解决问题。依赖记忆调用,存储思考过程和对行为结果的反思,累积经验以优化后续行为。

  • 反应时间比系统1慢,但改变所需时间相对较快。

  • 优点是推理能力强,不过需要更多计算资源和时间。

LLM的工作方式可以类比于人类认知系统中的系统1:过往的训练数据直接决定了模型擅长的领域,无论面对简单或者困难的问题,语言模型输出的速度不会有太大区别,这是LLM的本能。


和人类相比较,我们发现AI目前缺少的正是系统2的能力。而构建系统2,就是要让AI具有自己组织系统1的网络来构建新工具、解决复杂问题的能力。


这也就是AI Agent的概念,通过对环境的感知,完成不同的子任务,从而来实现更复杂的目标。


系统2通过语言推理、记忆调用、自我思考和规划,将复杂问题拆解成由系统1组成的流程单元,分别执行不同的任务从而达到目的。并在多次实践和运用中沉淀为“经验”数据提供给系统1去训练,从而让系统1获得新的能力。



图源来自:澜码科技


总的来说,系统 1 和系统 2 共同作用,影响着我们的思考、判断和决策过程。


那么,如何让每个智能体都拥有系统2的能力,使其能够调用长期记忆、计划和反思来解决复杂问题,实现从系统1到系统2的扩展呢?


我们认为现在有许多关于⼈类记忆的理论与体系都可以应⽤到Agent 上,从而让 Agent 模仿⼈脑的思考,例如下文所提到的CoALA框架。


Agent认知系统的架构


在《Cognitive Architectures for Language Agents》论文中,作者结合生产系统提出了一个概念性的框架CoALA(具有认知架构的Agent),基于LLM设计出Agent系统的各种使用方法提升信息处理、推理、自主学习和决策能力。



图源来自:《Cognitive Architectures for Language Agents》


Agents 的认知架构包含多个关键要素,如感知、学习、推理和决策等。


  • 感知是获取外部信息的通道,就像我们的眼睛和耳朵感知世界一样,Agents 通过传感器收集数据。

  • 学习则是不断优化自身能力的过程,通过大量的数据训练,提升对各种情况的理解和应对能力。例如,在自动驾驶领域,车辆中的 Agents 需要不断学习交通规则和不同路况的处理方式。

  • 推理是根据已有的知识和信息进行逻辑思考,做出合理的判断。

  • 决策则是基于推理的结果选择最佳的行动方案。

AI Agent的记忆分类


结合CoALA框架,我们按照信息的内容,将信息组织进Agent的多个记忆模块,包括短期工作记忆和三种长期记忆:情景记忆、语义记忆和程序记忆。



图源来自:澜码科技


短期记忆:


  • 工作记忆(Working Memory) :反映了Agent的当前情况,它存储了Agnet最近的感知输⼊、⽬标以及中间推理的结果。

长期记忆:


  • 程序记忆(Procedural Memory):存储⽣产系统本⾝Agent⾏为的规则集和程序。

  • 语义记忆(Semantic Memory): 存储一些基础知识、世界知识。

  • 情景记忆(Episodic Memory):存储Agent过去的历史事件流或者行为经验。

这些记忆组件共同构成了CoALA框架下Agent的记忆系统,使得Agent能够存储信息、进行推理、做出决策,并从经验中学习。


短期(工作)记忆是如何工作的?


工作记忆在Agent的决策过程中起着关键作用,它与LLM、推理、检索等动作紧密配合,不断更新和处理信息,以支持Agent在不同情景下做出合适的决策和行动。


  • 信息处理(Grounding Action)将Agent执行动作后,得到的环境反馈处理成文本,输入到工作记忆中。

  • 检索(Retrieval Action)将信息通过规则或密集检索等方式,从长期记忆中读入工作记忆中。

  • 推理(Reasoning Action)使Agent能够处理⼯作记忆的内容以⽣成新的信息。 与检索不同,推理是从⼯作记忆中读取并写⼊⼯作记忆。

长期记忆是如何工作的?


长期记忆主要是通过学习动作(Learning Action)将信息写入不同的长期记忆模块中来实现的,其中不同记忆类型学习机制不同:


  • 程序记忆的更新:更新推理、检索、新学习或者决策的方法。

  • 语义记忆的更新:将世界模型中一些基于事实归纳的信息写入语义记忆。LLM 通过推理原始经验并将结果推论存储在语义记忆中,为工作记忆中上下文理解等提供依据。

  • 情景记忆的更新:用“经验”更新情景记忆。Agent通常存储情景轨迹以更新或建立策略 。Agent检索情景记忆中的附加经验可以作为推理或决策的示例。

以上这些信息会在Agent需要使用的时候,根据内容重新检索,并存入工作记忆中。


在我们的实践中,以销售管理场景举例,当销售询问线索挖掘Agent,“历史上是否有类似成功签单案例”时,Agent会根据当前客户画像检索情景记忆中类似客户的签单项目,为销售提供商机建议和指导。这就是一个调用情景记忆,并存入工作记忆的过程。



图源来自:澜码科技


Agent记忆的实现


Agent的记忆是如何实现的?首先,我们先定义一个概念,我们把Agent不断通过跟环境的进行交互、拿到反馈、做出动作,直到目标实现,这样一个不断迭代的过程称之为“Trial”。


用a表示Agent做出的动作,用o表示Agent做出动作后环境的反馈,则一个Trial可以表示为:



该定义来自于《A Survey on the Memory Mechanism of Large Language Model based Agents》


我们将Agent 的记忆按照来源不同分为三大类:


  • Trial内的信息:同⼀个 Trial 内的历史信息。Trial 内的历史信息与未来的动作是最有关联的,⼏乎所有模型的记忆都包含 Trial 内信息。然⽽,完全只依赖 Trial 内的信息作为记忆可能会让 Agent ⽆法有效积累知识。

  • 跨Trial的信息:其他 Trial 的历史信息。跨 Trial 的信息能使 Agent 积累多种成功与失败的案例,总结失败的原因或成功的⾏动模式。

  • 外部知识:⽆论 Trial 内的信息还是跨 Trial 的信息,都要求 Agent 去与环境进⾏交互才能获得,⽽外部知识可以让 Agent 直接获取⼤量的、最新的、质量良好的信息。


图源来自:澜码科技


比如,我们设计一个Agent,目标是辅助分析销售线索是否有效,这里Agent可以通过和用户对话、理解用户意图、收集信息并做出反馈,最后得出该线索是否为有效线索的结论,即完成了Agent的目标。在这样的一轮对话中,上下文、用户输入和Agent的输出信息为该Trial内的信息;而当用户询问到是否有类似项目时,Agent会去跨Trial寻找相关成功和失败的案例以支持对目标的判断;用户如果询问该客户当前最新资讯等信息,Agent会分析意图并调用web search,与互联网进行交互从而获得外部实时的知识。


我们将Agent 的记忆按照类型不同分为两类:


1. ⽂本形式:⽂本形式的记忆显式地以⾃然语⾔的⽅式存储。


⽂本形式是当前主流的存储记忆的形式,它具有更强的可解释性,更容易实现,能更⾼效地读写。


⼀般有 4 种信息以⽂本的形式存储:完整的历史信息、最近的历史信息、⽤于检索的历史信息、外部知识。


  • 完整的历史信息

该⽅法在上下⽂中记录所有历史信息,虽然可以存储⼤量信息,但要消耗⼤量计算资源、推理时间,超⻓的上下文也会影响 LLM 的准确性与稳定性。

  • 最近的历史信息

只存储最近的信息能提升记忆的利⽤率,但在⻓期的任务中,该⽅法容易忽略⻓距离依赖的关键信息。

  • ⽤于检索的历史信息

检索的⽅法基于内容的关联程度、重要程度来选取记忆信息,不依赖于时间,因此不会忽略⻓距离的重要信息。该⽅法⾮常依赖于检索策略的准确度与效率,且需要信息以统⼀的⽅式存储,不能直接应⽤于处理外部环境中多样的信息。

  • 外部知识

⼀些 Agent 通过调⽤⼯具来获取外部知识,如调⽤ Wikipedia、数学求解器等,能显著提升其能⼒。然⽽,外部知识的可信度不⼀定很⾼,且 Agent 需要消耗计算资源来学会使⽤并理解外部⼯具,调⽤API 也会产⽣隐私、数据安全等问题。

2. 参数形式:参数形式的记忆隐式地影响模型的⾏为。


  • 微调

微调能有效地将专业知识注⼊ LLM,但可能导致过拟合,使 LLM 遗忘原本的知识。微调需要⼤量的训练数据,以及计算资源和时间消耗。微调也不能很好地处理与环境的动态交互,因此主要被应⽤于离线任务。

  • 知识编辑

知识编辑能修改特定的知识,并保持其他⽆关的信息不被影响。知识编辑适合⼩规模的记忆修改,它需要较⼩的计算资源,更适⽤于在线的任务。

综上,从有效性、效率和可解释性来说,两种记忆存储形式有如下优劣:



图源来自:澜码科技


根据不同的场景和应用,我们需要对文本形式和参数形式这两种类型的记忆进行权衡。文本记忆适用于需要回忆近期交互的任务,如对话和上下文特定的任务。例如,在Agent与用户进行对话时,需要回忆之前的对话内容来理解当前的语境,这时文本记忆就可以发挥作用。对于需要大量内存或成熟知识的任务,参数记忆可能是更好的选择。


通过对人类认知系统的深入理解,我们发现让Agent拥有类似于系统2的能力是至关重要的,这将使它们能够更好地解决复杂问题。


在未来的研究中,我们需要进一步探索如何让每个Agent都具备系统2的能力,使其能够充分调用长期记忆、进行计划和反思,从而更好地解决复杂问题,实现从系统1到系统2的扩展。同时,持续优化Agent的认知架构和记忆实现机制,也是提高Agent性能和智能水平的关键。


参考文献:

  • https://arxiv.org/pdf/2309.02427 《Cognitive Architectures for Language Agents》
  • https://arxiv.org/abs/2404.13501 《A Survey on the Memory Mechanism of Large Language Model based Agents》
  • https://mp.weixin.qq.com/s/m-3HSVp0WLVSlw72pjIXiQ
  • 《Thinking, Fast and Slow》 Daniel Kahneman


文章来源于“周健 澜码科技”



关键词: AI , Agent , 智能体 , AI架构 , 模型训练
AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
智能体

【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。

项目地址:https://github.com/Significant-Gravitas/AutoGPT


【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。

项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md

2
微调

【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。

项目地址:https://github.com/InternLM/xtuner