如何使用HippoRAG增强LLM的记忆

news2024/11/15 8:07:42

大型语言模型(LLM)已经证明是一种非常宝贵的思考工具。经过大量文本、代码和其他媒体数据集的训练,它们能够创作出接近人类水平的文章、翻译语言、生成图像,还能以信息丰富的方式回答人们提出的问题,甚至可以编写不同类型的创意内容。但是,尽管它们功能强大,即使是最先进的LLM也有一个基本的限制:知识的时效性。它们所“知道”的一切知识都是由所接受的训练数据决定的,这使它们无法适应新的信息,也无法了解人们的具体需求和偏好。

为了克服这一限制,研究人员开发了检索增强生成(RAG)。RAG赋予了LLM访问实时更新的数据存储的能力。这种对动态外部知识库的访问使它们能够动态地检索相关信息,并将其合并到他们的响应中。然而,由于这些模型往往依赖于关键字匹配,当面对需要跨多个信息源进行关联的问题时,标准的RAG实现就会遇到挑战——这是一种被称为“多跳” (multi-hop)推理的难题。

受到大脑存储和提取记忆机制的启发,研究人员开发了HippoRAG这一新颖的RAG方法,这种方法在生成反应时能够检索并整合更具意义的来源。本文将深入剖析HippoRAG的工作原理,探究其在传统RAG技术之上的优势,并展望其在人工智能系统中激发全新推理和理解水平的潜力。

在RAG技术存在局限时:寻求更深层次的联系

在传统的RAG系统中有两个关键组件:检索器和生成器。检索器负责在庞大的文本数据库(知识库)中搜寻,这些数据库可能包括维基百科、企业内部文档,甚至个人文件。其工作原理是将问题和文档转化为数字表示(即嵌入),并利用高效的算法迅速找出与问题嵌入最为相似的文档。随后,生成器(通常是一个强大的大型语言模型)将这些检索到的文档作为场景,生成一个全面且信息丰富的答案。

例如,如果询问RAG系统“巴黎的主要旅游景点是什么?”,检索器将在知识库中搜索包含巴黎和旅游景点信息的文档。它可能会从维基百科、旅游博客甚至旅游指南中找到文章。然后LLM将使用这些检索到的文档来生成响应,可能列出像埃菲尔铁塔、卢浮宫博物馆和凯旋门这样的热门景点。

尽管这款工具功能强大,但当面对需要将多个信息片段串联起来以解答问题的情况时,传统的RAG系统往往显得力不从心——这正是所谓的“多跳”推理难题。假设某人向人工智能助理提问:“我下周去伦敦旅行时应该带把伞吗?”为了回答这个问题,助理需从他的日历中检索旅行日期,核实这些日期内伦敦的天气状况,并考虑他的个人行李偏好(他是习惯随身携带雨伞,还是仅在天气恶劣时才携带?)。然而,传统的RAG系统往往仅依赖于基础的关键字匹配,可能会找到包含“伦敦”和“雨伞”的文件,但不一定能理解这些文件与他的旅行或其个人行李偏好之间的时间关联性。

类似地,像“谷歌现任首席执行官(CEO)的出生地是哪个国家的首都?”这样的问题需要将他的出生地与该国的首都联系起来——这种联系可能在任何一份文档中都不明确。传统的RAG很难有效地建立这些连接。

HippoRAG:模仿大脑的记忆指数

HippoRAG是一个新的RAG框架,其设计理念来自于人们的大脑如何存储和检索记忆。人类的大脑不只是将信息存储在孤立的单元中,它在不同概念之间建立了丰富的联系网络。这种将相关想法联系起来的能力使得HippoRAG能够进行复杂的逻辑推理,从而做出推断,并回答需要将多个来源的信息综合在一起的复杂问题。

通过模拟大脑的记忆索引机制,HippoRAG展现了其独特的优势,为信息检索和推理领域带来了新的可能性。

受HippoRAG启发的海马体索引理论为大脑中的这种工作方式提供了一个模型:

  • 新皮质:作为大脑中负责“思考”的部分,负责处理感官信息和存储复杂知识。这类似于HippoRAG中的LLM。
  • 海马体:大脑深处的一个区域,就像记忆的“索引”。它本身并不存储完整的记忆,但它在存储在新皮层中的不同信息片段之间建立了联系(关联)。可以把它想象成一个概念之间联系的心理地图。这就是知识图谱在HippoRAG中的作用。

当体验到新事物时,大脑皮层就会处理,海马体会在相关概念之间建立联系,形成记忆痕迹。当在今后回忆起那段经历的一部分时,海马体会激活相关的联系,触发从新皮质提取完整的记忆。

为LLM构建更好的记忆

HippoRAG模仿这种受大脑启发的模型,为LLM提供了更复杂的记忆系统。以下探讨HippoRAG是如何运作的:

1.建立海马指数

HippoRAG使用LLM从知识库中提取关键概念和关系,构建知识图,其中节点表示概念,边表示概念之间的关系。这个知识图谱就像海马体,储存着想法之间的联系。

以下是示例中知识图谱的简化表示:

  • 节点:表示实体和概念:“伦敦”、“英国”、“天气”、“不可预测”、“雨伞”、“保护”、“雨”、“旅行”、“下周”、“周一”、“周五”、“轻装”、“我”等。
  • 边:表示节点之间的关系:“伦敦”-[是首都]->“英国”,“伦敦”-[以]->“不可预测的天气”而闻名,“雨伞”-[提供]->“保护”,“保护”-[从]->“雨”,“旅行”-[目的地]->“伦敦”,“旅行”-[时间]->“下周”,“下周”-[包括]->“星期一”,“下周”-[包括]->“星期五”,“我”-[偏好]->“轻装”,等等。
2.个性化PageRank的查询时间推理

给定一个新问题,LLM识别关键实体,并将它们映射到知识图中的节点。然后,HippoRAG使用一种称为个性化PageRank (PPR)的算法来探索知识图谱,在相关节点上传播激活。这就像海马体激活了相关的记忆痕迹。PPR允许HippoRAG从远离原始实体的多“跳”中有效地收集信息,在一个步骤中捕获多跳关系。在以下示例中:

  • 实体识别:与之前一样,LLM识别问题中的关键实体:“雨伞”、“旅行”和“伦敦”。
  • 知识图谱上的PPR:从代表这些实体的节点开始,PPR探索知识图谱,在相关节点之间传播激活。它考虑边缘的强度和方向来确定不同路径的相关性。

在例子中:PPR可能会高度激活通往“雨”、“变幻莫测的天气”和“保护”等节点的路径,因为它们与“伦敦”和“雨伞”有联系。

3.单步检索

然后检索最高度激活的节点(以及知识库中与它们相关的文本块)。这为LLM提供了回答问题所需的信息,包括概念之间的关键联系。

在示例中,这可能包括原始示例中的文本块1、2和3。

4.使用LLM生成答案

LLM现在已经掌握了谜题的所有部分——原始问题、检索到的知识(通过基于图的连接丰富)和任何额外的实时信息。它可以利用这些更丰富的知识来提供更细致、更准确的答案。

在例子中:

  • 组合输入:LLM接收原始问题、检索到的知识(现在已通过基于图的连接得到丰富)以及伦敦在旅行日期的实时天气预报。
  • 增强推理:LLM现在可以利用更丰富的知识来提供更细致、更准确的答案。它不仅知道伦敦的天气变幻莫测,而且还知道雨伞可以防雨,而且知道行程安排在可能下雨的时间。

从多跳到寻径:人工智能记忆的未来

HippoRAG背后的研究人员证明,它在多跳推理任务上明显优于标准的RAG方法。但这种方法的含义远远超出了简单的问题回答。

由HippoRAG实现的“寻径”检索概念尤其令人兴奋。想象一下,人工智能系统不仅可以检索信息,还可以发现概念之间的新联系,即使这些联系没有在数据中明确说明。这将改变科学发现、法律推理和个性化推荐等领域的游戏规则,在这些领域,建立新联系的能力是必不可少的。

虽然HippoRAG面临着扩展到大规模知识图谱和管理概念-场景权衡等挑战,但它代表了构建具有更类似人类记忆能力的LLM的重大飞跃。随着人们继续探索神经科学和人工智能的交叉点,正在接近创造能够像人类大脑一样学习、记忆和推理的深度和灵活性的人工智能系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1901456.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JSP WEB开发(一) JSP语言基础

目录 JSP JSP简介: JSP页面 JSP运行原理 JSP脚本元素 JAVA程序片 局部变量 全局变量和方法的声明 全局变量 方法的声明 程序片执行特点 synchronized关键字 表达式 JSP指令标记 page指令 include指令 JSP动作标记 JSP动作元素include和include指令的…

pandas中 groupby分组详解 1

引言 在一个使用 pandas 做数据分析的项目过程中,再次深刻理解了一下 pandas 中使用 groupby 进行分组的一些细节问题,以及对想要做的操作如何实现,在此记录; 问题 1:groupby 分组查看分组结果,以及重设分…

生物化学笔记:电阻抗基础+电化学阻抗谱EIS+电化学系统频率响应分析

视频教程地址 引言 方法介绍 稳定:撤去扰动会到原始状态,反之不稳定,还有近似稳定的 阻抗谱图形(Nyquist和Bode图) 阻抗谱图形是用于分析电化学系统和材料的工具,主要有两种类型:Nyquist图和B…

Ratf协议图解、Nacos CP集群源码分析

文章目录 Nacos CP集群说明Raft协议leader选举重新选举leader多个Candidate情况更新操作,日志复制网络分区 源码实现服务注册leader选举leader心跳包 Nacos CP集群 说明 CAP原则 C 一致性 ConsistencyA 可用性 Availability分区容错性 Partition tolerance 分区…

在 PostgreSQL 中,如何处理数据的版本控制?

文章目录 一、使用时间戳字段进行版本控制二、使用版本号字段进行版本控制三、使用历史表进行版本控制四、使用 RETURNING 子句获取更新前后的版本五、使用数据库触发器进行版本控制 在 PostgreSQL 中,处理数据的版本控制可以通过多种方式实现,每种方式都…

文档去重(TF-IDF,MinHash, SimHash)

2个doc有些相似有些不相似,如何衡量这个相似度; 直接用Jaccard距离,计算量太大 TF-IDF: TF*IDF TF:该词在该文档中的出现次数, IDF:该词在所有文档中的多少个文档出现是DF,lg(N/(1DF)) MinHash …

利用级数公式计算圆周率(π)

π是是指圆的周长与直径的比值,是无限不循环小数,有很多种方法可以求得它的近似值。这里用比较容易实现的关于π的无穷级数来求它的前10000位的取值。 π / 2 π 具体的,用两个字符数组x,z分别存放当前计算得到的pi值,数组…

Android面试题自定义View之Window、ViewRootImpl和View的三大流程

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 View的三大流程指的是measure(测量)、layout(布局)、draw(绘制)。 下面我们来分别看看这三大流程 View的measure(测量) MeasureSpec Measur…

前后端的导入、导出、模板下载等写法

导入,导出、模板下载等的前后端写法 文章目录 导入,导出、模板下载等的前后端写法一、导入实现1.1 后端的导入1.2 前端的导入 二、基础的模板下载2.1 后端的模板下载-若依基础版本2.2 前端的模板下载2.3 后端的模板下载 - 基于资源文件读取2.4 excel制作…

CTFShow的RE题(二)

逆向5 附件无后缀,查一下是zip,解压得到一个exe一个dll文件。 往下继续看 但也根进去看看 发现是在加载的dll文件 还有一个返回时调用的函数 发现是打印函数 根据以往的经验应该是要跳转到这里,动调一下。 发现exe链接了dll,…

R语言4.3.0保姆级安装教程,包含安装包

[软件名称]:R语言4.3.0 R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。 获取链接: https://pan.quark.cn/s/180306f47179 安装步骤: 1.解压压缩包。 2.进入…

python如何设计窗口

PyQt是一个基于Qt的接口包,可以直接拖拽控件设计UI界面,下面我简单介绍一下这个包的安装和使用,感兴趣的朋友可以自己尝试一下: 1、首先,安装PyQt模块,这个直接在cmd窗口输入命令“pip install pyqt5”就行…

24.6.30

星期一: 补cf global round26 D cf传送门 思路:把s中非a字符存下来,共m个,然后暴力检测,复杂度有点迷 代码如下: ll n;void solve(){string s; cin &…

【Python基础篇】你了解python中运算符吗

文章目录 1. 算数运算符1.1 //整除1.2 %取模1.3 **幂 2. 赋值运算符3. 位运算符3.1 &&#xff08;按位与&#xff09;3.2 |&#xff08;按位或&#xff09;3.3 ^&#xff08;按位异或&#xff09;3.4 ~&#xff08;按位取反&#xff09;3.5 <<&#xff08;左移&#…

SpringBoot新手快速入门系列教程一:window上编程环境安装和配置

首先编译器&#xff0c;建议各位不要去尝试AndroidStudio和VisualStudio来做SpringBoot项目。乖乖的直接下载最新版即可 https://www.jetbrains.com.cn/idea/ 当然这是一个收费的IDE&#xff0c;想要便宜可以想办法去某宝买授权&#xff0c;仅供学习参考用&#xff01;赚了钱…

AI老照片生成视频

地址&#xff1a;AI老照片 让你的图片动起来, 老照片修复与动态化

52-4 内网代理1 - 内网代理简介

一、正向连接 正向连接是指受控端主机监听一个端口,由控制端主机主动发起连接的过程。这种连接方式适用于受控主机拥有公网IP地址的情况。例如,在攻击者和受害者都具有公网IP的情况下,攻击者可以直接通过受害者的公网IP地址访问受害者主机,因此可以使用正向连接来建立控制通…

Linux进程(1)(结构-操作系统-进程)

目录 1.体系结构 2.操作系统&#xff08;Operator System&#xff09; 1&#xff09;概念&#xff1a; 2&#xff09;结构 示意图&#xff08;不完整&#xff09; 3&#xff09;尝试理解操作系统 4&#xff09;系统调用和库函数概念 3.认识进程 1.启动 2.进程创建的代码…

[单master节点k8s部署]20.监控系统构建(五)Alertmanager

prometheus将监控到的异常事件发送给Alertmanager&#xff0c;然后Alertmanager将报警信息发送到邮箱等设备。可以从下图看出&#xff0c;push alerts是由Prometheus发起的。 安装Alertmanager config文件 [rootmaster prometheus]# cat alertmanager-cm.yaml kind: ConfigMa…

小白必看!推荐三本高质量python书籍,让你直接原地起飞

Python是一种多功能语言。它经常用作Web应用程序的脚本语言&#xff0c;嵌入到软件产品中&#xff0c;以及人工智能和系统任务管理。它既简单又强大&#xff0c;非常适合初学者和专业程序员。 python的自学书籍非常多&#xff0c;涉及基础入门、web开发、机器学习、数据分析、…