GraphRAG 是一种先进的检索增强生成(RAG)系统,通过将知识图谱与大型语言模型(LLM)相结合,提升模型的理解和推理能力。与传统的 RAG 系统主要检索语义相似的文本片段不同,GraphRAG 从非结构化文本中构建结构化的知识图谱,使模型能够更好地处理复杂信息,特别适用于需要多跳推理或从多种来源综合信息的任务。
GraphRAG 的处理流程主要包括两个阶段:
-
索引阶段:
- 文本分割:将输入语料库划分为较小的文本单元,如段落或句子。
- 实体和关系抽取:使用 LLM 识别每个文本单元中的实体(如人名、地名、组织等)及其之间的关系。
- 层次聚类:使用聚类算法(如 Leiden)将提取的实体和关系组织成社区。
- 社区摘要:为每个社区生成摘要,突出显示关键实体、关系和声明。
-
查询阶段:
- 全局搜索:对于广泛的问题,系统利用社区摘要生成响应。
- 局部搜索:对于特定实体相关的查询,系统在知识图谱中探索该实体的邻居和相关概念。
通过这种结构化的方法,GraphRAG 克服了传统 RAG 系统的局限性,在回答复杂查询时提供更全面和准确的响应。
值得注意的是,GraphRAG 已经有适配中文的版本。例如,GitHub 上的项目 graphrag-chinese 提供了对中文的支持,允许使用兼容 OpenAI 协议的中文大模型 API,或使用开源中文模型搭建的 API 服务器。此外,项目 graphrag-practice-chinese 介绍了如何使用 GraphRAG 处理中文内容,包括替换 OpenAI 模型、修改文档切分和提示词等优化策略。
有关 GraphRAG 的更多详细信息,包括实现指南和技术细节,您可以参考其中文文档教程 GraphRAG:中文文档教程。