关于GraphRAG,LightRAG,HippoRAG三种知识图谱RAG对比
GraphRAG
数据结构
GraphRAG数据结构大致是这样的 首先,基础是最普遍的知识图谱RAG,实体和关系。实体和关系拥有各自的摘要,实体和关系的提取和摘要生成都是由LLM负责的。实体和关系的摘要和向量都会被保存 接下来是GraphRAG区别于普通RAG的区别。社区结构:GraphRAG通过Leiden算法,把实体和关系分成数个不同层级的社区(其中,不同级社区可以共享节点,但同级社区不能,在原论文中,分为了四级社区)。并由LLM为各社区生成社区摘要,这为后面GraphRAG的优势作了铺垫
GraphRAG的查询
GraphRAG大致上分为三种查询,分别为Global/Local/DRIFT Search,我们一个个来讲
1.Global Search
- 核心逻辑:自上而下 (Top-Down)
全局搜索主要用于处理那些抽象、总结性的问题。例如:“这份报告中提到的三个核心风险是什么?”
-
机制描述 它不直接检索原始数据或单个实体,而是利用预先生成的社区摘要(Community Summaries)。GraphRAG 会将图谱划分为不同的层次(Levels),从宏观的“根社区”到微观的“子社区”。
-
执行步骤: 1.将查询发送到指定层级的所有社区摘要。 2.大模型对每个摘要进行评分并提取相关要点(中间答案)。 3.最后将所有要点汇总,生成最终的全局总结。
-
适用场景: 主旨分析、趋势预测、跨数据集的总结。
2.Local Search
- 核心逻辑:以点带面 (Centric)
局部搜索用于处理针对具体实体或关系的细节问题。例如:“张三在 2023 年负责了哪些项目?”
-
机制描述: 它通过向量相似度找到与查询最相关的实体,然后以此为中心,拉取该实体的所有“邻居”(相关实体、关系、摘要、以及关联的原始文本块)。
-
执行步骤:
1.向量检索:找到匹配的实体和关系。 2.上下文构建:把实体摘要、关系描述、元数据和原始文本切片拼接成一个庞大的上下文窗口。 3.大模型推理:模型基于这些密集的局部事实给出精确回答。
- 适用场景: 事实性问答、特定对象调查。
3.DRIFT Search
- 核心逻辑:路径漫游 (Traversal/Reasoning)
DRIFT 是微软在 GraphRAG 基础上提出的一种进阶机制,旨在解决复杂的多步推理问题。
-
机制描述: DRIFT 的核心在于“搜索即推理”。它认为很多问题无法通过一次检索解决,需要根据初步发现的信息去寻找“下一个线索”。
-
核心组件:
Dynamic(动态):根据当前发现动态调整路径。 Reasoning(推理):利用 LLM 判断当前的搜索深度。 Iterative(迭代):多次循环。
-
执行逻辑: 它会生成后续查询(Follow-up Queries)。比如问“某药品的副作用”,DRIFT 可能先搜到药品成分,发现成分 A 有毒性,于是自动发起第二次检索去查“成分 A 的毒理实验”,最后再合并回答。
-
适用场景: 深度调查、需要多步跳跃(Multi-hop)的逻辑推理。
GraphRAG 的实体消歧
原论文好像只谈到了Prompt Engineering?记不太清了,先写着
GraphRAG 劣势
- 索引成本 GraphRAG 最被诟病的缺点就是“贵”。
Token 消耗巨大:在构建索引阶段,系统需要对全量文档进行多次 LLM 调用。首先是实体与关系提取,随后是实体消歧、社区发现,最后还要对成百上千个社区生成摘要报告。
计算开销:对于百万字规模的文档集,GraphRAG 的索引成本可能比传统向量 RAG 高出 数十倍甚至上百倍。
- 严重的索引延迟 GraphRAG 的索引过程不是“即插即用”的。
构建耗时:由于涉及复杂的图拓扑计算(如 Leiden 算法)和海量的 LLM 摘要任务,构建一个大规模知识图谱可能需要几小时甚至几天。
难以实时更新:当有新文档加入时,传统 RAG 只需要计算一个向量并插入数据库;而 GraphRAG 理论上需要重新考虑社区结构和摘要的更新,增量更新在目前的工程实现中依然是一个难点。
LightRAG
数据结构
LightRAG是基于双层索引实现的,大致表现为 低层级(Low-level): 专注于具体实体及其关系。类似于传统的向量检索,能精确回答“XX 是什么?”这类事实性问题。
高层级(High-level): 捕捉更宽泛的主题和抽象概念。它将相关的实体聚合成更高的语义层级,用于回答“总结一下 XX 的主要特征”或“XX 对行业有何影响?”这类全局性问题。 这里的高层级和GraphRAG的社区不太一样,首先是没有多层次的结构,其次是高层级表现形式并不是一段摘要,而是更为抽象的概念,如会把“理想”、“特斯拉”、“蔚来”,统一会被抽象为"电车行业"。也就是说,高层级和低层级本质都是实体,只不过高层级是LLM分析出来的,他们之间的联系就是普通的两个实体之间的联系一样
LightRAG 检索
LightRAG 的检索机制采用了双层并行检索策略,旨在同时兼顾低层级的事实细节和高层级的宏观概念。其核心步骤如下:
第一步:查询转换与关键词提取 (Query Expansion)
系统接收到用户的问题(Query)后,并不直接进行搜索,而是通过大语言模型(LLM)进行“意图扩充”:
- 多维度建模: LLM 会分析问题,提取出核心**实体(Entities)关键词和关系(Relationships)**关键词。
- 双层分类: 关键词被分为两个集合:
- 低层关键词 (Low-level): 指向具体的名称、参数、特定事件(例如:“2170 电池能量密度”)。
- 高层关键词 (High-level): 指向抽象概念、行业趋势、总结性话题(例如:“电池技术演变对供应链的影响”)。
第二步:子图匹配与检索 (Candidate Match)
系统利用关键词在图索引中定位“候选知识区域”,这是 LightRAG 效率高于传统方案的关键:
- 节点定位: 在知识图谱中通过向量相似度找到与关键词最接近的节点,作为“种子节点 (Seed Nodes)”。
- 局部子图提取 (Subgraph Extraction): 从种子节点出发,顺着图中的边(Edges)向外延伸(通常为 1-2 跳)。
- 核心优势: 它只捞取与问题高度相关的“知识簇”,而不是读取全图或所有文档。
- 双层检索并行执行:
- Low-level 检索: 抓取具体的实体细节和三元组事实。
- High-level 检索: 抓取高维抽象节点及其与其他大类概念的逻辑联系。
第三步:路径搜索与背景补全 (Path-based Context Discovery)
在拿到零散的子图信息后,系统会进行逻辑缝合,增强上下文的连贯性:
- 关联补全: 如果某个低层实体(如“特斯拉”)与某个高层概念(如“清洁能源战略”)同时出现在检索范围内,系统会优先提取连接这两者的路径。
- 拓扑排序: 根据图结构(如节点度数、路径深度)对检索到的关系片段进行优先级排序,确保最重要的逻辑支撑排在最前面。
第四步:上下文重组与答案生成 (Response Generation)
将检索到的非结构化图数据转化为 LLM 可理解的 Context:
- 格式化输入: 将提取到的子图(实体-关系-实体)和预先生成的语义摘要组合成一段结构化的参考素材。
- 生成答案: LLM 基于这些既有细节支持(低层)又有宏观框架(高层)的素材,生成准确、深入且不失全局观的回答。
LightRAG优劣
相比GraphRAG,LightRAG的名字已经点出了它的优势,更加轻量化,并且增量更新更方便 劣势的话,大概是更加依赖模型能力?
HippoRAG
我快写不动了,这段交给gemini写吧 好累
HippoRAG
HippoRAG 是一种受人类大脑海马体(Hippocampus)记忆机制启发的检索增强生成(RAG)框架。它旨在解决传统 RAG 在处理跨文档多跳推理(Multi-hop Reasoning)时的局限性。通过模拟大脑的联想记忆功能,HippoRAG 能够连接分布在不同文档中的碎片化信息,构建出完整的逻辑证据链。
HippoRAG 数据结构
HippoRAG 的数据结构构建(索引阶段)主要包含以下核心要素:
- 开放实体抽取(OpenIE): 利用大语言模型(LLM)从非结构化文本中提取实体(Nodes)及其相互关系(Edges),构建初步的知识图谱。
- 实体-文档关联: 建立一个双层索引结构,不仅记录实体间的逻辑关系,还保留实体与其来源文本段落(Passages)之间的映射。
- 语义向量空间: 对图谱中的每个实体节点进行向量化(Embedding),确保在检索时能够通过语义相似度(而非仅靠关键词匹配)找回相关节点。
HippoRAG 查询
HippoRAG 的查询过程模拟了神经科学中的“激活扩散”机制:
- 初始检索: 从用户查询中提取实体,并在图谱中通过语义相似度识别出起始节点。
- 个性化 PageRank (PPR): 以初始节点为起点,运行 PPR 算法。该算法在图结构上进行概率传播,赋予那些在逻辑路径上频繁出现或紧密相连的节点更高的“激活值”。
- 证据提取: 汇总所有高激活节点关联的原始文档段落,作为 LLM 生成答案的最终上下文。
HippoRAG 相比 GraphRAG, LightRAG 优劣
| 维度 | HippoRAG | Microsoft GraphRAG | LightRAG |
|---|---|---|---|
| 核心算法 | 个性化 PageRank (PPR)。通过路径传播模拟联想,寻找跨文档连接。 | 社区检测 (Leiden Algorithm)。预先对图进行聚类并生成多层级摘要。 | 双层索引 + 增量更新。结合实体级和关系级索引,支持动态数据。 |
| 主要优势 | 检索效率极高。无需生成昂贵的社区摘要,能快速处理复杂的多跳逻辑问题。 | 宏观掌控力强。非常擅长回答“总结全文”或“分析全局趋势”类的宏观问题。 | 低成本且实时。支持数据的增量更新,在保持较低索引成本的同时兼顾局部与全局。 |
| 主要劣势 | 极度依赖知识图谱的构建质量,若图谱过于稀疏或错误,路径传播将失效。 | 成本高昂。预索引阶段需要消耗大量 LLM Token 来生成各层级的总结报告。 | 在处理深度、超长路径的纯逻辑推理时,表现可能略逊于 HippoRAG。 |
| 适用场景 | 法律合规审查、医疗诊断、复杂的多文档证据追溯。 | 企业知识库调研、宏观行业报告总结。 | 需要频繁更新知识的生产环境、通用型知识问答。 |
哎哟我 累死了








