前面章节介绍的 RAG 系统,大多基于向量相似度进行检索。这种方案在处理“这段文本在语义上与问题是否相关”时表现优异,但它有一个盲区:不擅长理解和利用实体之间的关系。Graph RAG 正是在这个背景下被提出,它将知识图谱的结构化表达与向量检索的语义匹配结合起来,让系统既能理解语义,又能把握关系脉络。
1. 为什么纯向量检索不够用
向量检索本质上是“匹配相似的文本块”。对于事实型、定义型的问题,这通常够用,比如“公司年假政策是什么?”。但遇到需要多步推理或关系聚焦的问题时,纯向量检索就容易力不从心:
- 跳转关系缺失:问题问“技术总监张三的直接下属有哪些人?”,相关文档中可能分布着“张三管理研发部”“研发部成员包括李四、王五”等零散描述。向量检索可能会召回包含“张三”或“下属”的片段,但无法自动串联出“张三→研发部→李四、王五”的完整链路。
- 结构化局限:知识分散在多个文档中,缺乏全局结构视野,面对聚合性问题(如“列出所有向张三汇报且职级在 P7 以上的人”)时,单独靠文本相似度几乎不可能准确回答。
- 精准度不足:当问及具体实体时,向量检索可能返回一团语义相关但并非精确匹配的内容,导致回答模糊。
这些问题根源于知识本身的表示方式:纯文本片段缺乏显式的实体和关系标注,检索器无法进行逻辑推理。
2. Graph RAG 的基本思路
Graph RAG 引入知识图谱作为第二知识来源。知识图谱用节点(实体)和边(关系)来组织信息,比如 张三 --[管理]--> 研发部,研发部 --[包含]--> 李四。这种结构让计算机能够直观地“遍历”关系,完成多步推理。
一个典型的 Graph RAG 工作流程如下:
- 知识抽取与建图
提前从文档中识别出实体(人名、部门、日期、条款等)以及它们之间的关系,构建一个有结构的知识图谱,并存入图数据库。这一步可以结合实体识别模型和关系抽取规则。
- 问题解析
用户提问后,系统不仅将问题向量化进行语义检索,还会解析出问题中的实体和关系意图。例如对于“张三的下属”,解析出的实体是“张三”,关系意图是“管理”或“下属”。
- 双路检索
- 向量检索:按相似度召回相关文本片段,负责回答需要上下文描述的问题(如政策解释、操作指南)。
- 图谱查询:在图数据库中,从“张三”节点出发,沿着“管理”边找到直接下属,甚至进一步过滤职级条件。这一步直接返回结构化的实体列表。
- 结果融合与生成
将两路检索结果合并,填充到提示词中提交给大模型。大模型基于结构化数据(下属清单)和文本片段(如组织架构说明)生成最终回答,既能精确列出名单,又能附上相关的上下文解释。
3. 互补关系如何落地
向量检索和图谱查询并非谁替代谁,而是在不同维度上互为补充:
- 向量检索擅长“软匹配”:用户用自然语言提问,语义相近的文本即使用词不同也能被找到。图谱则要求精确的实体和关系匹配,无法处理模糊表达。Graph RAG 保留向量检索,确保宽泛性问题的覆盖。
- 图谱擅长“硬推理”:当问题天然就是关于实体间关系时(层级、归属、流程),图谱直接用图遍历算出答案,比向量检索加上大模型推理要可靠得多,也快得多。
- 联合提升准确性:在生成最终答案时,可以要求模型先用图谱结果锚定事实(如“直接下属有3人:李四、王五、赵六”),再参考文本片段补充说明(如“根据《组织架构管理办法》第2条,部门经理拥有人事任免权”)。这样既有数据精确性,又有语义丰富度。
一个真实例子:某互联网公司用 Graph RAG 构建 HR 助手。知识图谱存储了完整的汇报线、部门归属、职级等关系,向量库存储了制度文档、员工手册。
- 问“P8 及以上、向张三分管领域汇报的员工有哪些?”
图查询从张三节点出发,找到属于他分管业务线的所有员工,再按职级过滤,得到精确列表。
向量检索找到“职级体系的定义”“张三分管业务调整通知”,辅助生成解释。
最终回答:“目前有 5 人:李四、王五……。其中李四于 2024 年 6 月晋升 P8,详见《晋升公告 202406》。”
- 问“员工离职补偿的法律依据是什么?”
这纯粹是文本描述型问题,图谱中可能没有相关结构。向量检索直接召回《离职管理办法》相关片段,由模型整理回答,图谱不必参与。
4. 适用场景与代价
Graph RAG 效果突出,但需要额外工程投入。适合:
- 组织架构、产品零部件清单、故障码层次关系等强实体关系领域。
- 需要频繁多跳推理的问答(如“某个组件用在了哪些产品上,这些产品的负责人是谁”)。
- 对事实精确度要求极高,不允许模糊匹配的场景。
实施中需要注意:
- 图谱构建的质量:实体识别和关系抽取的准确性直接决定回答可靠性,通常需要业务专家校验。
- 维护同步:知识库文档更新时,图谱也需要相应更新,否则会出现“文本已改、图谱未动”的矛盾。
- 不是万能:如果问题本身不涉及关系推理,纯向量 RAG 就够用,盲目引入图谱只会增加复杂度。
Graph RAG 的本质思想是让 AI 系统兼具“语义理解”和“逻辑推理”两种能力。向量检索负责关联泛化,知识图谱负责关系精确,两者互补,让 RAG 从“看懂文本”迈向“理解世界关联”,在复杂知识密集的场景中释放出更大的价值。