GraphRAG vs LightRAG:图增强 RAG 的两种工程路线深度对比
系统对比 Microsoft GraphRAG(社区检测 + 全局摘要) 与 HKUDS LightRAG(双层图 + 增量更新)两大图增强 RAG 框架的索引构建、检索范式、成本结构、查询质量与适用场景,给出按数据规模、查询类型、运维预算的选型决策树。
传统向量 RAG 在「全局性问题」(如「这批文档主要讲什么主题」「不同实体之间有什么关系」)上表现疲软——它只检索语义相似的文本片段,无法回答跨文档、跨实体、需要聚合信息的查询。2024 年起,「图增强 RAG」(GraphRAG)成为补足这块短板的主流路线。
本文聚焦两个最有代表性的开源实现:Microsoft GraphRAG(微软研究院 2024 年开源)和 HKUDS LightRAG(港大学 2024 年底开源),从索引机制、检索范式、成本结构、查询质量、运维复杂度五个维度做深度对比。
一、为什么需要图增强 RAG
在对比之前,先理解问题。向量 RAG 的 pipeline 是:文档 → 切块 → embedding → 向量库 → 检索相似块 → LLM 生成。这个范式擅长回答「具体事实型」问题(如「某函数的入参是什么」),但在三类查询上失灵:
- 全局性问题:「这 1000 篇财报主要讲哪些行业风险?」需要聚合所有文档才能回答。
- 多跳关系:「A 公司的 CEO 和 B 公司的 CFO 有什么关系?」需要追踪实体之间的关联链。
- 跨文档关联:「文档 1 提到的产品 X 在文档 2 里有什么更新?」需要跨文档的语义连接。
图增强 RAG 的核心思想是:在向量检索之外,再构建一张「实体—关系」图谱,让 LLM 能在图上做多跳推理、聚合查询、社区发现。三种主流实现路线:
- 路线 A:构建完整知识图谱(KG-RAG),用 SPARQL / Cypher 查询。代表:Neo4j LLM Graph Builder、TrustGraph。
- 路线 B:在向量库基础上叠加一层「轻量级图结构」,把图当作「上下文增强器」。代表:LightRAG、Graphiti。
- 路线 C:用 LLM 自动抽取社区 + 生成层级摘要,把「摘要本身」当作检索单元。代表:Microsoft GraphRAG。
GraphRAG 和 LightRAG 分别是路线 C 和路线 B 的代表,两者的工程取舍差异巨大。
二、索引机制:构建图的两种哲学
Microsoft GraphRAG:离线分层摘要 + 社区检测
GraphRAG 的索引 pipeline 是目前最「重」的:
- 文档切块:按 token 切分(默认 300 tokens)。
- 实体关系抽取:用 LLM(默认 GPT-4o)从每个 chunk 中抽取实体(entity)和关系(relationship),输出结构化三元组。
- 图构建:把实体当作节点、关系当作边,构建同质图(homogeneous graph)。
- 社区检测:用 Leiden 算法检测图中的社区结构(类似社交网络分析)。
- 层级摘要:对每个社区生成多层级(默认 3 层)的自然语言摘要,存储为「社区报告」。
- embedding 化:把每个社区摘要也做 embedding,存入向量库。
最终产出:实体表 + 关系表 + 社区摘要树 + 向量索引。索引一次的成本极高——1 万 tokens 的文档大约消耗 5-15 倍 token 的 LLM 调用(实体抽取 + 摘要生成),索引时间从十几分钟到几小时不等。
LightRAG:双层图 + 增量更新
LightRAG 的设计哲学是「轻量」——只在向量库之上叠加一个最小化的图结构:
- 文档切块:按 token 切分(默认 600 tokens)。
- 实体关系抽取:用 LLM 从 chunk 中抽取实体和关系(这一步和 GraphRAG 类似)。
- 去重合并:跨 chunk 抽取的同名实体自动合并,关系累加权重。
- 双层图构建:
- 实体层:节点是实体,边是关系
- 关系层:节点是关系,边是「关系之间的关联」(如「同一作者」「同一时间」)
- embedding 化:实体名、关系名、chunk 文本都做 embedding,存入向量库。
- 增量更新:新文档到来时,只对新增 chunk 做抽取和增量图合并,无需重建。
最终产出:实体-关系双层图 + 向量索引。索引一次的成本比 GraphRAG 低 50%-70%,增量更新成本极低(只处理新增文档)。
关键差异表
| 维度 | GraphRAG | LightRAG |
|---|---|---|
| 图结构 | 单层实体图 + 社区树 | 双层图(实体层 + 关系层) |
| 索引产物 | 实体/关系/社区摘要/向量 | 实体/关系/向量 |
| 索引成本(1M tokens) | $30-100 + 30-120 分钟 | $10-30 + 10-30 分钟 |
| 增量更新 | 需重建(无原生支持) | 原生支持 |
| 检索单元 | 社区摘要 + chunk | 实体/关系/ chunk |
| 适合查询 | 全局性 / 主题性 | 多跳关系 / 实体型 |
三、检索范式:两种「图查询」的实现
GraphRAG:local search + global search
GraphRAG 提供两种检索模式:
- Local search(局部搜索):从查询中抽取实体 → 在图中找邻居节点 → 把这些节点的邻居 chunk 一起喂给 LLM。适合回答「具体实体的细节」。
- Global search(全局搜索):把查询映射到相关社区 → 把社区摘要分批喂给 LLM → LLM 聚合所有摘要生成答案。适合回答「全局性问题」。
Global search 是 GraphRAG 的杀手锏——它能回答向量 RAG 完全无法回答的「这批文档在讲什么主题」。但代价是:每次查询都要调用 LLM 数十次(分批摘要),延迟高、成本高。
LightRAG:向量召回 + 图遍历
LightRAG 的检索范式更接近「向量优先 + 图增强」:
- 用查询的 embedding 召回 top-K 实体和关系
- 在图上做 1-2 跳遍历,把相关联的实体、关系、chunk 一起拉出来
- 拼接成上下文喂给 LLM
这种范式的优势是:单次查询只需 1 次 LLM 调用,延迟低、成本低。代价是:全局性问题能力较弱——它能做「多跳推理」但不能做「全图聚合」。
查询类型适配矩阵
| 查询类型 | GraphRAG | LightRAG | 纯向量 RAG |
|---|---|---|---|
| 事实型(「X 是什么」) | ✅ | ✅ | ✅ |
| 多跳关系(「A 和 B 的关系」) | ⚠️ | ✅ | ❌ |
| 全局性(「这批讲什么」) | ✅(杀手锏) | ⚠️ | ❌ |
| 跨文档关联 | ⚠️ | ✅ | ❌ |
| 时间敏感 | ❌ | ✅ | ⚠️ |
| 实时更新 | ❌ | ✅ | ✅ |
四、成本与运维:生产部署的关键差异
GraphRAG 的成本陷阱
GraphRAG 在生产环境最容易踩的坑是索引成本失控:
- 案例:某金融公司 50 万份研报做 GraphRAG 索引,第一次跑下来花了 $18,000 LLM 成本和 8 小时。
- 优化手段:用更便宜的模型做实体抽取(GPT-4o-mini),用 GPT-4o 只做社区摘要;并行化处理;缓存抽取结果。
另一个常见问题是更新困难:GraphRAG 设计上是「一次性离线索引」,新增文档后要么全量重建(成本极高),要么自己实现增量逻辑(没有官方支持)。
LightRAG 的运维友好性
LightRAG 的工程化程度明显更高:
- 增量索引:内置
insert()API,新文档增量合并到图,开箱即用。 - 多存储后端:支持本地 JSON、PostgreSQL、Neo4j、MongoDB 等多种 KV/图存储。
- 检索参数可调:top-K、跳数、相似度阈值都能配置。
- 成本可控:默认用 GPT-4o-mini 就能跑出不错的效果。
五、查询质量:基准对比
综合多个公开 benchmark 和实践经验:
| 维度 | GraphRAG | LightRAG |
|---|---|---|
| 事实型问答 | 8/10 | 8/10 |
| 多跳推理 | 7/10 | 9/10 |
| 全局性问题 | 10/10 | 5/10 |
| 跨文档关联 | 6/10 | 8/10 |
| 时间敏感查询 | 4/10 | 8/10 |
| 答案可解释性 | 8/10(社区路径可追溯) | 6/10 |
| 检索延迟(单次查询) | 5-15s(Global mode) | 0.5-2s |
GraphRAG 在「需要全局视野」的场景优势明显,LightRAG 在「需要快速增量 + 多跳推理」的场景优势明显。
六、典型场景适配
- 企业内部知识库(万级文档):LightRAG,增量更新 + 低运维成本 + 多跳关系查询为主。
- 法律/合规文档分析(百万级):GraphRAG,需要全局性问题("这批合同有哪些共同风险条款")+ 一次性离线索引可接受。
- 科研文献库(增量增长):LightRAG,新论文持续涌入,需要增量索引 + 跨论文实体关联。
- 金融研报分析(一次性深度分析):GraphRAG,全局性问题("这季度市场情绪如何")+ 不在乎索引成本。
- 实时新闻问答:LightRAG,时间敏感 + 增量更新。
- 跨实体推理(社交网络、供应链):LightRAG,多跳关系 + 图遍历能力强。
七、决策树
数据规模 < 1 万 chunks → LightRAG(成本低、维护简单);1 万 - 100 万 → 取决于查询类型。查询以全局性 / 主题性为主 → GraphRAG;以多跳关系 / 实体型为主 → LightRAG。需要增量更新 → LightRAG(唯一选择)。运维预算有限 → LightRAG。可以接受一次性索引 + 高 LLM 成本 → GraphRAG。需要快速响应(<2s 延迟) → LightRAG。
八、常见陷阱
- GraphRAG 是「更好」的 RAG:GraphRAG 和向量 RAG 是互补关系,不是替代关系。最佳实践是「向量召回 + 图增强」混合架构(LightRAG 本身就是这个思路)。
- LightRAG 不擅长全局性问题:如果你有 30% 的查询是「总结这批文档」,不要只依赖 LightRAG。
- GraphRAG 的社区摘要会过时:摘要一旦生成就不再更新,对时间敏感的数据要谨慎。
- LightRAG 的图会无限膨胀:不做实体去重和合并的话,实体数量可能爆炸。需要配置
entity_merge参数。 - 两个框架都需要 LLM 抽取:LLM 抽取的实体质量决定了整个系统的上限。生产环境建议用 GPT-4o 或 Claude Sonnet 做抽取。
九、未来趋势
图增强 RAG 的下一步突破点在三个方向:
- 混合架构:向量召回 + 图遍历 + 知识图谱 SPARQL 三层混合(LightRAG 2.x 已经部分实现)。
- 自动图维护:用 LLM 自动检测图中的过时实体、矛盾关系、低置信边。
- 多模态图:把图片、表格、公式也作为节点加入图谱。
最后一句话:没有「更好的图 RAG」,只有「更适配你查询分布的图 RAG」。如果你的查询是「这批文档讲什么」 → GraphRAG;如果是「A 实体和 B 实体的关系」 → LightRAG。最佳实践是两者组合:用 LightRAG 做日常检索,用 GraphRAG 定期生成「全局洞察报告」。
核心要点
- Microsoft GraphRAG 走"离线层次化摘要 + 社区检测"路线,用 LLM 预先生成实体-关系图 + 社区摘要,适合回答"全局性 / 跨文档聚合"问题。
- HKUDS LightRAG 走"双层图 + 增量更新"路线,实体-关系图与向量检索融合,适合需要快速索引、低成本的中小规模场景。
- 索引成本上 GraphRAG 显著更高(每个文档块都要 LLM 实体抽取 + 摘要生成),LightRAG 更便宜但检索质量更依赖嵌入质量。
- 选型决策:文档量级大、需要回答"主题是什么""不同实体怎么关联" → GraphRAG;文档量级中小、查询以"具体事实"为主 → LightRAG。
- 两条路线并非互斥:可以在 LightRAG 上层叠加 GraphRAG 风格的全图摘要做混合检索。
常见问题
- GraphRAG 索引一次要花多少钱?
- 与文档量和 LLM 选择强相关。一个常见 benchmark:用 GPT-4o 处理 1M token 文档,完整 GraphRAG 索引(entity extraction + community detection + summary generation)通常需要 30-100M input token + 5-15M output token,折合 1000-3000 美元。LightRAG 索引成本约为 GraphRAG 的 1/10 到 1/5。
- LightRAG 的增量更新怎么理解?
- LightRAG 把图谱切成两层:实体层(entity-level graph)和关系层(relation-level graph)。新增文档时,只对新增 chunk 做实体抽取和向量嵌入,然后增量合并到现有图,不重算全图。这是它和 GraphRAG(每次大改都要重新跑整个 pipeline)的关键差异。
- 哪个支持多模态(图片、表格)?
- 两个都不直接做多模态抽取,都需要上游有 OCR / VLM pipeline 把图片 / 表格转成文本再喂给 GraphRAG / LightRAG。在多模态文档场景下,推荐先用 GPT-4o / Claude 多模态能力生成结构化文本描述,再走 GraphRAG / LightRAG 的图谱索引流程。
- GraphRAG 适合小型知识库吗?
- 不适合。GraphRAG 的索引成本和社区检测开销都是为大规模语料设计的,对 100 个文档以下的场景,简单的向量 RAG + reranker 就足够,引入 GraphRAG 只会增加成本和延迟。LightRAG 在小型语料上表现良好,是入门图增强 RAG 的更合适选择。
本文涉及的项目
GraphRAG
34.5k ⭐微软开源的基于知识图谱的模块化检索增强生成(RAG)系统,利用大语言模型从文本中提取结构化知识图谱,支持全局和局部社区摘要查询。
LightRAG
37.9k ⭐LightRAG 是一个简洁高效的 RAG 框架,使用图结构增强检索效果,发表于 EMNLP 2025。
Graphiti
29.0k ⭐Graphiti 是面向 Agent 记忆的时序知识图谱引擎,帮助系统持续沉淀长期上下文。
Cognee
28.8k ⭐AI Agent 记忆知识引擎,仅需 6 行代码即可为 Agent 构建知识图谱和记忆层,支持图数据库、向量存储等多种后端,提供知识提取、推理和检索能力。
LLM Graph Builder
5.0k ⭐从非结构化文本自动抽取实体关系,构建 Neo4j 知识图谱。