2024 年 GraphRAG 代表性工作的调研与总结
2024 年被誉为'RAG 发展元年',尽管这一称号尚未得到普遍认可,但全年的显著进展无疑为其赋予了充分的理由。在大型语言模型(LLM)广泛应用的背景下,检索增强生成(Retrieval-Augmented Generation,简称 RAG)技术始终扮演着不可或缺的重要角色。特别是基于图结构的 RAG(GraphRAG),凭借其在知识组织与检索上的独特优势,成为推动智能问答系统和信息处理技术革新的关键力量。传统的向量检索往往面临语义模糊和多跳推理能力不足的问题,而 GraphRAG 通过引入显式的结构化知识,有效弥补了这些短板。
本文将深入探讨 2024 年 GraphRAG 领域的主要进展,主要从构建图谱和检索优化两个维度进行系统性梳理,分析各代表性工作的核心机制、优缺点及适用场景。
一、构建图谱:知识分层与结构优化
今年在 GraphRAG 领域最火的词莫过于'Hierarchical',也就是所谓的知识分层。这种思想源于生物学分类法,即根据抽象程度将知识划分为不同层次。例如生物学家对各类生物的分类会划分'界门纲目科属种',下层是具体的动物名称,向上具有相同特征的动物被概括成一个种类,再向上动物们又会被概括成更抽象的知识'属'。
这种知识分层的思想在今年被应用在了 GraphRAG 的构图领域,为系统带来了前所未有的灵活性和高效性。通过将知识图谱(Knowledge Graph, KG)按照不同的层次进行组织,GraphRAG 能够更精准地匹配用户的查询需求,无论是需要综合总结的宏观问题,还是需要具体细节的微观问题,都能快速定位到相应的知识层次,提供精准的回答。
1. 知识分层的开山之作:RAPTOR
知识分层的概念最早在今年二月由 RAPTOR(Recursive Abstractive Processing for Tree-Organized Retrieval)引入到 RAG 领域。因为现有的 RAG 方法仅从检索语料库中提取短而连续的文本片段,这种方式限制了对整个文档上下文的全面理解,无法有效整合长篇文档中的信息。RAPTOR 首先把文本内容预聚类,接着利用 LLM 对聚类后的文本生成摘要,形成一个多层次的树形索引。
这些摘要数据连同原始文本一起被送到搜索系统。由于这些摘要数据提供了对文本更加宏观的理解,因此对一些意图不明的提问,还有需要跨 Chunk 的多跳提问,都可以产生合适的回答。这种树状结构使得检索过程可以自顶向下或自底向上进行,极大地提升了长文档处理的效率。
2. 知识分层在 GraphRAG 上的应用:Microsoft GraphRAG
看到知识分层在 Naive RAG 上取得了如此显著的效果,我们很容易想到这个思想可以应用到 GraphRAG 上,因为图结构天然就存在可以分层的特性,层次图的概念已经应用到了计算机的各个领域中,并且在知识图谱上有着比树复杂多倍的关系类型和知识种类。采用知识分层的思想也一定能够提升 GraphRAG 的生成质量。
也就是在两个月之后,也就是今年的四月微软发表论文《From Local to Global: A Graph RAG Approach to Query-Focused Summarization》并开源 GraphRAG 框架(为了避免名字冲突,我们之后称为 Microsoft GraphRAG)。标志着知识分层首次应用在 GraphRAG 领域。
Microsoft GraphRAG 采用 Leiden 算法高效地检测图的层次社区结构,每层社区划分互斥且覆盖所有节点,支持不同粒度的社区划分。对于每个社区,系统生成相应的摘要文本。对于细粒度的叶级社区,按照边的分数降序排列,将相关描述、和边信息依次加入 LLM 的上下文窗口,生成社区总结;对于高层级社区,则进行粗粒度的总结,以此类推形成层次图。
在检索和生成阶段,用户需要指定检索层次,之后 Microsoft Graph 会调用大模型对这一层的所有摘要进行打分,把分数高的摘要与用户问题进行结合,喂入大模型生成答案。这种方法在处理全局性问题时表现优异,但在局部细节检索上可能存在延迟。
3. 知识分层带来的问题和解决方案的探索
尽管知识分层为 GraphRAG 带来了诸多好处,但是它依然不适合我们在生活中去使用。
首先我们都不像微软公司一样财大气粗,构建多层次的知识图谱需要大量的时间和资源,尤其是在处理大规模数据时,建图成本显著增加。其次是有很高的推理延迟,大模型平行打分导致检索和推理过程中的延迟增加,影响系统的响应速度。第三是在问答上还不够灵活,需要用户手动指定检索的社区层次。而且这种用大模型总结出的文本描述不适用于相关专业领域。
为了克服知识分层在 GraphRAG 应用中带来的这些挑战,研究者们在 2024 年陆续提出了多种创新解决方案,旨在降低建图成本、减少推理延迟并提升系统的灵活性。
(1) LightRAG:轻量化双层结构
首先是今年 7 月香港大学推出的 LightRAG,正如它的名字一样它可以认为是 Microsoft GraphRAG 的轻量化。只实现了一个双层的图结构。但是在每一层中都做了向量化,避免了 GraphRAG 的社区遍历。在保证生成质量的同时,提高了建图和检索的效率。LightRAG 通过引入轻量级的嵌入模型替代部分 LLM 操作,显著降低了计算开销。

