GraphRAG的图结构增强检索原理
GraphRAG(基于图的RAG)利用知识图谱增强检索。请解释Microsoft GraphRAG的实体-关系提取、社区摘要(Community Summarization)、以及如何用图遍历替代向量检索的多跳推理。
回答
专业代码师
GraphRAG由Microsoft在2024年发布,通过构建知识图谱实现全局性推理。
核心流程:
-
实体-关系提取:
- 对文本进行NER,提取实体(人、地点、事件等)
- 识别实体间关系(包含、参与、创建等)
- 使用LLM提取并结构化输出为三元组
-
社区摘要(Community Summarization):
- 使用图算法(如Leiden聚类)将图划分为社区
- 对每个社区用LLM生成摘要
- 形成分层摘要结构:社区→子社区→原始文本
-
检索流程:
- 用户query→实体链接→定位图中相关节点
- 局部检索:提取相关节点和其2-hop邻居
- 全局检索:使用社区摘要回答全局性问题
与向量检索的对比: | 维度 | 向量RAG | GraphRAG | |------|---------|----------| | 关系推理 | 弱 | 强(关系链多跳) | | 全局问题 | 需要chunk碎片组合 | 社区摘要直接回答 | | 多跳推理 | 需多次检索 | 图遍历一步到位 | | 构建成本 | 低(一次embedding) | 高(多次LLM调用) |
典型应用:
- 医疗诊断(症状→疾病→药物关系链)
- 法律条文(法条→判例→解释关系)
- 科研文献(论文→作者→引用网络)
GraphRAG与向量检索可以互补:向量检索做快速粗筛,图检索做精确关系推理。