检索增强生成(RAG)已成为将 LLM 输出锚定于外部知识的标准方法。但标准 RAG 有一个根本限制:它将每个查询视为独立事件,没有对过去检索的记忆,也无法跨文档连接信息。HippoRAG 从人类大脑的海马体中汲取灵感来克服这一限制,创建了一个能大幅改善多跳问答的长期记忆系统。
发表于 NeurIPS 2024,位于 github.com/OSU-NLP-Group/HippoRAG,HippoRAG 将 LLM 与知识图谱结合在一个以人类记忆的海马体索引理论为模型的框架中。其成果是一个 RAG 系统,能从文档中建立持久的知识结构,使其能够回答需要跨越多来源连接信息的复杂问题——在多跳 QA 基准测试上,比标准 RAG 提升约 20%。
该项目由俄亥俄州立大学 NLP 小组的研究人员开发,并迅速在学术界和工业界获得关注。最新版本 HippoRAG 2 在检索准确率和计算效率方面引入了进一步的改进。该框架与模型无关,可应用于任何文档集合。
什么是 HippoRAG?
HippoRAG 是一个受神经生物学启发的 RAG 框架,通过将知识图谱与检索增强生成相结合,为 LLM 建立长期记忆。它从海马体索引理论为模型,该理论认为海马体会为分散在大脑皮层中的信息建立和存储索引指针。HippoRAG 在多跳问答基准测试上达到了最先进的性能。
HippoRAG 是如何运作的?
HippoRAG 分两个阶段运作:离线索引阶段和在线检索阶段。
| 阶段 | 组件 | 发生什么 | 类比 |
|---|---|---|---|
| 离线索引 | 基于 LLM 的提取 | 从文档中提取开放知识图谱三元组 | 海马体编码 |
| 离线索引 | 命名实体识别 | 识别实体并跨文档链接 | 模式分离 |
| 离线索引 | 图谱构建 | 构建连接所有文档的统一知识图谱 | 认知地图形成 |
| 在线检索 | 查询编码 | 将问题编码为图谱级查询 | 海马体回忆 |
| 在线检索 | 图谱遍历 | 沿实体和关系路径寻找答案 | 模式完成 |
| 在线检索 | 上下文组装 | 收集相关段落作为 LLM 上下文 | 情景记忆检索 |
这种两阶段方法意味着一旦知识图谱构建完成,检索就比为每个查询重新嵌入和搜索所有文档要高效得多。
HippoRAG 2 带来了哪些改进?
HippoRAG 2 解决了原始版本的若干限制,并引入了新的功能。
| 特性 | HippoRAG 1 | HippoRAG 2 |
|---|---|---|
| 图谱构建 | 单次 LLM 提取 | 带验证的迭代精炼 |
| 实体链接 | 精确字符串匹配 | 语义 + 模糊匹配 |
| 检索范围 | Top-k 段落 | 自适应检索深度 |
| 计算成本 | 高索引成本 | 降低 40% 索引成本 |
| 多跳准确率(2WikiMultihop) | 51.3% | 59.8% |
| 多跳准确率(HotpotQA) | 58.2% | 65.1% |
| 单跳准确率(Natural Questions) | 44.7% | 51.4% |
HippoRAG 2 的改进使其适用于更大规模的文档集合和更高吞吐量的应用。
如何安装和使用 HippoRAG?
HippoRAG 以 Python 包形式提供,API 非常直观:
# 安装
pip install hipporag
# 基本使用
from hipporag import HippoRAG
# 索引文档
rag = HippoRAG()
rag.index(documents)
# 查询
answer = rag.query("What is the relationship between protein X and disease Y?")
print(answer)
该库与常见的文档加载器和嵌入模型集成,并同时支持 OpenAI 和开源嵌入后端。
如何引用 HippoRAG?
如果您在学术工作中使用 HippoRAG,请引用 NeurIPS 2024 论文:
@inproceedings{hipporag2024,
title={HippoRAG: Neurobiologically Inspired Long-Term Memory for Large Language Models},
author={Gutierrez, Bernal Jimenez and others},
booktitle={NeurIPS},
year={2024}
}
常见问题
什么是 HippoRAG?
HippoRAG 是一个受神经生物学启发的 RAG 框架,使用知识图谱为 LLM 建立长期记忆。与标准 RAG 相比,在多跳 QA 上准确率提升约 20%,发表于 NeurIPS 2024。
HippoRAG 是如何运作的?
HippoRAG 有两个阶段:离线索引(从文档中提取知识图谱三元组、链接实体和构建图谱)和在线检索(编码查询、遍历图谱和为 LLM 组装相关段落)。这反映了人类记忆的海马体索引理论。
HippoRAG 2 提供了哪些改进?
HippoRAG 2 引入了迭代图谱精炼、语义实体匹配、自适应检索深度和降低 40% 的计算成本。准确率在 2WikiMultihop 上从 51.3% 提升到 59.8%,在 HotpotQA 上从 58.2% 提升到 65.1%。
如何安装 HippoRAG?
通过 pip install hipporag 安装。该库支持 OpenAI 嵌入和开源嵌入模型,并集成了常见的文档加载器。
如何引用 HippoRAG?
引用 Gutierrez 等人的 NeurIPS 2024 论文。BibTeX 条目可在 GitHub 仓库的 README 中找到。
延伸阅读
- HippoRAG GitHub 仓库
- HippoRAG:受神经生物学启发的 LLM 长期记忆(NeurIPS 2024)
- HippoRAG 2:通过迭代精炼实现更好的检索
- 海马体索引记忆理论
- 检索增强生成:调查
flowchart TB
subgraph 离线索引
A[文档集合] --> B[LLM 提取]
B --> C[知识三元组]
C --> D[实体链接]
D --> E[知识图谱]
end
subgraph 在线检索
F[用户查询] --> G[查询编码]
G --> H[图谱遍历]
H --> I[上下文组装]
I --> J[LLM 答案]
end
E --> Hgraph TD
subgraph 比较
A[标准 RAG] --> B[嵌入每个查询]
B --> C[向量相似性搜索]
C --> D[Top-K 段落]
D --> E[答案生成]
F[HippoRAG] --> G[构建知识图谱]
G --> H[将查询编码为图谱遍历]
H --> I[多步骤路径寻找]
I --> J[组装关联段落]
J --> K[答案生成]
end
subgraph 准确率
L["标准 RAG:42.1%(2WikiMultihop)"]
M["HippoRAG 1:51.3%"]
N["HippoRAG 2:59.8%"]
end
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!