简介:本文系统介绍GraphRAG(基于知识图谱的检索增强生成)技术的核心定义、工作原理与性能优势,帮助开发者理解其与传统向量检索方案的差异,掌握知识图谱构建、社区检测、全局与局部检索等关键机制,并明确适用场景、部署注意事项与选型建议,为构建高解释性、强推理能力的知识问答系统提供技术参考。
GraphRAG(Graph-based Retrieval-Augmented Generation)是一种将知识图谱与大语言模型相结合的检索增强生成技术。它的核心思想是:在传统“向量检索+文本生成”的RAG(检索增强生成)架构基础上,引入知识图谱作为中间表示层,先利用大模型从非结构化文本中自动提取实体、关系与事件,构建结构化的领域知识图谱;再基于该图谱完成检索与推理,最终生成具备可解释性和全局语义理解能力的回答。
从技术视角看,GraphRAG解决的是传统RAG的两大痛点:一是碎片化检索导致的“只见树木不见森林”,二是缺乏多跳推理能力导致的“答非所问”。从业务视角看,GraphRAG适用于需要跨文档聚合、因果链条分析、关系网络挖掘的复杂知识问答场景,如企业知识库、研报分析、医疗文献综述、法律条文关联等。
传统RAG的基本流程是:将文档切分为文本块,通过嵌入模型向量化,建立向量索引;用户提问时,将问题向量化后与库中向量做相似度检索,取Top-K相关文本块拼接上下文,交给大模型生成答案。
然而,这种方式存在三个结构性缺陷:
GraphRAG的价值在于:它把非结构化文本转化为结构化的图数据,将“检索”从“找相似文本”升级为“遍历关联路径+聚合局部子图”。这种结构化表示天然支持全局视角:你可以统计整个语料中某类实体的分布,可以沿着关系边进行多跳推理,也可以对某一实体聚合其所有上下文。更重要的是,知识图谱提供了可解释的证据链——每个答案都能回溯到具体的实体关系路径,这对企业级应用尤其关键。
GraphRAG的工作流程可分为两大阶段、六个关键步骤,分别对应离线构建与在线检索。
与常规RAG类似,GraphRAG首先将长文档切分为较小文本单元。分块粒度直接影响后续实体提取的召回率与关系覆盖度。块过大则实体重叠严重、关系密度高但提取准确率下降;块过小则跨块关系难以捕捉。实践中通常以token数控制块大小,并允许块间适当重叠以保证边界语义的连贯性。
分块是知识图谱构建的基础单元,后续提取的实体与关系都会关联到来源文本块,既用于溯源,也用于检索阶段的上下文拼接。
这是GraphRAG的核心环节。系统向大模型发送结构化提示词,要求其从每个文本块中识别指定类型的实体,并提取实体之间的关系。每次提取输出为结构化数据,典型格式如下:
该步骤的关键在于提示词设计:需要明确实体类型白名单、关系抽取范围(是仅实体间的直接关系还是包含事件间的因果关联)、以及输出格式规范(保证可解析)。大模型在每一步提取中还会利用文本块的全局上下文,保证实体描述的一致性。
提取出的原始图谱往往存在实体指代不统一(如“微软”与“Microsoft”)、关系描述冗余、孤立节点过多等问题。图谱增强步骤负责:
这一步骤减少了图谱的噪声,提升了后续分析的质量,是保证图谱可用性的关键工程环节。
这是GraphRAG区别于普通知识图谱问答的独特机制。系统利用社区发现算法(如Leiden算法)将图谱划分为若干连通紧密的子图,每个子图视为一个“社区”。随后,系统要求大模型为每个社区生成一段自然语言摘要,概括该社区包含的实体、关系、主题与关键叙述。
社区摘要的价值在于:它把图结构转化为可被直接检索的“分层文本索引”。当用户提出全局性问题(如“本语料中主要讨论了哪些主题?”)时,系统可以遍历所有社区的摘要,而无需遍历每一个实体,从而将图规模的问题转化为文本段落摘要的聚合问题,大幅降低了大模型推理的上下文长度需求。
该步骤将文本块与图谱节点建立双向索引:每个文本块关联其贡献的实体集合;每个实体关联其出现过的文本块及位置。同时,保留实体所属社区ID、社区摘要文本等元信息,构建起从“文本块→实体→社区→全局”的多级检索入口。
为便于开发者调试与分析,系统提供可视化界面展示图谱结构,包括实体分布、关系密度、社区划分等。虽然不直接影响检索性能,但它是工程落地中理解数据质量、排查错误的重要辅助工具。
GraphRAG的在线问答阶段分为两种检索模式:
局部检索(Local Query):用户问题先经大模型识别为若干种子实体,然后在图谱中定位这些实体,提取其邻域子图(一跳或两跳内的实体与关系),再将子图涉及的文本块、实体描述、关系描述拼接为上下文,交给大模型生成答案。该模式适用于“实体级”问题,如“A公司的CEO是谁?”,检索粒度细、证据链清晰。
全局检索(Global Query):适用于“汇总级”问题,如“本语料中提到了哪些主要风险?”。系统将用户问题与所有社区摘要进行匹配,选择最相关的若干社区摘要与问题拼接,引导大模型基于摘要信息进行归纳、对比与综合。该模式相当于“先看目录、再选章节”,利用社区摘要实现了跨文档的语义聚合,避免了对全量图谱的遍历。
两种模式的结合,使得GraphRAG既能精确回答局部关系问题,又能回答需要全局视野的统计与归纳类问题,弥补了传统RAG的短板。
| 维度 | 传统RAG | 知识图谱问答(KGQA) | GraphRAG |
|---|---|---|---|
| 数据表示 | 非结构化文本块 | 人工构建的图谱 | 自动构建的图谱+文本块 |
| 检索方式 | 向量相似度 | 结构化查询 | 子图遍历+社区摘要匹配 |
| 全局问答能力 | 弱 | 依赖查询设计 | 强(社区摘要机制) |
| 构建成本 | 低 | 高(人工标注) | 中(大模型自动化) |
| 可解释性 | 弱 | 强 | 强 |
GraphRAG的核心创新在于“自动化建图+社区摘要”,既保留了知识图谱的可解释性和推理能力,又通过大模型消除了人工构建图谱的瓶颈,同时解决了全局问答的规模化问题。
GraphRAG代表了一种将结构化的关系语义与生成模型的自然语言理解能力相融合的技术路径。它通过大模型自动构建知识图谱,再以社区摘要与图遍历实现局部精准定位与全局宏观归纳,显著提升了检索增强生成在复杂知识问答中的表现。对开发者而言,理解其分块、提取、增强、社区检测、双路检索的工作机制,有助于在合适的场景下做出正确的技术选型——当答案依赖于“关系、链条、全貌”时,GraphRAG是值得考虑的技术方案。