← 返回资料站  /  Continuous Learning
论文 记忆机制

HippoRAG: Neurobiologically Inspired Long-Term Memory for Large Language Models

HippoRAG:仿海马体索引的 LLM 长期记忆检索框架
一句话把语料离线抽成开放知识图谱、在线用 Personalized PageRank 从查询实体扩散检索,单步就能做多跳检索:2WikiMultiHopQA 上 R@5 比 ColBERTv2 高约 20 个点,且比迭代式检索 IRCoT 便宜 10-30 倍、快 6-13 倍。

这是什么

标准 RAG 把每个 passage 独立编码成向量,检索时只做一次相似度匹配,导致跨文档的知识整合(multi-hop)必须靠多轮迭代检索(如 IRCoT)来补,又慢又贵。HippoRAG(OSU,NeurIPS 2024)的出发点是:人脑靠海马体索引理论(hippocampal indexing theory)解决了这个问题——新皮层存表征,海马体只存一张稀疏的关联索引,新知识只需更新索引而不用重写表征。

论文把这套机制翻译成工程组件:LLM 扮演新皮层(负责把 passage 加工成离散知识),开放知识图谱扮演海马体索引,检索 encoder(Contriever/ColBERTv2)扮演海马旁回(负责在相似概念之间连边)。检索时不再逐段算相似度,而是在图上跑 Personalized PageRank,让概率质量从查询实体扩散到它们的联合邻域,一步完成多跳。

这属于『非参数持续学习』路线:知识更新 = 往 KG 里加三元组,不动模型权重,天然规避灾难性遗忘。同组后续在 ICML 2025 出了 HippoRAG 2(From RAG to Memory),现在 GitHub 主分支就是 v2 的代码。

动机图:标准 RAG 把 passage 独立编码成向量,回答『哪位 Stanford 教授研究 Alzheimer's 的神经科学』这种知识分散在两个文档的问题时无能为力(左上/右上);人脑靠海马体索引把新皮层表征关联起来;HippoRAG 用 KG 模拟这张索引,检索时从 Stanford 和 Alzheimer's 两个查询节点出发在图上找到交点 Prof. Thomas(下排)。
动机图:标准 RAG 把 passage 独立编码成向量,回答『哪位 Stanford 教授研究 Alzheimer's 的神经科学』这种知识分散在两个文档的问题时无能为力(左上/右上);人脑靠海马体索引把新皮层表征关联起来;HippoRAG 用 KG 模拟这张索引,检索时从 Stanford 和 Alzheimer's 两个查询节点出发在图上找到交点 Prof. Thomas(下排)。

机制与做法

离线索引:LLM OpenIE 建开放 KG

对语料中每个 passage,用 instruction-tuned LLM(默认 GPT-3.5-turbo-1106,temperature 0)做两步 1-shot 抽取:先抽 named entities,再把实体喂回 prompt 抽最终三元组(schemaless 的 OpenIE)。作者说这个两步设计是为了在『偏向具名实体』和『保留一般概念』之间取平衡。所有三元组汇成一张 KG,节点是名词短语,边是关系。

然后用检索 encoder 给 KG 加 synonymy 边:任意两个实体节点的 embedding 余弦相似度超过阈值 τ=0.8 就连一条边——这是『海马旁回』的角色,让『Stanford』和『Stanford University』这类近义节点连通。规模感受:MuSiQue 的 11,656 个 passage 抽出 91,729 个节点、107,448 条三元组,外加约 15-19 万条 synonymy 边。索引同时记录一个 |N|×|P| 的节点-passage 计数矩阵,供最后打分用。

方法图:三个脑区各对应一个组件——LLM(新皮层)做 OpenIE 抽三元组 / 从查询抽实体;检索 encoder(海马旁回)负责实体链接和 synonymy 边;KG + Personalized PageRank(海马体)承担索引与图扩散。上行是离线索引流程,下行是在线检索,node specificity 用节点图标大小表示。
方法图:三个脑区各对应一个组件——LLM(新皮层)做 OpenIE 抽三元组 / 从查询抽实体;检索 encoder(海马旁回)负责实体链接和 synonymy 边;KG + Personalized PageRank(海马体)承担索引与图扩散。上行是离线索引流程,下行是在线检索,node specificity 用节点图标大小表示。

在线检索:查询实体 + Personalized PageRank

查询进来后,LLM 只做一件事:1-shot 抽取查询里的 named entities(比如『Stanford』『Alzheimer's』),再用同一个 encoder 把它们链接到 KG 中最相似的节点,作为 query nodes。之后在整张 KG(三元组边 + synonymy 边)上跑 Personalized PageRank:重启概率全部集中在 query nodes 上(damping factor 0.5),概率质量沿边扩散到这些节点的联合邻域——多跳推理就发生在这一步图扩散里,不需要再调 LLM。

PPR 收敛后的节点概率乘上节点-passage 矩阵,得到每个 passage 的分数用于排序。另有一个 node specificity 技巧:节点 i 的权重乘上 1/|P_i|(该节点出现过的 passage 数的倒数),相当于一个只用局部信息的 IDF。消融显示它在 MuSiQue/HotpotQA 上带来 2-4 个点的 R@5 提升,synonymy 边则对 2Wiki 最重要(去掉后 R@5 从 89.1 掉到 85.6)。

为什么单步就够,以及成本账

IRCoT 这类迭代检索每轮都要 LLM 读检索结果再生成下一个查询,2-4 轮下来 1000 条查询花 $1-3、20-40 分钟;HippoRAG 在线只抽一次查询实体,$0.1、约 3 分钟,这就是 10-30 倍便宜、6-13 倍快的来源。二者还互补:把 HippoRAG 当 IRCoT 的检索器,2Wiki R@5 再涨到 93.9。

代价在离线端:GPT-3.5 索引 10,000 个 passage 约 $15、60 分钟,比 ColBERTv2 建索引慢 10 倍。缓解方案是开源模型——Llama-3.1-70B 抽取质量与 GPT-3.5 相当(平均 R@5 72.5 vs 72.9),4 张 H100 约 4 小时索引 1 万 passage;但 8B 模型在 2Wiki 上会明显掉点(R@5 77.5 vs 89.1),说明方法对 OpenIE 质量敏感。

关键结果

实证核查

扎实代码、数据、OpenIE 中间结果全部公开,repo 活跃维护(3971 stars,2026-08 仍在更新),已被大量后续工作(LightRAG、RAPTOR 对比、HippoRAG 2)当基线复用;主要提升集中在实体中心的 2Wiki 上、HotpotQA 不敌 ColBERTv2,这点论文自己写明了,没有藏。
论文声称多跳检索『outperforms SOTA by up to 20%』,单步可比肩迭代检索。
20% 这个数只在 2WikiMultiHopQA 成立(R@5 89.5 vs 68.2,tex 源码 Table 2),该数据集是实体中心构造、天然利于 KG 方法;MuSiQue 只 +3 个点,HotpotQA 上 HippoRAG(60.5/77.7)低于 ColBERTv2(64.7/79.3)。论文正文对这三点都有如实说明(『up to』措辞准确但宣传性强)。
『10-30 倍便宜、6-13 倍快』的效率优势。
只针对在线检索阶段、对照对象是 IRCoT(多轮 LLM 调用),数字来自附录 Table 8(1000 查询 $0.1 vs $1-3)。同一附录也承认离线索引比 ColBERTv2 慢 10 倍、每万 passage 多花 $15;拿 HippoRAG 和普通单步 dense retrieval 比是没有速度优势的(3min vs 1min)。引用这组数字时要带上适用范围。
代码和数据可复现论文结果。
repo(OSU-NLP-Group/HippoRAG)提供 reproduce/dataset、HF 数据集和 gpt-4o-mini / Llama-3.3-70B 的 OpenIE 中间结果;但注意主分支已重写为 HippoRAG 2(ICML'25),复现本篇要用 legacy 分支/v1.0.0 tag(issue #103、#167 均有作者确认)。issue #99 的复现者按 v1 脚本能跑出 recall,QA 评测入口曾让人踩坑(需用 qa_reader.py),作者有回应修正。issue #148 有用户用 Llama-3.1-8B+Contriever 只得 2Wiki R@2 39.85(论文 GPT-3.5 配置为 71.5),与论文自己的消融结论一致:弱抽取模型在 2Wiki 掉点严重,复现时 LLM 选型是关键变量。
作为长期记忆/持续知识整合框架具有实际影响力。
S2 引用 339 次,GraphRAG/LightRAG/RAPTOR 一系后续图检索工作普遍把它列为基线;同组 HippoRAG 2(arXiv 2502.14802)在 factual memory / sense-making / associativity 三类任务上系统性重跑并超过了 v1,等于作者自己做了最严格的第三方式复核。repo 3971 stars、MIT license、2026-08 仍在 push,不是弃坑论文代码。

与我们方向的关系

对 continual-learning 方向,这篇是『非参数持续学习』的代表作:知识更新只改外部索引(往 KG 加三元组 + 增量 synonymy 边),完全不碰权重,天然无灾难性遗忘,和改权重的 continual fine-tuning 路线形成互补对照。它证明了一个便宜的图算法(PPR)就能替代昂贵的多轮 LLM 迭代完成多跳知识整合,这个『把推理下沉到检索结构里』的思路可以直接借鉴到 agent 记忆系统设计。

可复用的具体件:两步 NER→OpenIE 抽取 prompt(附录全文给出)、synonymy 边阈值 τ=0.8、PPR damping 0.5、node specificity(局部 IDF)。要留意的坑:方法对抽取 LLM 的质量敏感(8B 级模型在实体密集数据集上掉点大),且提升幅度高度依赖任务是否实体中心——拿到非实体型语料(叙事、代码)上未必复现 2Wiki 那种 20 点收益,HippoRAG 2 论文对此有更全面的评估。

阅读笔记

读源码/复现注意:pip install hipporag 装的是 v2 代码,v1 在 legacy 分支。论文实验用 GPT-3.5-turbo-1106(已过时),repo 现在默认示例是 gpt-4o-mini。KG 是 schemaless 的,节点是名词短语而非规范化实体,synonymy 边只做了阈值级的近义合并,实体消歧其实很粗糙——这也是作者列的改进方向之一。

材料清单

TeX 源码
已存档:Raw/hipporag/source/
代码仓库github.com/OSU-NLP-Group/HippoRAG
3971★ · 最近推送 2026-08-23
HippoRAG 2 论文arxiv.org/abs/2502.14802
同组续作(ICML 2025),把 v1 扩展为通用记忆框架并系统性重评了 v1,repo 主分支即 v2 代码
复现数据集huggingface.co/datasets/osunlp/HippoRAG_v2
论文评测语料 + 查询,含 gpt-4o-mini / Llama-3.3-70B 的 OpenIE 中间结果
HippoRAG 1 原始代码github.com/OSU-NLP-Group/HippoRAG/tree/legacy
复现 NeurIPS'24 论文需用此 legacy 分支,主分支已是 v2 重写
OpenReviewopenreview.net/forum?id=hkujvAPVsg
NeurIPS 2024 评审意见

同类条目