如何使用HippoRAG增强LLM的记忆

大型语言模型(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.mzph.cn/web/40842.shtml

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

相关文章

CANopen协议开发梳理总结笔记教程

0、提醒 CANOpen使用时,需要清楚什么是大端和小端,这对于CANOpen数据发送及解析时,有很大的帮助。且学习开发CANOpen时,需要具备一定的CAN基础。 1、CANOpen协议介绍 ①、什么是CANOpen协议 CANOpen协议是一种架构在控制局域网络…

基于CLIP特征的多模态大模型中的视觉短板问题

【论文极速读】 基于CLIP特征的多模态大模型中的视觉短板问题 FesianXu 20240706 at Tencent WeChat search team 前言 今天读到篇CVPR 24’的论文 [1],讨论了常见的多模态大模型(大多都基于CLIP语义特征,以下简称为MLLM)中的视觉…

Python处理表格数据常用的 N+个操作

Python作为一种强大且易用的编程语言,其在数据处理方面表现尤为出色。特别是当我们面对大量的表格数据时,Python的各类库和工具可以极大地提高我们的工作效率。以下,我将详细介绍Python处理表格数据常用的操作。 首先,我们需要安…

复现YOLO_ORB_SLAM3_with_pointcloud_map项目记录

文章目录 1.环境问题2.遇到的问题2.1编译问题1 monotonic_clock2.2 associate.py2.3 associate.py问题 3.运行问题 1.环境问题 首先环境大家就按照github上的指定环境安装即可 环境怎么安装网上大把的资源,自己去找。 2.遇到的问题 2.1编译问题1 monotonic_cloc…

ASP.NET Core----基础学习01----HelloWorld---创建Blank空项目

文章目录 1. 创建新项目--方式一: blank2. 程序各文件介绍(Project name :ASP.Net_Blank)(1)launchSettings.json 启动方式的配置文件(2)appsettings.json 基础配置file参数的读取&a…

ChatGPT:SpringBoot解决跨域问题方法-手动设置请求头

ChatGPT:SpringBoot解决跨域问题方法-手动设置请求头 这里的设置响应头是为了发送请求方还是接收请求方 设置响应头是为了发送请求方。具体来说,添加 Access-Control-Allow-Origin 头部是为了告诉浏览器,哪些域名可以访问资源。当设置为 * 时…

自动批量将阿里云盘文件发布成WordPress文章脚本源码(以RiPro主题为例含付费信息下载地址SEO等自动设置)源码

背景 很多资源下载站,付费资源下载站,付费内容查看等都可以用WordPress站点发布内容,这些站点一般会基于一个主题,付费信息作为文章附属的信息发布,底层存储在WP表里,比如日主题,子比主题等。 …

Apache Seata tcc 模块源码分析

本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 一 .导读 spring 模块分析中讲到,Seata 的 spring 模块会对涉及到分布式业务的 b…

《梦醒蝶飞:释放Excel函数与公式的力量》9.2 FV函数

9.2 FV函数 FV函数是Excel中用于计算投资或贷款在若干期后的未来值的函数。它是一个非常实用的财务函数,能够帮助我们快速计算投资的最终价值或贷款的期末余额。 9.2.1 函数简介 FV函数用于计算基于定期固定支付和固定利率的投资或贷款的未来值。未来值是指在一定…

cs224n作业3 代码及运行结果

代码里要求用pytorch1.0.0版本,其实不用也可以的。 【删掉run.py里的assert(torch.version “1.0.0”)即可】 代码里面也有提示让你实现什么,弄懂代码什么意思基本就可以了,看多了感觉大框架都大差不差。多看多练慢慢来,加油&am…

文件、文本阅读与重定向、路径与理解指令——linux指令学习(一)

前言:本节内容标题虽然为指令,但是并不只是讲指令, 更多的是和指令相关的一些原理性的东西。 如果友友只想要查一查某个指令的用法, 很抱歉, 本节不是那种带有字典性质的文章。但是如果友友是想要来学习的,…

PD虚拟机怎么联网?PD虚拟机安装Win11无法上网 pd虚拟机连不上网怎么解决 mac安装windows虚拟机教程

PD虚拟机既可以联网使用,也可以单机使用。如需将PD虚拟机联网,可以共享Mac原生系统的网络,其使用体验与真实系统无异。本文会详细讲解PD虚拟机如何联网,并会进一步解决PD虚拟机安装Win10无法上网的问题。 如果有网络相关问题的小伙…

游戏服务器搭建选VPS还是专用服务器?

游戏服务器搭建选VPS,VPS能够提供控制、性能和稳定性。它不仅仅是让游戏保持活力。它有助于减少延迟问题,增强您的游戏体验。 想象一下:你正沉浸在一场游戏中。 胜利在望。突然,屏幕卡住——服务器延迟。 很崩溃,对…

C语言实现【程序设计与实践】实验三:自动售货机

声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 附上c版http://t.csdnimg.cn/BbDSL https://blog.csdn.net/As_sBomb/article/details/105485940 实验三:自动售货机 题目: 图所示为简易自动售货…

【MYSQL】事务隔离级别以及InnerDB底层实现

事务隔离级别 读未提交(Read Uncommitted) 允许事务读取其他事务未提交的数据,可能会导致脏读。 读已提交(Read Committed) 一个事务只能看见已经提交的事务所做的更改,可以避免脏读,但可能…

win7系统快速安装python

下载安装包 建议选择python3.8左右的,我下载的是3.7.8,最新版本的pythonwin7可能不支持 python网址 下拉寻找 安装python 1.双击安装包 更换完地址选择安装(install) 安装完成后点击close即可 测试是否安装成功 1.winr快捷键打开黑窗口输入cmd …

idea创建的maven项目pom文件引入的坐标报红原因

如下所示 我们在引入某些依赖坐标的时候,即使点击了右上角的mavne刷新之后还是报红。 其实这是正常现象,实际上是我们的本地仓库当中没有这些依赖坐标,而idea就会通过报红来标记这些依赖来说明在我们的本地仓库是不存在的。 那有的同学就会…

【HICE】dns正向解析

1.编辑仓库 2.挂载 3.下载软件包 4.编辑named.conf 5.编辑named.haha 6.重启服务 7.验证本地域名是否解析

六、快速启动框架:SpringBoot3实战-个人版

六、快速启动框架:SpringBoot3实战 文章目录 六、快速启动框架:SpringBoot3实战一、SpringBoot3介绍1.1 SpringBoot3简介1.2 系统要求1.3 快速入门1.4 入门总结回顾复习 二、SpringBoot3配置文件2.1 统一配置管理概述2.2 属性配置文件使用2.3 YAML配置文…

ODOO17的邮件机制-系统自动推送修改密码的邮件

用户收到被要求重置密码的邮件: 我们来分析一下ODOO此邮件的工作机制: 1、邮件模板定义 2、渲染模板的函数: 3、调用此函数的机制: 当用户移除或增加了信任的设备(如电脑、手机端等),系统会自…