论文浅尝 | HippoRAG:神经生物学启发的大语言模型的长期记忆(Neurips2024)

server/2024/12/22 7:04:37/

82a298a5bf57a51e2f3d4939ae8498fb.png

笔记整理:陈少凯,浙江大学硕士生,研究方向为知识图谱、RAG

论文链接:https://arxiv.org/pdf/2405.14831

发表会议:Neurips 2024

1. 动机

虽然近年来大语言模型(LLM)的研究取得了很大进展,但持续更新的长时记忆在当前的人工智能系统中仍然有明显缺陷。检索增强生成(RAG)已经成为LLMs长时记忆的解决方案,然而,当前的RAG方法仍不能帮助LLM执行需要跨段落边界集成新知识的任务,因为每个新段落都是孤立编码的。

许多重要的现实世界任务,例如科学文献综述、医学诊断等任务,需要跨段落或文档的知识集成。为了解决此类任务,当前的RAG系统采取迭代地使用多个检索和LLM生成步骤来连接不同的段落。相比之下,人脑能够相对轻松地解决这些具有挑战性的知识整合任务。

2. 贡献

本文的核心贡献主要如下:

(1)首先,提出了一种RAG框架HippoRAG,通过模仿人类记忆来作为LLM的长期记忆。

(2)其次,HippoRAG协同LLM、知识图谱和个性化PageRank算法,以模拟新皮质和海马体在人类记忆中的不同作用。

(3)最后,HippoRAG在多跳问答任务中优于现有的RAG方法,使用HippoRAG的单步检索实现了与IRCoT等迭代检索相当或更好的性能。

3. 方法

模型的整体架构如下:

bc6bacaa68d3afd98ade7f8e8362430b.png

主要分为两个阶段,具体如下:

(1)离线索引阶段:索引阶段类似于记忆编码的过程,包括使用指令微调的LLM和检索编码器来处理一组段落。具体来说,从每个段落中提取一组命名实体,然后将命名实体添加到OpenIE提示符中,以提取最后的三元组。

(2)在线检索阶段:检索阶段类似于人脑的记忆检索过程,这三个相同的组件然后被用来通过镜像人脑的记忆检索过程来执行在线检索。正如海马体接收通过新皮层和PHR处理的输入一样,我们的基于LLM的新皮层从查询中提取一组查询命名实体。然后,这些命名实体根据检索编码器确定的相似性链接到KG中的节点;我们将这些选定的节点称为查询节点。一旦查询节点被选中,它们就成为我们的合成海马体执行模式完成的部分线索。在海马体中,海马指数元素之间的神经通路使相关的邻近区域被激活并被上游召回。为了模仿这种高效的图搜索过程,我们利用了个性化PageRank算法,汇总先前索引的段落的输出PPR节点概率,并使用该概率对它们进行检索排序。

4. 实验

该实验主要在两个多跳QA benchmark(MusiQue和2WikiMultiHopQA)以及HotpotQA数据集上评估HippoRAG的检索能力;为了限制实验成本,从每个验证集中提取了1000个问题,三个数据集的具体信息如下所示:

24ecdaab96398b6e7c68138a62345121.png

b33f1567d8793f3ed38bc93a59563b85.png

单步检索性能比较:

d3322793e23aecf79528bb04684cc1b0.png

多步检索性能比较:

9fee17fcce6499a2aa67feb77a71923f.png

消融实验(不同抽取方法):

966241b89ba0c87fcd861a9d6c1831f0.png

5. 总结

本文提出的神经生物学原理的方法HippoRAG,虽然简单,已经显示出克服标准RAG系统的固有局限性,同时保留其参数记忆的优势。HippoRAG的知识集成能力,为LLM的长时记忆提供了可信的解决方案。然而,在未来的工作中可以解决目前工作的一些限制,使HippoRAG能更好地实现这一目标,比如通过执行特定组件微调来提高本方法的实际可行性。


OpenKG

OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

acb5ba4c984238d4d016dfe4a7f1374f.png

点击阅读原文,进入 OpenKG 网站。


http://www.ppmy.cn/server/152167.html

相关文章

基于Spring Boot的数码产品抢购系统

一、系统背景与目的 随着电子商务的快速发展,数码产品在线销售已成为主流趋势。然而,传统的数码产品销售方式存在抢购过程繁琐、库存管理混乱、用户体验不佳等问题。为了解决这些问题,基于Spring Boot的数码产品抢购系统应运而生。该系统旨在…

【数据安全】如何保证其安全

数据安全风险 数字经济时代,数据已成为重要的生产要素。智慧城市、智慧政务的建设,正以数据为核心,推动城市管理的智能化和公共服务的优化。然而,公共数据开放共享与隐私保护之间的矛盾日益凸显,如何在确保数据安全的…

javax.net.ssl.SSLPeerUnverifiedException: Hostname 192.168.13.13 not verified:

javax.net.ssl.SSLPeerUnverifiedException: Hostname 192.168.13.13 not verified: 前言: 之前需求推送数据是采用http:192.168.13.13:8000 后面业务需求修改为 https:192.168.13.13:443 修改后推送数据到第三方报以下异常, https://192.168.13.13:443…

开源Genesis: 开创机器人研究的全新模拟平台

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

CSS系列(19)-- 主题切换详解

前端技术探索系列:CSS 主题切换详解 🎨 致读者:探索动态主题的魅力 👋 前端开发者们, 今天我们将深入探讨 CSS 主题切换,学习如何构建灵活的主题系统。 主题系统设计 🚀 CSS 变量定义 /* …

使用 UniApp 在微信小程序中实现 SSE 流式响应

概述 服务端发送事件(Server-Sent Events, SSE)是一种允许服务器向客户端推送实时更新的技术。SSE 提供了一种单向的通信通道,服务器可以持续地向客户端发送数据,而不需要客户端频繁发起请求。这对于需要实时更新的应用场景非常有用。 流式传输的特点是将数据逐步传输给客…

windows C#-实例构造函数

声明一个实例构造函数,以指定在使用 new 表达式创建某个类型的新实例时所执行的代码。 要初始化静态类或非静态类中的静态变量,可以定义静态构造函数。 如以下示例所示,可以在一种类型中声明多个实例构造函数: class Coords {pu…

python OOP案例及多线程案例

OOP案例 import netmiko,timeclass Network_ssh(object):def __init__(self, device, host, username, password, port, command):self.device deviceself.host hostself.username usernameself.password passwordself.port portself.command commanddef connect_to_sw(…