为什么向量数据库不足以满足代理AI系统的记忆管理需求?

图示 代理AI记忆管理(作者提供的图片)

1. AI智能体系统简介

AI智能体是当前的热门话题。总的来说,关于什么是代理AI系统?它们与生成式AI(Gen AI)或大型语言模型(LLM)代理有何不同?这些问题上仍然存在很多困惑。

前排提示,文末有大模型AGI-CSDN独家资料包哦!

在本节中,我们将通过一个实际的营销用例来阐明AI智能体系统的功能/非功能需求,从而为这一争论带来一些清晰度——见图1所示。

图1:代理AI执行营销用例(作者提供的图片)

面对用户任务,AI智能体平台的目标是识别出能够执行该任务的智能体(或智能体组)。因此,我们需要的第一个组件是一个编排层,它能够将任务分解为子任务,并通过编排引擎执行相应的AI智能体。

截至目前,我们通过提示大型语言模型(LLM)进行任务分解。这与生成式AI有重叠。不幸的是,这也意味着当前的AI智能体受限于LLM的推理能力。

例如,GPT-4对以下提示的任务分解:

生成一个定制的电子邮件活动,在1个月内实现100万美元的销售目标。相关产品及其性能指标可在[链接]获取。连接到CRM系统[integration]以获取客户姓名、电子邮件地址和人口统计信息。

详见图1:(分析产品)-(识别目标受众)-(创建定制电子邮件活动)。

随后,它会监控执行和环境,并自主调整。在这种情况下,AI智能体到无法实现销售目标,自主添加了任务:(寻找替代产品)-(利用客户数据)-(进行A/B测试)。

还需提到的是,对于大多数用例,集成企业系统(如本例中的CRM)是必要的。例如,最近Anthropic提出的模型上下文协议(MCP[1])就是为了将AI智能体连接到企业数据所在的外部系统。

鉴于此类复杂任务的长期运行特性,记忆管理对AI智能体系统至关重要。一旦初始电子邮件活动启动,AI智能体需要监控活动长达1个月。

这需要在任务之间共享上下文,并在长时间内维护上下文。

当前的解决方案是使用向量数据库(Vector DBs)将代理记忆存储在外部——使数据项在需要时可访问。接下来,我们深入探讨

  • • 如何使用向量数据库管理代理记忆,

  • • 以及相关的数据质量问题。

然后我们将展示向量数据库(尽管足以用于对话记忆——问答对)对AI智能体任务是不够的,因为它们需要管理其他类型的记忆:

  • • 语义记忆(一般知识),

  • • 情景记忆(个人经历),

  • • 程序性记忆(技能和任务程序),

  • • 情感记忆(与经历相关的情感);

并强调需要使用其他形式(如知识图谱、有限状态机)来有效管理这些记忆。

2. 使用向量数据库进行对话记忆管理

向量数据库(DBs)专门用于存储向量并处理基于向量相似度的查询。它们目前是存储和检索对话代理相关数据(记忆)的主要媒介。基于向量数据库的对话代理编码/记忆管理如图2所示。

图2:基于向量数据库的大型语言模型编码(作者提供的图片)

这涉及到选择一个编码器模型,作为一个独立的过程进行离线数据编码,将各种形式的原始数据,如文本、音频和视频,转换为向量。相似的原始对话数据项被映射到编码空间中相邻的位置。

例如,文本需要转换为数值向量以便计算机处理,这通过**分词器(Tokenizers)**来完成。一个token可以是字节、字符、字符集、单词甚至完整的句子。字节对编码(BPE)是目前最常见的分词器,使用一对相邻字节作为token。

选择合适的’token’至关重要,因为它既影响神经网络能够掌握的token间关系,也影响训练该网络的计算复杂性。

这些编码数据被存储在向量数据库中,可以在推理时使用相同的编码器模型基于向量相似度进行检索。在聊天过程中,对话代理可以选择通过编码查询来查询长期记忆系统,并在向量数据库中搜索相关信息。然后利用检索到的信息基于存储的信息来回答查询。

2.1 向量数据库的数据质量问题

尽管人们普遍认同数据质量对AI的重要性,但目前企业的数据质量举措集中在结构化/SQL数据上。它们并没有考虑非结构化数据,例如文本、图像、音频和视频,而这些数据几乎占据了企业与生成式AI相关用例的80%。因此,我们在本节中讨论以下问题:

数据质量对存储在向量数据库中的非结构化数据意味着什么?尤其是在检索增强生成(RAG)环境中。

结合微调,RAG是’适应’预训练LLM与企业数据的主要机制之一,使其更加具有上下意义——在此过程中减少幻想(如图3所示生成式AI生命周期阶段)。

图3:生成式AI生命周期阶段(作者提供的图片)

在给定用户查询的情况下,RAG管道实际上由以下三个阶段组成(图4):

  • 检索:将用户查询转换为嵌入(向量格式),以便与其他内容进行相似度分数(搜索)比较。

  • 增强:通过从保持最新并与底层文档库同步的向量存储中检索的搜索结果/上下文进行增强。

  • 生成:通过使检索到的片段成为提示模板的一部分,提供额外的上下文给LLM,生成上下文化的响应来回答查询。

我们首先来看一下在我们今天的结构化/SQL数据世界中的常见数据质量维度:

  • 准确性:数据与现实场景的贴合程度如何?

  • 完整性:数据在缺失值、空值等方面的完整性。

  • 一致性:相同信息在不同地方存储的不同方式。

  • 时效性:以时间戳形式记录的数据的新鲜度。

然后尝试将它们映射到非结构化数据世界/向量数据库中——如图4所示。

图4:RAG - 向量数据库数据质量问题(作者提供的图片)

在向量数据库世界中,一个集合对应于一个SQL表,每个集合项可以包括:ID、向量(实际数据,以浮点数数组的形式捕获)、元数据(例如,时间戳)。

准确性:捕捉在向量存储中的数据的准确性。想象一下,如果AI基于不准确的信息撰写新闻文章,它可能最终生成错误信息而不是有价值的见解。我们依赖以下两个指标来捕捉这一点:

  • • 正确性:指LLM响应的事实准确性,

  • • 基础性:指LLM响应与其底层知识库的关系。

研究[2]表明,响应可能是正确的,但仍然基础不足。

不正确 和/或不一致的向量:由于嵌入过程中的问题,一些向量可能会被损坏、不完整或以不同维度生成。这可能导致混乱或分散的输出。例如,如果AI基于质量不一的录音生成音频,结果可能会明显不均匀。在文本生成中,数据中的语法或语气不一致可能导致内容尴尬或不连贯。

缺失数据可以表现为缺失向量或元数据。例如,GenAI从不完整的数据集中生成视觉设计可能输出特征缺失的产品。

时效性:如果向量存储中的文档,这是RAG管道中提示相关上下文的来源,已过时,那么GenAI系统可能产生不相关的输出。一个启用了GenAI的聊天机器人如果从过时的政策文档中获取数据来回答政策相关问题,可能会提供不准确和误导性的回答。

3. AI智能体记忆

虽然上述方法在以问答对的形式存储(和检索)对话方面表现良好,但对于AI智能体系统来说,不足以管理其他记忆类型,这些记忆类型是为了复制或改进人类执行的动作所必需的,尤其是:

  • • 语义记忆——一般知识,包括事实、概念、意义等。

  • • 情景记忆——关于过去特定事件和情境的个人记忆。

  • • 程序性记忆——如驾驶汽车的运动技能,以及实现任务的相应程序。

  • • 情感记忆——与经历相关的情感。

3.1 人类记忆的理解

在本节中,我们首先尝试理解人类大脑在短期和长期记忆方面的工作原理,如图5所示。

图5:人类大脑的记忆管理(作者提供的图片)

一切都始于感官系统,环境中的信息进入我们的感官记忆。这个初始记忆阶段以原始形式保留感官信息,但仅持续很短的时间,通常为几百毫秒。

从那里,我们注意到的信息被转移到短期记忆(STM)。这种工作记忆容量有限,能够保持大约7个信息块,持续约20-30秒。这里是意识性心理过程如思考、解决问题和决策发生的地方。

信息要从短期记忆转移到长期记忆(LTM),需要经过编码,将其转化为更持久和有意义的表示。

编码通过重复、精化或与现有知识创建关联等机制发生。

一旦成功编码,信息进入长期记忆,长期记忆容量广泛,可以存储信息的时间范围从数小时到一生。

检索系统基于与情境信息的关联进行操作。检索线索,无论外部还是内部,有助于通过重现编码情境来访问特定记忆。

  • • 回忆涉及在没有外部线索的情况下主动重构信息。

  • • 识别涉及在替代中识别先前遇到的信息。

  • • 最后,检索策略如启动、助记技术、分块和排练,增强了检索过程。

3.2 映射到代理记忆

基于我们对人类大脑和AI智能体/应用需求的理解,我们需要考虑以下记忆类型,如图6所示:

  • • 语义知识:信息来源于外部(如维基百科)和内部系统(如Sharepoint、Confluence、文档、消息平台等)。

  • • 情景记忆:关于特定过去事件和情境。这些见解是在AI代理的操作过程中获得的。

  • • 程序性记忆:类似于人类记住游泳或驾驶汽车的运动技能。它涵盖了AI代理如何完成特定任务的工作流程和程序。

  • • 情感记忆:记录与经历相关的情感。它深入研究用户关系、偏好、反应和使AI更具人性化及在用户互动中更协调的数据。

语义记忆可能是目前通过预训练和嵌入在LLMs中可用的唯一类型的记忆——其他记忆类型仍在进行中。

接下来,我们展示如何为代理AI系统实现一个全面的记忆管理模块——如图6所示。

图6:代理AI记忆管理(作者提供的图片)

记忆路由器默认情况下始终路由到长期记忆(LTM)模块,以查看是否存在响应给定用户提示的现有模式。如果有,它会检索并立即响应,根据需要进行个性化。

如果LTM失败,记忆路由器会将其路由到短期记忆(STM)模块,STM模块然后使用其检索过程(函数调用、API等)将相关上下文获取到STM(工作记忆)中——利用适用的数据服务。

STM - LTM 转换器模块始终处于活动状态,不断获取检索到的上下文并从中提取配方(例如,参考AutoGen[3]中的可教代理和配方概念),并存储在语义层(通过向量数据库实现)。同时,它还收集其他相关属性(例如,token数量、响应执行成本、系统状态、已执行任务/生成的响应)并

  • • 创建一个情节,然后存储在知识图谱

  • • 其底层程序存储在有限状态机(FSM)中。

4. 结论

总而言之,记忆管理对于长期运行的AI代理的采用至关重要。尽管向量数据库在对话代理中表现优异,但我们表明,对于复杂代理AI任务的多样化记忆需求,尤其是情景和程序性记忆,它们是不足的。

在本文中,我们提出了一个代理记忆架构的初稿,其中记忆路由器在STM和LTM模块之间路由请求。关键贡献是提出了一个STM到LTM转换器模块,能够分别在知识图谱和有限状态机中抽象和存储情景和程序性记忆。我们正在积极努力优化AI智能体系统的LTM存储和检索(包括探索其他形式)。

原文链接:https://ai.gopubby.com/long-term-memory-for-agentic-ai-systems-4ae9b37c6c0f

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

Logo

Agent 垂直技术社区,欢迎活跃、内容共建,欢迎商务合作。wx: diudiu5555

更多推荐