考察点
这道题考的是你理解「向量检索的结构性短板」有多深。普通 RAG 检索的是语义相似的片段,而多跳问题需要的不是相似性,是实体之间的关系链。面试官想听到:GraphRAG 怎么把文档变成图、查询时怎么用图、为什么微软那套社区摘要方案能回答全局性问题,以及它的成本代价是什么。追问常往「图谱怎么构建」「什么场景不值得上 GraphRAG」「和 Text2SQL 的边界」走。
参考答案
向量 RAG 的结构性短板
普通 RAG 的前提是:答案藏在某一个或几个语义相似的 chunk 里。这个前提对两类问题失效:
- 多跳推理:「A 公司的创始人之前创立的那家公司,被谁收购了?」答案分散在三个文档里,每一跳单独的 query 都和原文语义不相似——你都不知道中间实体是谁,query 里根本没有它的词。向量检索对这种链条式问题天然不行;
- 全局性问题:「这批财报里反映了哪些共同的经营风险?」这不是找某个片段,而是要对整个语料做聚合归纳。top-k 检索无论 k 取多大,都只能捞到一个局部。
根本原因是:向量索引保留的是「文本片段的语义」,丢掉了「实体与实体之间的关系」。
GraphRAG 的基本思路
GraphRAG 在入库阶段多走一步:用 LLM 从文本里抽实体和关系,构建知识图谱,检索时沿图结构找信息。以微软开源的 GraphRAG 为例,完整流程分两块:
索引构建阶段:
- 文档切 chunk,对每个 chunk 用 LLM 抽实体(人、公司、概念)和关系(任职、收购、属于),这一步是整个流程最贵的地方,token 消耗大概是普通入库的数倍;
- 实体消歧与对齐:「马斯克」「Elon Musk」「马总」合并成同一个节点,通常靠 LLM 判断加 embedding 相似度辅助;
- 图聚类:用 Leiden 算法在图上做社区检测,把关系紧密的实体聚成一个个社区,层层递归形成层级结构;
- 社区摘要:对每个社区用 LLM 预生成摘要——「这个社区讲的是 XX 公司及其供应链关系」,摘要是提前算好的。
查询阶段分两种模式:
- Local Search:针对具体实体的问题。从 query 里识别实体 → 定位图中的节点 → 拉出邻居节点、相关关系、关联原文 chunk → 混合排序后生成。多跳在这里变成了图上的路径遍历,链条断了也能发现;
- Global Search:针对全局性问题。不检索 chunk,而是让各层社区摘要做 map-reduce:每个社区摘要先对问题局部作答,再汇总成最终答案。这相当于查询时读的是整个语料的「预消化提纲」。
和普通 RAG 的根本区别
一句话概括:普通 RAG 索引的是「文本」,GraphRAG 索引的是「文本里抽出来的结构」。这带来三个差异:
- 检索单元不同:chunk vs 实体/关系/社区。多跳问题在图上是显式路径,不需要靠 query 语义碰运气;
- 预计算换查询能力:GraphRAG 把大量 LLM 计算挪到了离线索引阶段(抽取、消歧、摘要),换来查询时能回答普通 RAG 原理上无法回答的问题;
- 可解释性更好:答案可以附上推理路径(A→任职于→B→收购了→C),溯源比「这几个 chunk 语义相似」清晰得多。
工程代价与适用边界
GraphRAG 不是免费的午餐,代价很实在:索引构建成本比普通 RAG 高一个数量级(每个 chunk 多次 LLM 调用);文档更新时图谱要增量维护,实体合并可能引发连锁更新;构建质量强依赖抽取 prompt 的调教,抽错了关系后面全错。
适用边界也清楚:
- 值得上:多跳问题占比高、需要全局归纳(调研报告、舆情分析、尽职调查)、实体关系密集的领域(法律案件、医药、金融);
- 不值得上:FAQ 型知识库、答案就在单段文本里的场景——向量加 rerank 又快又便宜,GraphRAG 纯属过度设计。
实践中常见的折中是混合架构:普通向量检索为主干,检测到多跳/全局特征的问题再路由到图谱通道;或者用 LightRAG 这类轻量方案,只保留实体关系检索,砍掉社区层级摘要,成本可控很多。
可能的追问
- 图谱构建时实体消歧怎么做?——先按名称归一化和 embedding 相似度粗聚类,再用 LLM 结合上下文判断是不是同一实体;领域词表/别名表能大幅降低难度。消歧是整个流程里最容易出错的环节。
- 文档更新一篇,图谱要全量重建吗?——不用,新增实体和关系做增量 merge,但要注意新实体可能和已有实体是同一对象,触发合并后其所在社区摘要需要重算;这也是 GraphRAG 运维复杂的主要来源。
- GraphRAG 和 Text2SQL 怎么分工?——问题答案在结构化表里(精确数值、聚合统计)走 Text2SQL;答案在非结构化文本的关系网络里(谁和谁什么关系、事件脉络)走 GraphRAG。两者经常共存于一个系统,前面加路由。
- 怎么评估 GraphRAG 比向量 RAG 真的更好?——分 query 类型评测:事实型单跳问题两者应该打平(打不平说明图谱通道拖后腿了);多跳和全局型问题是 GraphRAG 的主场,用人工标注的多跳问题集对比答案正确率和推理路径完整性。