在前两篇文章中我们解决了 RAG 的“碎片化”痛点通过“实体对齐”清洗了数据并利用 Leiden 算法完成了图谱的“社区检测”。现在你的知识图谱已经具备了清晰的拓扑结构。但面对一个宏观问题例如“这份 500 页的行业报告主要讲了哪几个核心趋势”仅仅有结构是不够的。我们需要让 LLM 能够“读懂”这些结构。这就是GraphRAG 索引阶段的核心魔法利用 LLM 为每个社区生成摘要并层层向上汇总。1. 为什么需要“层级化摘要”传统的 RAG 是扁平的。当你问一个宏观问题时系统只能随机抓取一些切片或者检索排名靠前的几个片段。这就像是你问向导“这个城市怎么样”他却只给你背了一段关于“某条街道垃圾桶位置”的描述。而在 GraphRAG 中我们通过社区检测建立了一个树状结构Tree Structure叶子节点Level 0最小的社区包含具体的实体和关系如具体的某几款芯片型号及其参数。中间节点Level 1-N由下层社区合并而成的大社区如整个“半导体制造”板块。根节点Root整个图谱的全局摘要。这种结构让 AI 拥有了类似人类专家的“归纳能力”。2. 核心流程自下而上的信息压缩这个过程完全由 Prompt 驱动是一个自动化的流水线生成底层描述首先LLM 会遍历每一个最小的社区Leaf Community。它会读取该社区内所有的实体Entities、关系Relationships以及原始的文本块Text Units。Prompt 示例思路“你是一个分析专家。请根据以下实体列表、关系列表和源文本为该社区生成一段详尽的摘要。摘要应包含该社区涉及的主要主题、关键实体及其相互作用。”层级聚合一旦所有 Level 0 的社区都有了摘要算法就会将这些摘要作为输入传递给上一层级的父社区。Prompt 示例思路“以下是属于‘人工智能硬件’这一大类下的几个子领域的摘要。请综合这些信息为‘人工智能硬件’这一更高层级的概念生成一份更宏观的报告。”循环直至根节点这个过程不断重复直到生成整个图谱的根节点摘要。最终你得到了一棵内容丰富的知识树。3. 查询时的“全局搜索”模式有了这棵树当用户发起查询时GraphRAG 就可以启用**全局搜索Global Search**模式传统 RAG检索 - 找到 Top-K 个切片 - 扔给 LLM 回答。GraphRAG 全局搜索并行查询多个层级的社区摘要。筛选出与问题最相关的几个“分支”比如用户问“风险”系统可能定位到“供应链风险”和“合规风险”这两个分支的摘要。将这些高度浓缩的摘要作为上下文喂给 LLM。效果对比如果问“报告中提到了哪些关于‘特斯拉’的关键信息”普通 RAG可能会漏掉分散在第 100 页和第 300 页的信息。GraphRAG会直接调取包含“特斯拉”实体的那个社区的摘要甚至调取上一层级“新能源汽车市场”的摘要从而给出一个既包含细节又有行业背景的完美回答。4. 避坑指南Token 消耗与成本控制虽然这套机制非常强大但它也是“吞金兽”。索引成本高你需要为成百上千个社区调用 LLM 进行摘要生成。优化策略过滤噪声在生成摘要前先通过算法过滤掉度数Degree太低的孤立节点不要为它们浪费 Token。并发处理同一层级的社区互不依赖完全可以多线程/多进程并发调用 API。模型分级底层细节摘要可以用稍弱的模型如 GPT-4o-mini顶层宏观摘要再用最强模型如 GPT-4o以平衡成本与质量。5. 总结通过引入社区检测和层级化摘要我们实际上是在用计算换智能。我们把非结构化文档变成了结构化的“知识地图”。至此我们已经完成了 GraphRAG 最核心的**索引Indexing**部分。但在实际工程中如何存储这些复杂的图结构和摘要如何进行高效的混合检索下一篇我们将进入工程落地环节《GraphRAG 存储与检索架构Neo4j 与向量数据库的混合双打》带你打通 GraphRAG 的最后一公里。
《GraphRAG 核心实战:从 Leiden 算法到层级化摘要,构建 AI 的“上帝视角”》
发布时间:2026/7/16 8:57:42
在前两篇文章中我们解决了 RAG 的“碎片化”痛点通过“实体对齐”清洗了数据并利用 Leiden 算法完成了图谱的“社区检测”。现在你的知识图谱已经具备了清晰的拓扑结构。但面对一个宏观问题例如“这份 500 页的行业报告主要讲了哪几个核心趋势”仅仅有结构是不够的。我们需要让 LLM 能够“读懂”这些结构。这就是GraphRAG 索引阶段的核心魔法利用 LLM 为每个社区生成摘要并层层向上汇总。1. 为什么需要“层级化摘要”传统的 RAG 是扁平的。当你问一个宏观问题时系统只能随机抓取一些切片或者检索排名靠前的几个片段。这就像是你问向导“这个城市怎么样”他却只给你背了一段关于“某条街道垃圾桶位置”的描述。而在 GraphRAG 中我们通过社区检测建立了一个树状结构Tree Structure叶子节点Level 0最小的社区包含具体的实体和关系如具体的某几款芯片型号及其参数。中间节点Level 1-N由下层社区合并而成的大社区如整个“半导体制造”板块。根节点Root整个图谱的全局摘要。这种结构让 AI 拥有了类似人类专家的“归纳能力”。2. 核心流程自下而上的信息压缩这个过程完全由 Prompt 驱动是一个自动化的流水线生成底层描述首先LLM 会遍历每一个最小的社区Leaf Community。它会读取该社区内所有的实体Entities、关系Relationships以及原始的文本块Text Units。Prompt 示例思路“你是一个分析专家。请根据以下实体列表、关系列表和源文本为该社区生成一段详尽的摘要。摘要应包含该社区涉及的主要主题、关键实体及其相互作用。”层级聚合一旦所有 Level 0 的社区都有了摘要算法就会将这些摘要作为输入传递给上一层级的父社区。Prompt 示例思路“以下是属于‘人工智能硬件’这一大类下的几个子领域的摘要。请综合这些信息为‘人工智能硬件’这一更高层级的概念生成一份更宏观的报告。”循环直至根节点这个过程不断重复直到生成整个图谱的根节点摘要。最终你得到了一棵内容丰富的知识树。3. 查询时的“全局搜索”模式有了这棵树当用户发起查询时GraphRAG 就可以启用**全局搜索Global Search**模式传统 RAG检索 - 找到 Top-K 个切片 - 扔给 LLM 回答。GraphRAG 全局搜索并行查询多个层级的社区摘要。筛选出与问题最相关的几个“分支”比如用户问“风险”系统可能定位到“供应链风险”和“合规风险”这两个分支的摘要。将这些高度浓缩的摘要作为上下文喂给 LLM。效果对比如果问“报告中提到了哪些关于‘特斯拉’的关键信息”普通 RAG可能会漏掉分散在第 100 页和第 300 页的信息。GraphRAG会直接调取包含“特斯拉”实体的那个社区的摘要甚至调取上一层级“新能源汽车市场”的摘要从而给出一个既包含细节又有行业背景的完美回答。4. 避坑指南Token 消耗与成本控制虽然这套机制非常强大但它也是“吞金兽”。索引成本高你需要为成百上千个社区调用 LLM 进行摘要生成。优化策略过滤噪声在生成摘要前先通过算法过滤掉度数Degree太低的孤立节点不要为它们浪费 Token。并发处理同一层级的社区互不依赖完全可以多线程/多进程并发调用 API。模型分级底层细节摘要可以用稍弱的模型如 GPT-4o-mini顶层宏观摘要再用最强模型如 GPT-4o以平衡成本与质量。5. 总结通过引入社区检测和层级化摘要我们实际上是在用计算换智能。我们把非结构化文档变成了结构化的“知识地图”。至此我们已经完成了 GraphRAG 最核心的**索引Indexing**部分。但在实际工程中如何存储这些复杂的图结构和摘要如何进行高效的混合检索下一篇我们将进入工程落地环节《GraphRAG 存储与检索架构Neo4j 与向量数据库的混合双打》带你打通 GraphRAG 的最后一公里。