GraphRAG 的工作原理

发布: (2026年1月3日 GMT+8 12:51)
3 分钟阅读
原文: Dev.to

Source: Dev.to

索引阶段(离线,成本高但只执行一次)

  • 文本分块 – 将输入文本拆分为可管理的块。
  • 实体抽取 – 使用 LLM 从每个块中识别实体(人物、地点、组织、概念)及其关系。
  • 构建知识图谱 – 创建一个图,其中节点是实体,边是带有描述的关系。
  • 社区检测 – 应用图算法(例如 Leiden 算法)来识别紧密相关实体的簇(社区)。
  • 层次化摘要 – 为每个社区生成多层级摘要(自下而上的层次结构:详细的低层社区 → 更高层的聚合摘要)。

结果是一个结构化索引:图 加上 预生成的社区摘要。这捕捉了整个数据集中的隐式连接,而仅靠向量嵌入无法实现。

查询阶段

  • 本地查询(具体细节) – 检索与提及实体相邻的相关子图或文本块。
  • 全局查询(宏观理解) –
    1. 选择与查询相似度较高的社区摘要。
    2. 使用 LLM 从每个摘要生成部分答案。
    3. 将这些部分答案聚合并摘要为最终连贯的响应。

这种在社区层面上的“映射‑归约”方式实现了整体推理。

为什么它比标准 RAG 更好

  • 全面性 – 捕获更广的主题和关联,提供更完整的答案。
  • 多样性 – 减少重复,呈现多元视角。
  • 赋能 – 为复杂数据集(例如相互冲突的新闻来源)提供有依据、基于证据的洞见。

原论文中的实验(数据集约 1 百万 token)显示,GraphRAG 在全面性和多样性等指标上,对全局问题的表现比基线 RAG 高出 70–80 %

实践细节

  • 开源实现microsoft/graphrag on GitHub
  • 成本 – 索引阶段需要大量 LLM 调用(用于抽取和摘要),但查询阶段效率高。
  • 后续改进 – 如 LazyGraphRAG(更省成本)、DRIFT 搜索、动态社区选择以及针对新领域的自动调优等变体。

总结

GraphRAG 通过利用图结构进行“全局感知”,在让 LLM 对大型、私有、叙事丰富的数据集进行推理方面实现了重大突破。当标准 RAG 产生不完整或表面化答案时,GraphRAG 尤其有价值。

Back to Blog

相关文章

阅读更多 »

RGB LED 支线任务 💡

markdown !Jennifer Davishttps://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%...

Mendex:我为何构建

介绍 大家好。今天我想分享一下我是谁、我在构建什么以及为什么。 早期职业生涯与倦怠 我在 17 年前开始我的 developer 生涯……