主流 RAG 与 GraphRAG 框架总结及推荐
引言
在构建智能问答系统时,随着数据规模扩大,传统检索增强生成(RAG)系统常面临检索效率下滑和生成质量下降的挑战。核心问题在于如何在数据冗余、检索效率低下以及生成内容不相关之间找到最佳平衡点。
RAG 的发展瓶颈
传统 RAG 系统通过检索模型提取最相关文档,再交给生成模型处理。这种流水线式设计存在两个主要问题:
- 检索不够精确:简单的相似性检索容易漏掉重要信息或引入噪声数据。
- 生成效率低下:无关或低质量的上下文增加了生成负担,降低了回答的质量和速度。
GraphRAG 框架介绍
GraphRAG 框架在微软公司内部广受赞誉,并衍生出了一系列轻量级的优化版本,如 LightRAG 与 nano-GraphRAG 等。这些框架的核心改进之处在于,它们在传统 RAG 框架的基础上,进一步强化了实体、社区以及文本切块之间的内在联系,并将现有知识图谱中的知识融入其中。这一系列的改进措施,显著提升了信息检索的召回率与准确性。
1.0 GraphRAG (微软)
- GitHub: https://github.com/microsoft/graphrag
- 论文: From Local to Global: A Graph RAG Approach to Query-Focused Summarization
最近微软团队开源了一款结合了检索增强生成(RAG)技术和知识图谱的先进框架。它旨在通过利用外部结构化知识图谱来增强大型语言模型的性能,有效解决模型可能出现的'幻觉'问题、领域知识缺失以及信息过时等问题。
GraphRAG 工作原理
索引建立阶段:
- 文本块拆分:原始文档被拆分成多个文本块,作为 GraphRAG 处理的基本单元。
- 实体与关系提取:利用 LLM 对每个文本块进行分析,提取出实体和关系。
- 生成实体与关系摘要:为提取的实体与关系生成描述性信息,作为图节点的属性。
- 社区检测:通过社区检测算法(如 Leiden 算法),识别图中的多个社区。
- 生成社区摘要:利用 LLM 为每个社区生成摘要信息,提供对数据集全局主题结构的高层次理解。
查询处理阶段:
- 本地搜索(Local Search):针对特定实体的查询,扩展到相关实体的邻居和相关概念。
- 全局搜索(Global Search):对于复杂查询,采用 Map-Reduce 架构,利用社区摘要独立并行地回答查询,然后汇总生成全局答案。
1.1 LightRAG (香港大学)
- 论文: LightRAG: Simple and Fast Retrieval-Augmented Generation
- GitHub: https://github.com/HKUDS/LightRAG
LightRAG 在信息之间保持关系,能产生更优质的答案,同时计算效率更高。其创新功能包括:
- 图增强文本索引:将图结构纳入文本索引,建立相关实体之间的复杂关系。
- 双层检索系统:同时处理低层(具体细节)和高层(抽象概念)的查询。
- 增量更新算法:在不重建整个数据索引的情况下,快速整合最新信息。
关键词提取示例:


