一句话定义:GraphRAG(Graph Retrieval-Augmented Generation,知识图谱增强检索)是在常规 RAG 前面加一道工序——先把文档里的实体和关系抽出来连成一张图,回答问题时沿着图去取"一小片知识网络",而不是只按相似度捞几段原文。
普通 RAG 卡在哪儿
常规 RAG(Retrieval-Augmented Generation,检索增强生成)的流程大家都熟:切块(chunk)→ 向量化 → 按相似度取 top-k → 塞进上下文让模型作答。它对"某条款怎么写的""这个函数在哪定义"这类局部问题很好用。
但它有个盲区:问题本身不长得像任何一块文本。比如你问"这两百份访谈里,客户抱怨的共同点是什么",没有任何单独一段能和这句话高度相似,向量检索捞回来的只是几段碰巧用词接近的文本,模型拿这几段硬总结,漏掉多少你并不知道。
它多做了一步什么
GraphRAG 把整个流程拆成两段:
1. 索引期:用模型逐块抽取实体和关系(谁和谁有往来、什么属于什么),连成图;再在图结构上做社区检测(community detection),把关系紧密的节点聚成簇,并给每个簇预先写一段摘要。
2. 查询期:问局部细节,就取某个实体的邻域,拿它的关系和相关原文;问全局归纳,就并行读取各簇摘要,最后汇总成答案。
打个比方:普通 RAG 像是图书馆里按关键词找几页复印给你;GraphRAG 是先把全馆的书过一遍,画出人物关系网、给每个圈子写好梗概,再来回答"这批书整体在讲什么"。
和普通 RAG 的差别
| 维度 | 普通 RAG | GraphRAG |
|---|---|---|
| 索引对象 | 文本块向量 | 实体、关系、社区摘要 |
| 检索方式 | 向量相似度 top-k | 图遍历 + 摘要汇总 |
| 擅长 | 局部事实、条款、数字 | 跨文档、全局归纳、多跳关系 |
| 索引成本 | 低,一次嵌入 | 高,大量模型抽取与摘要 |
| 更新维护 | 增删文本块即可 | 改图,社区摘要可能要重建 |
| 可解释性 | 给出原文片段 | 还能给出关系路径 |
贵在哪,什么时候别上
成本主要压在索引期:每一块都要过一次模型做抽取,还要为每个社区写摘要,token 消耗比普通 RAG 高一个量级是常见的(具体用量因实现而异)。查询期走全局模式时也要多轮汇总,延迟更高。
所以这些情况不值得上:文档量不大;问题基本都是查具体条款、具体数值;内容天天在变,索引刚建好就过期;对延迟和预算敏感;文档之间本来就没关系,比如一堆互不相干的客服 FAQ。这些场景普通 RAG 通常够用。
判断标准就一句话:你的问题需不需要跨多份文档做全局归纳? 需要,才考虑建图;不需要,别为了架构好看给自己加维护负担。也可以混着用——局部问题走向量检索,全局问题走图。
具体产品的实现方式与能力边界,以官方页面为准。
