最近微软开源GraphRAG的消息,在技术圈引发了不小的关注。GraphRAG全称为Graph-Augmented Retrieval-Augmented Generation,简单说就是将知识图谱与传统检索增强生成(RAG)方法相结合,专门用于提升大模型处理私有数据问答的能力。今天,我们从知识图谱的原理说起,再借助一个生动的类比,来看看为什么知识图谱+RAG这套组合拳,比单纯的RAG方案更具优势。
01
什么是知识图谱?
你有没有过那种感觉——脑子里塞满各种零散信息,像一团乱麻?知识图谱模拟的正是我们思考事物及其关系的方式,同时绕开了大脑易遗忘和出错的短板。简单来说,它将信息整理成一个由相互连接的实体构成的网络,每个节点代表一个实体(比如人、地点、概念),节点之间的边则表示它们之间的关系。

我们可以把知识图谱想象成含有主语、谓语、宾语的三元组。它采用图结构的数据模型,将实体和关系清晰地呈现出来。你可能听说过“六度分隔”理论——每个人和任何一个人之间最多通过六个人就能联系起来。知识图谱就是把这一理论在数据层面落地,而且它不仅连接你和远方的朋友,还能在一个广阔、多维的关系网络中,串联起所有可能的实体。

图片来源:Langchain
知识图谱真正强大的地方在于其近乎“超自然”的连接能力——灵活、可扩展,并能无缝整合结构化与非结构化的多种数据源。这种融合创造出了信息的统一视图,往往能揭示出隐藏的联系和模式。更进一步,先进的知识图谱还融合了本体与语义Schema,为领域内的概念及其关系提供了正式定义。这个语义层显著增强了图谱的逻辑推理能力,例如支持传递闭包操作:如果图谱中记录了“约翰住在旧金山”和“旧金山在加利福尼亚”,即便没有直接写明,它也能自动推断出“约翰住在加利福尼亚”。

图片来源:Neo4j 博客
02
知识图谱的应用场景
那么知识图谱具体能用在哪些地方呢?我们可以从三个维度来考量:延迟、持久性和查询类型。在分析方面,知识图谱既能处理即时查询,也适合系统性分析——从实时的客户洞察到复杂的财务建模,它都能胜任。此外,它在持久数据存储和快速检索上表现优异,这对复杂的推荐系统和以用户为中心的界面至关重要。在算法层面,知识图谱尤其擅长处理系统查询,特别是高级自然语言处理和链路优化。这再次印证了它的灵活性——既支持实时分析,也能支撑持久化的系统数据结构。

这也是去年年底知识图谱技术突然火起来的原因——进而引出了我们今天的主角:GraphRAG。
03
什么是GraphRAG?
今年4月,微软研究团队关于GraphRAG的论文一经发布,立刻吸引了业界目光。7月初,GraphRAG在GitHub上开源,短短半个月star数量就飙升至12k。那么,GraphRAG到底是什么?我们直接看论文中的定义:

图片来源:Arxiv,《GRAG: Graph Retrieval-Augmented Generation》
为了让你更容易理解,这里有个非常形象的类比:把GraphRAG想象成信息世界里最优秀的城市规划师。传统的RAG方法就像游客随机找行人问路,而GraphRAG则像了解城市每个角落的市长。它不仅知道单个建筑(或信息片段),还能看到整个城市的全貌——错综复杂的街道、街区与社区网络。这种鸟瞰视野让GraphRAG能像一个熟知所有捷径的老司机,高效地在这些街道之间穿行。

图片来源:arXiv,《GRAG: Graph Retrieval-Augmented Generation》
GraphRAG之所以引人注目,在于它能识别并探索与任何问题相关的“街区”(子图)。借助一种名为“软修剪”的技术(主要针对无关信息),GraphRAG可以清理这些区域,去除杂乱内容,突出最相关的特征。然后,通过同时运用城市规划语言(图结构)和地方方言(文本信息)的双重提示,它给出的回答不仅能抓住事实,还能揭示城市景观丰富的背景与内在联系——就像从一位长期居住本地的历史专家那里获取的内部信息,远胜于任何旅游指南。
微软那篇《From Local to Global》的论文,正是将这种方法应用到聚焦查询的总结上,用自然语言总结知识图谱的内容以供检索。沿用刚才的类比,GraphRAG就像是知识库(城市)的高级城市规划和信息检索系统。它的运行分为两大阶段:索引和检索。
在索引阶段,城市规划者(LLMs)先把城市景观(原始文档)划分成可管理的区域(文本片段)。然后,他们逐一调查每个区域,识别关键地标和连接(元素实例)——比如标出重要的建筑物、公园以及连接它们的道路。这些个体元素被总结成简洁的描述(元素摘要),好比为每个社区地标创建简短概况。接着,利用先进的城市分析工具(例如Leiden社区检测算法),规划者把这些元素分组为自然的社区,就像在城市中识别出不同的街区或行政区。最后,他们为每个社区制作详细的“社区报告”(社区摘要),提供丰富、多层次的全城指南。通过索引阶段,我们便创建了一个全面、分层次的、从单个建筑到整个区域的城市景观理解。

图片来源:Arxiv,《From Local to Global: A Graph RAG Approach to Query-Focused Summarization》
到了检索阶段,GraphRAG在处理全局范围的查询时表现尤为出色。它不会随机派遣调查员到处跑,而是直接参考预先准备好的社区报告。每个社区以其本地视角对全局问题作出贡献,就像城市规划师结合各行政区的反馈来理解全市趋势。这种方法在处理“全局”问题时尤其有效,给出的答案在广度和多样性上都优于传统方法。

论文还提到了一个非常有趣的结论:文本块的大小至关重要。例如,使用600个token比使用2400个token能提取更多的实体(见上图)。但这需要平衡——文本块太小可能会导致上下文信息丢失。说到底,使用大模型时,我们总在成本、延迟、隐私和准确性之间做权衡。图结构带来的性能提升伴随着更多的token消耗和推理时间,因此是否采用GraphRAG,很大程度上取决于具体的应用场景,以及基于图的摘要是否是最优方案。

图片来源: Gradientflow 博客
04
关键区别:GraphRAG vs RAPTOR
此时可能有人会问:GraphRAG和目前RAG技术中常用的RAPTOR有什么不同?还是用之前的比喻来概括:如果把RAPTOR看作是一位建筑师在设计一栋多层高楼,从每一层向下看,都能看到城市的不同细节——一楼有特定地点的详细信息;随着楼层上升,每层提供一个更概括的视角,覆盖更大区域;顶层则可以鸟瞰整个城市。
回答问题时,RAPTOR会在这栋大楼里上下移动,根据需要从不同楼层收集信息。对于需要结合具体细节和宏观背景的复杂问题,它尤其有效。

图片来源:Arxiv,《RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval》
GraphRAG与RAPTOR的主要区别可以归纳为三点:
- GraphRAG侧重于城市不同部分之间的联系(实体之间的关系),而RAPTOR则按照信息的抽象程度来组织信息。
- GraphRAG最适用于需要全面了解整个城市的问题,展示所有事物之间的相互关联;RAPTOR则擅长处理需要把城市不同部分的具体细节拼凑在一起,同时保留更广泛背景的问题。
- GraphRAG的优势在于展现城市的多样性和相互关联性;RAPTOR的优势则在于能在详细信息和摘要信息之间高效切换。
简单总结:如果你想宏观地看全局、理清关系,GraphRAG是更好的选择;如果问题复杂、层次分明、需要上下左右地拼凑细节和背景,RAPTOR或许更顺手。两者各有千秋,具体选哪个,全看你的实际需求。
