GraphRAG是微软开源的一种基于图的检索增强生成(RAG)技术,通过结合知识图谱和大语言模型(LLM),显著提升了AI在处理复杂信息和大型数据集上的能力。它能够从非结构化文本中提取实体和关系,构建知识图谱,并通过图机器学习技术优化查询过程。其核心在于构建基于实体关系的图索引,并通过社区划分与分层摘要的方式,使模型能从全局视角理解数据并回答问题,同时能为生成的答案提供来源依据,增强了可追溯性。相比传统RAG,GraphRAG在回答全局性、总结性问题时具有优势,在全面性、多样性及复杂推理任务中表现更优,适用于智能问答、数据摘要和知识推理等场景。它与传统RAG形成互补关系,前者更适用于全局主题总结,后者则擅长局部事实查询。自发布以来,该技术持续演进,例如在2025年,其性能在全面性、事实准确性等指标上显著优化,提出了基于知识图谱的三层搜索模式以突破传统向量检索的局限,开源版本也增强了图谱检索与推理能力,支持动态更新与定制化摘要生成,并引入了强化知识图谱构建与推理的三阶段机制,以适用于高复杂度专业场景。此外,GraphRAG已拓展至多模态数据处理,例如在医学领域结合知识图谱提升循证能力,并在法律等领域获得实际应用,如浪潮云洲于2025年11月申请了基于GraphRAG的法律知识图谱分析专利。
GraphRAG由微软研究(Microsoft Research)创建,旨在解决传统检索增强生成(RAG)技术在处理需要全局理解或复杂语义推理的私有数据集时的不足,其核心思想是利用大型语言模型(LLM)从私有数据生成知识图谱,并结合图机器学习技术,以提升对数据集的整体洞察和发现能力。
微软于2024年7月2日正式在GitHub上开源了GraphRAG项目,该项目因其创新性在开源后受到广泛关。
GraphRAG的工作流程主要包括三个阶段:基于图的索引(Graph-Based Indexing)、图引导检索(Graph-Guided Retrieval)和图增强生成(Graph-Enhanced Generation)。在索引阶段,通过大语言模型(LLM)处理源文件,提取文档中的实体及其关系的结构化信息以构建知识图谱,或识别、构建与下游任务对齐的图数据库并建立索引。在检索阶段,利用图结构信息更精确地检索与给定查询相关的图元素。在生成阶段,检索到的图元素被用于增强生成模型的能力以生成响应,或利用子图上下文进行生成。
其详细工作流程可细化为:源文档→文本块、文本块→元素实例、元素实例→元素摘要、元素摘要→图社区、图社区→社区摘要、社区摘要→全局答案。微软GraphRAG项目提供了可配置选项以适应不同场景,用户可以根据需求指定要提取的实体类型、设置最大提取值,并选择LLM模型(例如gpt-4o-mini以平衡成本与性能)。配置信息中的“llm”部分包含“api_key”、“model”以及“max_tokens”等关键参数,此外还涉及并行处理的线程数(“num_threads”)、异步模式(“async_mode”)等其他参数。
知识图谱构建:从非结构化文本提取实体关系
多层次查询能力:支持全局与局部关联分析
图神经网络增强:提升多跳推理响应质量
社区摘要生成:自动聚类并概括关键主题
灵活应用适配:支持场景定制检索策略
GraphRAG是一种结合了知识图谱(KG)和检索增强生成(RAG)的技术,其核心在于利用大语言模型(LLM)从非结构化文本中提取实体和关系,构建结构化的知识图谱,以增强LLM对私有或复杂数据的全局理解和推理能力。
GraphRAG的工作流程主要分为三个阶段。在索引/图谱构建阶段,将源文档分块,利用LLM提取实体、关系和声明(Covariates),构建知识图谱;随后应用社区检测算法(如Leiden算法)对知识图谱进行层次化聚类,形成不同粒度的图社区,并为每个社区生成自然语言摘要。在检索阶段,当用户发起查询时,系统通过图检索技术,从构建好的知识图谱中定位与查询意图最相关的子图或社区,并召回相应的社区摘要和实体关系信息作为上下文。在生成阶段,将检索到的图谱上下文(包括社区摘要、实体及关系)与用户查询结合,输入给LLM,生成最终答案。系统同时支持针对特定实体的“本地搜索”和需要整合整个数据集洞察的“全局搜索”。
GraphRAG的关键技术组件包括知识图谱构建、社区检测与摘要生成以及查询处理与答案生成。知识图谱构建依赖LLM进行三元组(实体-关系-实体)抽取,是后续所有操作的基础。社区检测与摘要生成通过图机器学习算法对知识图谱进行社区划分,并为每个社区生成摘要,这是实现全局理解的关键。查询处理与答案生成则结合图谱检索和LLM的生成能力,提供可解释的回答。
GraphRAG的技术特点包括动态更新与层次化结构。部分实现支持根据用户反馈动态更新图元社区聚类规则、跨社区关联规则和推理策略。通过社区聚类形成了从微观实体到宏观主题的层次化知识结构,便于不同粒度的信息检索与理解。