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 操作,显著降低了计算开销。
(2) Fast GraphRAG 与 Lazy GraphRAG
在今年的 12 月微软同样不甘示弱,连续推出了两个轻量化版本,Fast GraphRAG 和 Lazy GraphRAG。
Fast GraphRAG 同样利用 LLM 抽取实体和关系,这点跟微软的 GraphRAG 并没有什么不同,但它省掉了'社区'及其摘要的生成,降低了对 LLM 请求的频率。在检索时,Fast GraphRAG 根据查询在知识图谱上找到最接近的实体,然后采用个性化 PageRank 在知识图谱上随机游走,获取子图,然后依靠子图生成最终答案。这种方法牺牲了一定的全局视野,换取了极高的检索速度。
LazyGraphRAG 采用了一系列简化的技术方法来优化知识的检索和生成过程。首先,在数据索引阶段,系统利用 NLP 技术提取名词短语,识别关键概念及其关联,构建初步的知识图谱。接着,通过图统计优化,对这些概念进行精细化处理,形成层次化的社区结构,帮助快速找到相关信息。它引入了惰性加载机制,仅在需要时才计算复杂的图路径。
(3) OpenSPG:专业领域的 Schema 指导
为了使大模型构造的三元组更适用于专业领域,在今年四月蚂蚁的 OpenSPG 最新版发布,它通过提前定义一些适用于专业领域的 schema 来指导大模型对实体的提取。这样在相关专业领域大模型对实体的属性提取的更加精确。Schema 定义了实体类型、关系类型以及属性约束,确保了图谱的结构化质量和一致性。
4. 国产 GraphRAG 的突破:KAG
在这一年里,各大 GraphRAG 系统可谓争奇斗艳,无论是微软的 GraphRAG、LazyGraphRAG,还是轻量化的 Fast GraphRAG,都在知识检索与生成领域不断推陈出新。而就在这一片热闹中,我们终于在今年 12 月等到了国产化的 GraphRAG 突破——KAG。
KAG 的发布,是蚂蚁团队常年对知识图谱领域深耕的结果,从 OpenKG 到 OpenSPG 再到 KAG,我们国产化的 GraphRAG 也一步步走到了舞台中央。
在 KAG 的论文中,首次提出了知识分层的概念,它把我们的知识比作金字塔,下层的知识完整具体,上层的知识简单抽象。并且指出回答不同的问题,我们需要的知识的层级是不同的。这像是对这一整年 GraphRAG 发展的总结,也同时为之后的发展指明了方向。
在建图方法上,KAG 并未沿用以往工作中通过构造多层图社区的方法,而是基于其自主开发的 OpenSPG 框架,在实体顶点内部实现知识的分层。这种分层方式对每个实体类型(如'人'或其他预定义属性)进行细化,确保实体内部的知识能够被更有效地组织和管理。
与此同时,图右侧展示了一个概念图,它可以类比 Microsoft GraphRAG 中的图社区结构,但 KAG 将概念进一步系统化,通过概念将实体中的信息逐步抽象,从而实现多层次的知识表示。每个概念类型(如'人的概念分类')通过树形结构关联到具体的概念节点,而每个节点都对应一个独特的概念类型类。
KAG 更加侧重于知识图谱的完整性和可解释性,为了追求垂直领域的专业性,其建图过程融合了人工维护和领域专家知识元素。这种方式不仅解决了以往图社区结构可能带来的层次冗余问题,还强化了知识表达的准确性,使其在垂直领域的应用中表现尤为出色。
在 KAG 的建图体系中,实体和概念的表示还包含了多种类型的属性和关系,具体包括:
- 领域专家预设部分:由领域专家预先定义的核心属性和关系。
- 临时添加内容:动态扩展的属性和关系,用于适应知识的实时更新需求。
- 系统预设属性:如支持块(supporting_chunks)、描述(description)、摘要(summary)和归属(belongTo)等。
对于每个实例,系统还提供以下功能:
- 支持块(supporting_chunks):指包含该实例的所有相关文本块,块的生成策略和长度由用户定义。
- 描述(description):为每个实例提供通用的描述信息,帮助大型语言模型(LLM)更好地理解特定实例或类型的意义,广泛应用于信息提取、实体识别和摘要生成。
- 摘要(summary):通过对实例或关系的上下文信息进行概要提炼,便于快速理解。
- 归属(belongTo):建立实例与概念类型之间的语义归属关系,使实体类型或事件类型能够与概念类型自然关联。
KAG 的这一创新性建图方式充分利用了实体和概念的分层结构,将实体内部的细化分层与概念图的逐级抽象相结合,不仅优化了知识的组织方式,还为复杂语义推理提供了强有力的支持。KAG 的这一设计标志着国产 GraphRAG 系统在知识建模上的重大突破,兼顾了高效性与灵活性,为垂直领域的知识处理和问答系统提供了更加精准和专业的解决方案。
5. 知识分层总结
至此,2024 年的知识分层大戏落下帷幕。从 Microsoft GraphRAG 到国产化的 KAG,知识分层成为推动 GraphRAG 领域发展的关键思路。一年的研究和应用充分展示了知识分层在提升知识检索效率、优化系统性能以及适应复杂语义关系方面的巨大潜力。
尽管知识分层在今年取得了诸多成果,但目前的解决方案仍存在一些显著的不足,主要包括以下几个方面:
- 建图成本问题:当前的知识分层方法在构建和维护多层次知识图谱时,依然需要较高的资源和时间投入,特别是面对大规模数据集时,建图成本成为应用推广的瓶颈。
- 推理延迟问题:多层次分层结构带来的复杂性增加了推理路径的长度,使得检索和推理的延迟较高,特别是在实时问答和动态数据处理场景中,用户体验受到影响。
- 系统灵活性不足:当前的知识分层方法在问答场景中的灵活性依然较差。例如,某些系统需要用户手动指定知识层次或社区,而非根据问题动态适配检索路径。在建图上有时还需要人工设定不同的模式融合人工维护和领域专家知识,这些都难以满足用户日常使用需求。
- 知识分层的标准化缺失:各系统在分层方法、抽象层级和知识表示上存在差异,尚未形成统一的分层标准。这种缺乏标准化的现状增加了系统之间的互操作难度。
二、检索优化:无参数、GNN 与大模型检索器
在过去的一年里,我们见证了各大厂商在建图方法上的激烈探索。从微软的 GraphRAG 到国产 KAG,无一不在追求更高质量、更高效率的知识图谱构建。然而,这些顶尖系统的背后,往往需要投入大量的时间、人力和财力。高质量图谱的构建不仅'烧钱',还'废人',对于资源有限的高校研究团队或小规模开发团队来说,往往难以承担这种高昂的成本。因此,今年在 GraphRAG 领域,我们也看到了许多团队聚焦于检索优化,试图在不依赖过于复杂的建图方法的前提下,通过更高效的检索策略来提升系统的整体性能。
接下来,我将分为'无参数检索器','GNN 检索器','大模型检索器'三个板块为大家介绍 2024 年检索优化的工作。
1. 无参数检索器
无参数检索器基于启发式规则或传统图搜索算法,不依赖深度学习模型,因而具有高效性和低成本的特点。除了多跳路径和最短路径这些传统的图算法,今年最值得讨论的工作是新国立在今年五月发表的 G-Retriever。
G-Retriever 提出了基于经典 Prize-Collecting Steiner Tree (PCST) 算法的改进方法。通过引入边的价格模型,G-Retriever 能够更精准地优化相关子图的提取。PCST 算法的目标是在图中找到一个连接指定节点的子图,使得总权重最小,同时最大化节点收益。在 GraphRAG 中,节点代表实体,边代表关系,收益代表相关性。G-Retriever 通过调整价格和收益函数,使得检索到的子图既紧凑又相关,非常适合资源受限的场景。
2. GNN 检索器
GNN 检索器利用图神经网络强大的图结构建模能力,对复杂知识图谱中的节点和边进行深度编码和语义分析,从而在高效检索与深度语义理解之间取得了良好的平衡。相较于无参数检索器基于启发式规则的传统方法,GNN 检索器显得更加智能化,能够根据查询动态生成精确的子图或路径。
但是 GNN 检索器有它自己一个致命的缺点,就是需要借助于用户数据进行额外训练,例如借助于客户已有的问答数据对知识图谱中的命名实体产生更好的 Graph Embedding 表示,这些工作涉及到很高的定制化成本,对于普通用户来说并不能应用到日常使用。
今年 GNN 检索器最经典的一篇工作是 GNN-RAG,它是一种结合图神经网络的检索增强生成模型。它首先对整个知识图谱进行编码,为每个节点生成高维嵌入向量。在检索阶段,系统根据查询计算每个节点与查询的相似性得分(similarity score),并将得分高于阈值的节点视为与查询相关的实体节点。最后将得分高的实体节点到查询实体节点的最短路径结合用户问题喂入大模型。
3. 大模型检索器
大模型检索器(LM-based Retriever)利用大型语言模型(LLMs)强大的自然语言理解能力,根据用户提出的问题对知识图谱的检索过程提供指导。这类方法充分发挥了大模型在自然语言语义分析和推理方面的优势,能够动态生成推理路径,为复杂查询提供高效的解决方案。这类方法有一个和 GNN 检索器类似的缺点,那就是需要用用户的数据对大模型进行微调。
比如今年 ICLR 的一篇工作 REASONING ON GRAPHS,它用知识图谱中的知识和特定的生成关系路径的任务去微调大模型,在推理时大模型会根据用户问题生成推理路径,再根据推理路径生成回答。
这类检索器虽然很好的运用了大模型的生成能力,但是前期的微调任务依然使它不能够很好的为用户所用。此外,大模型检索器的推理成本极高,每次查询都需要消耗大量的 Token,这在大规模部署时是一个巨大的障碍。
三、应用场景与评估指标
在实际落地过程中,选择合适的 GraphRAG 方案需要考虑多个维度。以下是针对不同场景的建议:
- 复杂推理场景:如果业务涉及多跳推理、因果分析或复杂逻辑判断,建议采用带有知识分层结构的方案(如 Microsoft GraphRAG 或 KAG),利用图结构的优势捕捉实体间的深层联系。
- 实时问答场景:如果对响应速度要求极高,且数据更新频繁,建议采用轻量化方案(如 LightRAG 或 Fast GraphRAG),牺牲部分精度换取低延迟。
- 垂直领域场景:如果业务属于医疗、法律等强监管或高专业度领域,必须引入 Schema 约束和专家知识(如 OpenSPG 或 KAG),以确保输出的准确性和合规性。
在评估方面,除了传统的准确率(Accuracy)和召回率(Recall),还应关注以下指标:
- 事实一致性(Fact Consistency):生成的答案是否与图谱中的事实一致,避免幻觉。
- 推理路径长度(Reasoning Path Length):检索到的路径是否简洁,过长的路径可能导致噪声累积。
- 构建成本(Construction Cost):包括时间成本和算力成本,直接影响系统的可维护性。
四、未来展望
2024 年无疑是 GraphRAG 领域充满突破与变革的一年。从知识分层的提出到检索优化的不断探索,我们见证了从 Microsoft GraphRAG 到国产 KAG 的技术跃迁,也看到了各类方法在灵活性、效率和可解释性上的不断迭代。今年的研究不仅让 GraphRAG 的应用更加广泛,同时也揭示了其发展过程中的不足和挑战。
知识分层作为今年最重要的研究方向,不仅赋予了知识图谱更强的组织能力,也显著提升了检索的精度和生成质量。然而,建图成本高、推理延迟以及系统灵活性不足的问题,依然是知识分层技术需要面对的重要挑战。而针对这些问题,从轻量化的 LightRAG 到 Fast GraphRAG、Lazy GraphRAG,再到国产的 KAG,各类创新方法在建图和推理效率上取得了显著的进展,充分展现了不同团队的技术智慧与实际应用能力。
与此同时,检索优化的探索为 GraphRAG 的实际应用提供了更多可能性。从高效的无参数检索器到强大的 GNN 检索器,再到语义理解能力卓越的大模型检索器,每一种方法都在特定的场景中发挥了重要作用。尽管无参数检索器因其高效性和低成本仍占据一席之地,但 GNN 检索器和大模型检索器则通过深度学习和语义推理能力,为复杂多跳问题和动态场景提供了更强的支持。然而,这些方法对用户数据的依赖和微调的高成本,也使它们的广泛应用面临一定的瓶颈。
今年的知识分层思想为今后 GraphRAG 发展指明了方向,但是分层之后如何进行更快,更准,更灵活的检索依然是今后需要研究的内容。此外减少构建知识库的时间和成本也是今后 GraphRAG 能够普及的重要一环。
在检索器的优化方向上,为了真正实现广泛适用的检索系统,未来的检索器设计应更加关注其通用性,能够在不同领域和任务中自适应地提供高质量的检索结果,而无需依赖领域特定的微调。同时,随着硬件算力的提升和模型压缩技术的发展,大模型检索器的成本有望降低,使其在更多边缘设备上得以部署。此外,人机协同建图将成为趋势,利用人类反馈强化学习(RLHF)来优化图谱结构和检索策略,将是下一代 GraphRAG 系统的重要特征。
综上所述,GraphRAG 正处于从理论探索走向产业落地的关键阶段。随着技术的成熟和生态的完善,我们有理由相信,GraphRAG 将在未来的智能系统中扮演更加核心的角色,成为连接非结构化数据与结构化知识的关键桥梁。