传统 RAG 的工作方式是把文档切成片段,根据问题检索最相关的几段。这对“报销流程是什么”这类局部问题很有效,但面对“这一百份访谈记录中,客户最常抱怨的问题有哪些”或“A 公司和 B 公司之间通过哪些人和项目产生了关联”这类问题时,就显得力不从心。GraphRAG 的思路是先从文档中抽取实体和关系,构建知识图谱,再基于图结构进行检索和推理,以弥补纯片段检索的不足。

传统 RAG 的两个短板

全局性问题

需要概括整个文档集合的问题,答案并不存在于任何单个片段中。检索几个片段只能看到局部,无法形成全局视角。

多跳关系问题

答案需要串联多个事实才能得出,比如“张三参与的项目中,哪些使用了某供应商的产品”。相关信息分散在不同文档里,单次向量检索很难同时把它们都找到。

GraphRAG 的基本流程

  1. 实体与关系抽取:用大模型阅读文档,识别其中的人物、组织、产品、事件等实体,以及它们之间的关系,例如“某人—负责—某项目”;
  2. 构建图谱:把抽取结果合并成一张图,实体是节点,关系是边,同时保留每条信息的原文出处;
  3. 社区发现与摘要:一些方案会用图算法把紧密关联的节点划分为“社区”,并为每个社区生成摘要,用于回答全局性问题;
  4. 查询时检索:根据问题定位相关实体,沿着关系边扩展邻居节点,或检索相关社区摘要,再把这些结构化信息与原文片段一起交给大模型生成答案。

与传统 RAG 的比较

  • 局部事实问题:传统 RAG 通常已经足够,GraphRAG 优势不明显;
  • 关系与多跳问题:GraphRAG 可以沿着图结构找到间接关联的信息;
  • 全局总结问题:基于社区摘要的方法能给出更完整的概览;
  • 构建成本:GraphRAG 需要用大模型处理全部文档进行抽取,成本和时间显著高于计算向量;
  • 更新维护:文档变更后,图谱需要增量更新,实体合并和冲突处理较为复杂。

适用场景

  • 调研与情报分析:从大量报告、新闻中梳理人物、机构和事件之间的关系;
  • 金融与风控:分析企业股权关系、关联交易和担保链条,参见大模型在金融行业的应用;
  • 法律与合规:梳理案件中当事人、证据和法律条款之间的关联;
  • 企业知识管理:理解组织架构、项目、系统之间的依赖关系;
  • 用户研究:从大量访谈或反馈中提炼主题和模式。

落地时的注意事项

抽取质量决定上限

实体识别不准、同一实体被识别为多个节点(例如公司全称与简称),都会导致图谱碎片化。需要设计实体规范化和去重流程,并对关键领域预先定义实体类型和关系类型。

控制成本

可以只对高价值文档构建图谱,或先用传统 RAG 满足大部分需求,再针对关系类问题引入图检索。

不一定需要“从零建图”

如果企业已经有结构化的数据,例如客户关系、组织架构、产品目录,直接利用这些现成的关系往往比从文本中抽取更可靠。

保留出处

图谱中的每条关系都应能追溯到原文,避免抽取错误被当作事实传播。

小结

GraphRAG 不是传统 RAG 的替代品,而是针对全局总结和多跳关系问题的补充方案。它的构建和维护成本较高,适合关系密集、需要深度分析的场景。建议先用传统 RAG 加混合检索和重排序打好基础,再根据实际问题类型决定是否引入图谱。