graphrag
微软开源的图增强RAG系统,让AI通过知识图谱理解文档间的深层关系
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
微软开源的图增强RAG系统,让AI通过知识图谱理解文档间的深层关系
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:企业积累了数万份内部文档,涵盖技术报告、会议纪要、行业分析,员工提问时传统 RAG 只能逐篇检索相关片段,AI 的回答往往是零散信息的拼贴。而 GraphRAG 出现后,AI 能够理解文档之间的深层关联,回答「这季度产品的技术演进路径」这类需要全局推理的问题——这就是图增强检索的魅力。
2024年4月,微软研究院发布了 GraphRAG 论文(arXiv:2404.16130),首次系统性地提出将知识图谱引入 RAG 流程。该项目由微软多个团队的工程师联合开发,其中包括 Alonso Guevara Fernández、Andrés Morales Esquivel、Chris Trevino 等核心贡献者。
传统的 RAG(检索增强生成)依赖向量相似度匹配,将文本切成片段后嵌入高维向量空间,检索时找最相似的 k 个片段。但这种方法有一个根本局限:它无法理解语义关联。例如,「A公司收购了B公司」和「C公司是B公司的竞争对手」这两条信息,向量距离可能很远,但在知识图谱中它们可以形成一条推理链。GraphRAG 的核心思路就是:在索引阶段就用 LLM 提取实体和关系,构建知识图谱;在检索阶段利用图的连通性做全局感知,回答需要跨文档推理的复杂问题。
图1:GraphRAG 统一搜索界面,支持自然语言查询
GraphRAG 采用 monorepo 架构,项目分为 8 个核心子包:
GraphRAG 的索引流程分为四个阶段:
1. 文本分块(Text Chunking):将原始文档切分为重叠的文本片段,过短的 chunk 影响上下文,过长的 chunk 则引入噪声。GraphRAG 提供了可配置的分块参数。
2. 实体与关系抽取(Entity & Relation Extraction):调用 LLM 从每个 chunk 中提取实体(人物、组织、事件等)和关系(「属于」「导致了」「位于」等),这是一个成本较高的步骤,但决定后续检索质量。
3. 知识图谱构建(Graph Construction):将抽取的实体和关系存入图数据库(如 Neo4j),并对实体做社区检测(Community Detection),将相似的实体归入同一社区。
4. 图摘要生成(Graph Summarization):为每个社区生成摘要,这些摘要在检索阶段可以快速回答全局性问题。
图2:索引流程执行界面,实时显示各阶段进度
GraphRAG 提供两种检索模式:
Local Search(局部搜索):当用户问题指向特定实体时,在图中找到相关实体及其邻居,召回关联文本片段,适合事实性问答。例如「GraphRAG 的实体抽取支持哪些关系类型?」
Global Search(全局搜索):当问题需要全局理解时(如「总结本季度技术趋势」),系统找到与查询语义最相关的社区摘要,在图级别做推理。传统 RAG 在这类问题上表现很差,因为答案分散在大量文档中,GraphRAG 通过社区摘要实现了高效的全域信息整合。
图3:搜索结果详情,展示实体关联和来源文档
GraphRAG 自带一个基于 Python 的搜索 Web UI(unified-search-app),提供:
图4:GraphRAG 报告列表页,支持按相关性排序GraphRAG 官方文档明确建议:开箱即用的默认 Prompt 可能无法获得最佳效果,强烈建议用户根据自身数据特点进行 Prompt 微调。项目提供了专门的 Prompt Tuning Guide,指导用户如何针对实体抽取的完整性、关系类型的准确性和摘要生成的质量做迭代优化。
GraphRAG 并非银弹,存在几个需要正视的问题: 成本高昂:索引阶段需要大量 LLM API 调用,对于大规模语料库,成本可能远超预期。官方文档在多处发出成本警告,建议用户小规模验证后再扩大规模。 质量依赖 LLM:实体抽取和关系判断完全依赖 LLM 的能力,如果使用的模型本身对领域知识理解不足,抽取结果会很差。 不适用简单问答:如果你的场景只是「查找某文档的第3段写了什么」,传统 RAG 更高效,GraphRAG 的图构建反而是过度设计。
GraphRAG 代表着 RAG 领域的一个重要趋势:从「检索片段」到「理解关系」的范式转变。自2024年发布以来,该项目在 GitHub 已积累超过 33,000 颗星,催生了大量类似项目(如 LangChain GraphRAG 集成、LlamaIndex GraphRAG 支持等),推动了向量数据库厂商(如 Pinecone、Weaviate)纷纷推出原生图查询功能。 对于处理大量结构化程度低、需要跨文档推理的企业文档,GraphRAG 提供了一套经过验证的解决思路。虽然部署和调优有一定门槛,但其核心价值——让 AI 真正理解数据之间的关系——是传统 RAG 无法替代的。