模型层 开放阅读

GraphRAG

GraphRAG

概念 ID
graphrag
更新时间
2026-05-29
来源数量
待补

GraphRAG

3 秒看懂

GraphRAG = 先用 LLM 从文档中抽取实体/关系、构建知识图谱 → 对图做社区检测并生成层级摘要 → 查询时用图结构 + 社区摘要检索回答问题。 它解决的核心痛点是:传统 RAG 擅长”局部事实检索”,但面对”这批文档整体说了什么”的全局性问题时束手无策。

3 分钟产业解释

为什么需要 GraphRAG?

传统 RAG(Retrieval-Augmented Generation)的工作流是:把文档切成 chunk → 向量化 → 相似度检索 → 喂给 LLM 生成回答。这套流程对”某篇文档里某个具体事实”型问题非常有效,但有一个根本局限——

用户问一个需要跨越数百上千个 chunk 综合理解的全局问题时,传统 RAG 不知道该检索哪些 chunk。

例如:

  • “这份 200 篇专利文档合集里,核心技术趋势是什么?”
  • “这个组织的主要派系和权力结构是怎样的?”
  • “这两百段播客对话中,反复出现的争议主题有哪些?”

这些问题的”答案”不存在于任何一个单独的 chunk 中,而是需要对整个语料库做归纳推理。GraphRAG 的核心洞察是:用图结构来显式建模实体间的关系网络,再用图的社区结构来捕获”主题聚类”,从而为全局性查询提供有效的检索锚点。

一句话价值主张

GraphRAG 把非结构化文本 → 结构化知识图谱 → 层级化摘要索引,使 LLM 能回答传统 RAG 无法回答的全局性、综合性问题。

15 分钟专家深入

起源与背景

GraphRAG 的核心方法论由 微软研究院(Microsoft Research) 的 Darren Edge 等人于 2024 年 发表,论文标题为 “From Local to Global: A Graph RAG Approach to Query-Focused Summarization”,同时微软在 GitHub 上开源了参考实现(microsoft/graphrag)。

核心流程概览

GraphRAG 的索引(Indexing)和查询(Query)两个阶段:

索引阶段(离线、计算密集):

  1. 文档分块(Chunking):将源文档切分为文本块
  2. 实体与关系抽取:用 LLM 从每个 chunk 中提取实体(人名、组织、概念等)及其关系,输出结构化的三元组
  3. 知识图谱构建:将所有三元组合并为一张知识图谱
  4. 社区检测:对图执行 Leiden 算法,得到层级化社区划分
  5. 社区摘要生成:用 LLM 为每个社区生成摘要报告(community report),描述该社区中的核心实体、关系和主题

查询阶段(在线):

  • Local Search:利用图结构做增强检索,找到与问题相关的实体/关系/社区,结合原始 chunk 生成回答
  • Global Search:从社区摘要层级结构出发,LLM 对各层级社区报告做 map-reduce 式的综合推理,生成全局性回答

为什么是图?为什么是社区检测?

知识图谱的本质优势在于关系的显式表达——向量检索只捕获语义相似性,图则能捕获”A 与 B 合作 → B 资助了 C → C 与 A 存在利益冲突”这种多跳关系链。

社区检测(Leiden 算法是对 Louvain 的改进)的核心作用是:自动将紧密关联的实体聚类为”主题群组”,每个群组对应一个语义上自洽的知识子集。层级化社区结构意味着粗粒度到细粒度的摘要可以按需使用。


技术原理(最深)

整体架构(ASCII)

┌─────────────────────────────────────────────────────────┐
│                    INDEXING (离线)                        │
│                                                         │
│  ┌──────────┐    ┌──────────────┐    ┌───────────────┐  │
│  │ 文档分块  │───→│ LLM 实体/关系 │───→│  知识图谱 G   │  │
│  │ Chunking  │    │   抽取        │    │ (V:实体,E:关系)│  │
│  └──────────┘    └──────────────┘    └───────┬───────┘  │
│                                              │          │
│                                              ▼          │
│                                    ┌──────────────────┐ │
│                                    │  Leiden 社区检测  │ │
│                                    │  (层级化划分)     │ │
│                                    └────────┬─────────┘ │
│                                             │           │
│                                             ▼           │
│                                    ┌──────────────────┐ │
│                                    │ LLM 生成社区摘要  │ │
│                                    │ Community Reports │ │
│                                    └──────────────────┘ │
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│                    QUERY (在线)                           │
│                                                         │
│  ┌────────────┐          ┌─────────────┐                │
│  │ Local Search│          │ Global Search│               │
│  │             │          │              │               │
│  │ 图遍历增强  │          │ 社区摘要层级  │               │
│  │ 检索+chunk  │          │ map-reduce   │               │
│  │ → 生成回答  │          │ → 生成回答    │               │
│  └────────────┘          └─────────────┘                │
└─────────────────────────────────────────────────────────┘

关键步骤技术细节

1. 实体/关系抽取(Entity & Relation Extraction)

  • 使用 LLM(原始论文实验用 GPT-4 系列)对每个文本块做结构化抽取
  • Prompt 模板要求 LLM 输出实体名称、类型、描述,以及实体间的关系描述
  • 同一实体在不同 chunk 中被多次提取后需做实体消歧/合并(Entity Resolution),合并后的实体描述也会融合
  • 关系边带有多条属性:description 列表、weight(出现频次)等

关键成本因素:这一步是 GraphRAG 索引成本高的主因——每个 chunk 都需要一次或多次 LLM 调用。对大规模语料库,索引阶段的 token 消耗可能是查询阶段的数个数量级以上。

2. 社区检测(Community Detection)

  • 采用 Leiden 算法(Traag et al., 2019),是 Louvain 算法的改进版本,能保证社区内部连通性
  • Leiden 输出层级化(hierarchical) 的社区结构:最顶层是少数几个大社区,逐层细分到底层的小社区
  • 社区层级的深度和每层社区数量取决于图的规模和结构

3. 社区摘要(Community Reports)

  • 对每个社区中的实体和关系,LLM 生成一份结构化的摘要报告
  • 报告内容包括:社区主题、核心实体列表、关键关系、重要发现
  • 层级策略:底层社区摘要更细粒度(特定子话题),顶层社区摘要更宏观(大主题域)

4. Global Search 机制

这是 GraphRAG 最独特的部分:

用户全局性问题
      │
      ▼
┌─────────────────────┐
│ 选择社区摘要层级      │
│ (中间层 or 多层采样)  │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ MAP 阶段:            │
│ 对每个社区摘要,       │
│ LLM 生成局部回答      │
│ + 相关性评分          │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ 过滤: 丢弃低相关性    │
│ 的局部回答            │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ REDUCE 阶段:          │
│ LLM 综合所有局部回答   │
│ 生成全局性最终回答     │
└─────────────────────┘
  • Map 阶段:将用户问题分别与每个社区摘要配对,LLM 生成”该社区视角下的局部回答”并评分
  • Reduce 阶段:将通过阈值筛选的局部回答汇总,LLM 做最终综合生成

5. Local Search 机制

  • 从与问题相关的实体出发,沿图结构做邻域扩展
  • 收集相关的实体描述、关系描述、社区报告、原始文本 chunk
  • 将这些上下文拼接后交给 LLM 生成回答
  • 本质上是图增强的 RAG,比纯向量检索多了结构化关系信息

成本结构定性分析

环节主要成本来源量级特征
实体/关系抽取LLM token(每个 chunk 多次调用)索引成本的主要组成部分,远高于传统 RAG
实体消歧合并计算 + LLM(歧义情况)取决于实体重叠度
社区摘要生成LLM token(每个社区一次)随社区数量线性增长
查询(Local)LLM token(少次调用)与传统 RAG 相当
查询(Global)LLM token(map-reduce 多次调用)高于 Local Search,随社区数量增长

技术演进史

时间事件意义
2020Lewis et al. 发表 RAG 论文”检索增强生成”范式确立
2020–2023知识图谱 + NLP 研究持续KGQA、KBQA 等方向积累图+语言模型融合经验
2023RAG 在工业界大规模落地向量数据库(Pinecone、Weaviate 等)繁荣;暴露全局性问题短板
2024 Q2微软研究院发表 GraphRAG 论文提出用知识图谱+社区检测+层级摘要解决全局 RAG 问题
2024 Q2–Q3微软开源 microsoft/graphrag社区快速跟进,GitHub 星标快速增长
2024 H2社区衍生方案涌现LightRAG、nano-graphrag、LazyGraphRAG 等轻量化/优化变体出现
2024–2025LazyGraphRAG(微软)微软后续提出 LazyGraphRAG,大幅降低索引成本,按需抽取而非全量预索引

技术路线对比

GraphRAG vs. 传统 RAG vs. 知识图谱问答

维度传统 RAG(向量检索)知识图谱 QA(KBQA)GraphRAG
知识表示向量嵌入(隐式语义)结构化三元组(显式符号)图 + 文本摘要(混合)
索引成本低(embedding 计算)高(需构建/维护 KG)很高(LLM 抽取+摘要)
全局问题能力弱(依赖检索命中)中(受限于图覆盖度)强(社区摘要 map-reduce)
局部事实能力
可解释性低(黑盒相似度)高(路径可追溯)中高(社区报告可读)
增量更新容易(追加 embedding)中等复杂(需重新社区检测/摘要)
典型查询延迟中–高(Global 多轮 LLM 调用)
适用场景精确事实检索结构化领域知识大规模非结构化语料的全局理解

GraphRAG 变体对比

变体核心改进索引成本查询质量
GraphRAG(原版)全量预索引 + 社区摘要很高全局问题表现最佳
LazyGraphRAG延迟抽取,按需构建轻量图结构大幅降低全局能力有取舍,局部能力保持
LightRAG / nano-graphrag社区实现的轻量化优化降低接近原版

上下游

上游(GraphRAG 依赖什么)

环节关键依赖说明
LLM 推理GPT-4 / GPT-4o / 开源替代实体抽取、摘要生成、查询回答均依赖 LLM
文档处理文本分块、OCR、PDF 解析源数据质量直接影响抽取质量
图算法库NetworkX / graph-tool图构建与社区检测
Leiden 算法实现leidenalg (igraph)社区检测核心
向量模型(可选)text-embedding 模型Local Search 中的语义匹配

下游(GraphRAG 产出什么)

产出消费方说明
全局性摘要回答终端用户 / 分析师最终价值交付
知识图谱可视化、其他 AI 应用索引的副产品,本身有独立价值
社区层级结构知识管理、主题分析自动生成的主题分类体系
结构化实体/关系知识库、搜索引擎增强可导入传统 KG 系统

关键指标

指标说明参考量级
Comprehensiveness(全面性)回答是否覆盖问题各方面GraphRAG 显著优于 naive RAG(论文人工评估)
Diversity(多样性)回答是否包含多角度信息GraphRAG 显著优于 naive RAG
索引 token 消耗构建图谱+摘要的总 LLM token远高于传统 RAG;定性:对万级 chunk 语料可达数百万 token
查询延迟(Global)全局查询端到端时间受社区数量和 LLM 延迟影响,通常数十秒级
图规模实体数/关系数取决于语料规模和 LLM 抽取粒度
社区数量Leiden 输出的社区总数取决于图结构和分辨率参数

:原始论文中报告的 Comprehensiveness 和 Diversity 胜率数据来自人工评估(LLM-as-judge + 人工标注),实验数据集为播客转录和新闻语料,具体数字可参见原论文 Table/Figure,此处不编造精确百分比。


供需与市场数据

需求侧驱动力

驱动力说明
企业知识管理大量内部文档、报告、会议记录需要全局性理解
情报分析金融、安全、法律领域的多源信息综合分析
学术文献综述跨论文主题归纳
合规审计需要理解大规模文档集合的全貌

供给侧格局

层次玩家说明
开源框架微软 graphrag、LlamaIndex(集成 GraphRAG)、LangChain 生态开源主导,微软为核心推动者
云服务Azure(与 OpenAI 生态整合)、各 AI 平台原生集成尚在早期
垂直方案各行业 RAG 平台提供商将 GraphRAG 作为高级 RAG 模式之一

成本敏感性

GraphRAG 的核心商业挑战在于索引成本。对大规模语料库(百万级 chunk),全量预索引的 LLM token 消耗可能达到数千万甚至更高量级,这使得索引成本可能远超查询成本。LazyGraphRAG 等轻量化方案正是为解决这一问题而生。


代表公司与资本映射

公司/组织角色与 GraphRAG 的关系
Microsoft方法论提出者、开源维护者发表论文、开源 graphrag 库、Azure AI 集成
OpenAI上游 LLM 提供GPT-4 系列是论文实验和社区实践的主力模型
LlamaIndex框架集成将 GraphRAG 能力集成到 LlamaIndex 生态
LangChain框架集成支持 GraphRAG 风格的编排
Neo4j图数据库厂商提供图存储后端,推广 GraphRAG + Neo4j 方案
各向量数据库厂商Pinecone / Weaviate / Milvus 等传统 RAG 基础设施,可能面临 GraphRAG 带来的架构演进

投资逻辑

看多逻辑

  1. RAG 进化的必经之路:传统 RAG 的天花板已被广泛感知,GraphRAG 代表了”结构化知识增强 RAG”的重要方向
  2. 微软深度背书:从论文到开源到 Azure 生态,微软投入了实质性资源
  3. 企业知识管理万亿市场:GraphRAG 直击企业最大痛点之一
  4. 开源生态快速膨胀:GitHub 社区活跃度高,生态建设加速

看空/风险逻辑

  1. 索引成本过高:全量预索引的 LLM token 消耗是商业落地的最大障碍,LazyGraphRAG 能否有效解决尚待验证
  2. 长上下文窗口的替代威胁:随着 LLM 上下文窗口不断扩大(128K→1M+ tokens),“把所有文档塞进上下文”可能在某些场景下绕过 RAG 的需要,但窗口扩大不等于模型能有效利用长上下文中的全局信息
  3. 实体抽取质量瓶颈:LLM 抽取的实体/关系质量参差不齐,图质量直接影响下游效果
  4. 增量更新困难:文档变更后可能需要大幅重建索引,生产环境中的维护成本高

常见误读纠偏

误读 1:“GraphRAG 可以替代传统 RAG”

纠偏:GraphRAG 和传统 RAG 不是替代关系,而是互补关系。

  • 传统 RAG 擅长:精确的事实检索(“张三的职位是什么?”)
  • GraphRAG 擅长:全局性综合问题(“这批文档的核心主题和趋势是什么?”)
  • 在实际系统中,Local Search 本身就融合了图结构检索和传统 chunk 检索,两者是结合使用的
  • GraphRAG 的独特价值主要体现在 Global Search 能力上

误读 2:“GraphRAG 就是把知识图谱和 RAG 简单拼接”

纠偏:GraphRAG 的创新不在于”用知识图谱”本身(这个想法早已有之),而在于:

  • 用 LLM 做端到端的实体抽取,无需预定义 schema(传统 KG 构建最痛苦的环节)
  • 用 Leiden 社区检测做自动主题聚类,不需要人工标注
  • 用层级化社区摘要 + map-reduce 做全局查询,这是一个全新的检索范式
  • 图谱构建、社区检测、摘要生成、查询策略是协同设计的整体方案

误读 3:“GraphRAG 的 Global Search 就是遍历所有 chunk 做 RAG”

纠偏:Global Search 并不直接操作原始 chunk,而是操作社区摘要。这是关键区别:

  • 社区摘要是 LLM 对实体/关系子图的预先归纳
  • Map-reduce 是在摘要层面做的,而不是在 chunk 层面
  • 这使得 Global Search 的 token 消耗与 chunk 数量不是线性关系(而是与社区数量相关),但社区数量远小于 chunk 数量

学习路径

入门(1–2 小时)

  1. 阅读微软研究院的 GraphRAG 博客文章(非论文,更易读)
  2. 理解传统 RAG 的局限性,明确 GraphRAG 要解决的问题
  3. 在 GitHub 上浏览 microsoft/graphrag 的 README 和快速入门

进阶(3–5 小时)

  1. 阅读原论文:“From Local to Global: A Graph RAG Approach to Query-Focused Summarization”(Darren Edge et al., 2024)
  2. 用一个小数据集(如几篇新闻文章)跑通 GraphRAG 索引 + 查询的完整流程
  3. 对比同一问题在传统 RAG 和 GraphRAG 上的回答质量

深入(1–2 周)

  1. 研究 Leiden 算法原理,理解社区检测的数学基础
  2. 阅读 LazyGraphRAG 的设计思路,理解成本优化方向
  3. 在企业级数据上做 PoC,评估索引成本、查询质量、增量维护的可行性
  4. 探索 GraphRAG 与其他技术的结合:GraphRAG + Agent、GraphRAG + 多模态等

一句话总结

GraphRAG 通过”LLM 抽取 → 知识图谱 → 社区检测 → 层级摘要 → Map-Reduce 全局查询”的全链路设计,首次系统性地解决了传统 RAG 无法回答全局性、综合性问题的瓶颈,代价是显著更高的索引成本。


延伸阅读与来源

来源说明
原论文Edge et al., “From Local to Global: A Graph RAG Approach to Query-Focused Summarization”, Microsoft Research, 2024
开源仓库github.com/microsoft/graphrag
微软研究院博客搜索 “GraphRAG Microsoft Research blog”
Leiden 算法Traag, Waltman & van Eck, “From Louvain to Leiden: guaranteeing well-connected communities”, Scientific Reports, 2019
LazyGraphRAG微软研究院后续工作,关注索引成本优化
LlamaIndex GraphRAG 文档LlamaIndex 官方文档中的 Graph RAG 集成说明
Neo4j GenAI 生态Neo4j 官方关于 GraphRAG 的技术博客和方案文档

免责声明:本页具体数字来源于公开论文与开源项目的定性认知,未标注精确数字的部分为定性表述。投资相关内容仅供研究参考,不构成任何投资建议。

source: 公开披露与公开资料整理 本页仅用于产业链学习、信息检索和研究辅助;不构成投资建议,不预测涨跌,不提供买卖、仓位或目标价建议。
完整概念页 复盘 13 节结构 公司投研页 沿产业链找到受益公司 投资课 把概念转成可跟踪模型