标准回答
一、先给结论:向量 RAG 找相似段落,GraphRAG 找关系链
向量 RAG 主要是在找“相似文本片段”,GraphRAG 是先把资料里的实体和关系组织成一张图,再沿着关系去找答案。
二、用例子说明差异
比如用户问“某家公司为什么会受某项政策影响”,答案可能散在多篇文章里:公司、产品、政策、供应商之间有关系。向量 RAG 可能只召回几段语义相似的文字,但不一定能把关系串起来。GraphRAG 会先抽取实体和边,比如“公司 A 使用技术 B”“政策 C 限制技术 B”“供应商 D 受政策 C 影响”,然后顺着图做多跳检索。
三、说清适用场景
它适合两类问题:第一类是多跳关系问题,比如 A 和 C 没直接出现在同一段文本里,但中间通过 B 连起来。第二类是全局总结问题,比如“这批文档里主要有哪些主题和阵营”,这时社区摘要会比单纯 Top-K 片段更稳。
四、别忘了讲代价和选型
但我不会说 GraphRAG 一定更好。如果问题答案就在某一两段文档里,向量 RAG 更便宜、更快、更好维护。 GraphRAG 的代价是建图很贵,实体抽取和关系抽取会出错,数据更新后还要维护图结构。
所以我在项目里会倾向于混合方案:默认用向量 RAG 解决局部事实召回,遇到关系密集或全局问题时,再用 GraphRAG 补多跳和结构化视角。
常见误区
⚠️ 常见踩坑
误区一:把 GraphRAG 说成向量 RAG 的全面升级。 更好的说法是:GraphRAG 是为多跳关系和全局总结付出额外成本。误区二:不看问题类型就上图。 简单事实问答仍然优先用向量 RAG。
追问
追问 1:GraphRAG 的实体关系抽取出错会怎样?如何缓解?
可以说风险很大,因为图里的错误会被后续遍历放大。比如把两个同名公司合并错了,答案就会串线。缓解上,一是抽取时加 schema 和约束,二是做实体消歧和置信度过滤,三是重要领域加人工抽检,四是最终答案保留原文引用,方便用户核验。
追问 2:什么是社区摘要(community summary),有什么用?
可以理解成先把关系图分成几个主题团块,再给每个团块写摘要。这样用户问“整个知识库有哪些主要主题”时,不用从海量 chunk 里硬凑 Top-K,而是直接看相关社区的摘要,更适合全局问题。
追问 3:GraphRAG 与向量 RAG 如何混合使用?
可以按问题类型路由:普通事实问答走向量检索,快且便宜;关系型、多跳型问题走图检索,补实体关系和上下文。也可以两路都跑,结果合并后 rerank,再交给 LLM 生成答案。
🔗 相似问题
同一考点的不同问法,换着练更稳
延伸学习
按主题分类的相关资源,便于系统复习
