今天我们来研读香港大学 HKUDS 实验室的研究:《LightRAG: Simple and Fast Retrieval-Augmented Generation》
开源实现:LightRAG
LightRAG 可以视作 GraphRAG 的一种改进方案。有关 GraphRAG 的内容,参见我的 Day 3 分享帖。
1. 为什么要引入 LightRAG ?以前的研究有什么不足?
传统的 chunk-based RAG 通过把海量的文档切分成很小的文本块(Chunk),以便于根据用户的问询做向量相似度检索,从而快速定位到与问询最相关的具体片段。但这存在两大缺陷:
扁平化数据表示:chunk-based RAG 无法表达或检索实体之间错综复杂的联系。
缺乏上下文感知力:chunk-based RAG 检索出来的知识是孤立的,难以回答需要综合推理的复杂问题。
因此,作者选择将图结构引入文本索引以及相关信息检索。这是因为图结构天生擅长表示不同实体之间的相互依赖关系,能把散落在不同文档里的信息“串”起来,合成出连贯、上下文丰富的回答。
然而,作者指出,开发一个快速的、可扩展的图驱动 RAG 系统,存在三个挑战:
信息的全面性:如何确保检索时既不漏掉细节,又能把互相依赖的实体完整上下文都抓出来?(GraphRAG 对全局感知问题表现很好,但是不擅长局部的细节性问题,比如原文引用及例证)
检索效率:如何提升图驱动 RAG 系统的检索效率?(GraphRAG 存在检索效率慢这一问题)
对新数据的快速适应:在动态环境中(数据集会频繁更新的场景),如何让系统快速适应变动的数据,以持续保证检索的时效性和相关性?(GraphRAG 同样难以做到这一点,因为数据集一变,就要重新划分社群、构建层级社群摘要)
为了解决上述问题,作者提出了 LightRAG ,最大的创新点是两大机制:
双层检索框架:低层级检索关注具体的实体及其直接关系,回答精确的细节、具体事实;高层级检索关注宏观的主题、概念和跨领域的总结,回答高维度的全局问题。
图结构与向量表示的融合:既保障了检索的速度(通过向量快速定位),又保障了上下文的全面性与深层关联(通过图拓扑拓展延伸)。
2. RAG 建模
RAG 系统包含两个重要组成部分:检索组件与生成组件。可以用如下数学语言来描述:

其中,M 表示 RAG 系统,G 是生成组件,R 是检索组件。检索组件 R 包含两个函数:φ(·) 表示数据索引器,给外部数据库 D 构建一个索引 Dˆ ;ψ(·) 表示数据检索器,通过比对用户问询 q 与数据库索引 Dˆ 得到与 q 最相关的数据。生成器 G 于是可以通过 q 以及与 q 最相关的外部数据,生成高质量的、上下文相关的回答。
为了构建一套高效高质量的 RAG 系统,作者在研究中主要关注以下三点:
信息检索的全面性:要求索引函数 φ(·) 必须擅长提取全局信息,这确保了系统能对用户问询给出高质量回答。
高效且低成本的检索:要求索引数据结构 Dˆ 必须支持高效低成本的查询,这确保系统能有效处理大量的用户问询。
快速适应数据变化:要求系统能快速高效地改变数据结构,以容纳外部数据库中发生改变的数据信息,这确保系统能在多变的业务场景中保持相关性与时效性。
3. LightRAG 架构
LightRAG 的整体架构可以参考下面的流程图:

3.1 基于图结构的文本索引构建
3.1.1 图增强的实体与关系抽取
具体步骤如下所述:
文档切片:将长篇大套的文档分割成尺寸较小、更容易处理的文本块(Chunks),这使得后续检索时可以快速精准定位到包含关键信息的具体片段,而无需处理整篇文档。
实体与关系的抽取:把切好的文本块送入 LLM ,通过设计好的 Prompt ,让 LLM 自动识别并提取出实体及实体间的关系。将所有文本块中提取出的实体和关系汇总联合,构建成一张覆盖整个文档集的综合知识图谱。
用数学语言来描述,就是:

其中,Dˆ 表示最终的知识图谱(如果你觉得它很眼熟,没错,因为知识图谱可以视作原始数据库的一个索引结构)。
具体而言,作者采用了三阶段处理办法,从一个个原始文本数据 Di 中处理得到了知识图谱 Dˆ :
实体与关系的抽取:将原始文本数据 D 划分为文本块 Di ,并对每一个文本块 Di 应用 Recog(·) 。Recog(·) 表示了 “对 LLM 进行提示词设计,使其识别并提取文本数据中的实体(节点)与关系(边)” 这一过程。
LLM 画像与键值对生成 Prof(·) :这一步为提取出的每一个实体和关系,生成用于高效检索的键值对(Key-Value Pair)。具体来说:
键(Key,用于快速检索匹配):一个词或短语。
对于实体:Key 就是实体本身的名字(例如:"Cardiologists")。
对于关系:Key 可以有多个。LLM 会进行内容增强,根据连接的实体提取出 “全局主题(Global themes)” 作为 Key。
值(Value,用于给 LLM 生成回答提供上下文):一段文本。这段文本是 LLM 从原始片段中总结出的关于该实体/关系的详细描述摘要。包含 [实体与关系的名称] + [实体与关系的详细描述] + [原始文档片段摘录] 等信息。
去重以优化图操作 Dedupe(·) :因为原始文档被切成了很多块,同一个实体或同一对关系可能会在不同的文本块中被反复提取出来。Dedupe(·) 函数负责识别这些完全相同或高度指代的实体和关系,并将它们合并。这可以缩小图谱大小,使得数据处理更加高效。
作者指出,LightRAG 相比于传统 chunk-based RAG 和传统 GraphRAG 的优势有如下两方面:
全面的信息理解能力:利用构建好的知识图谱,提取多跳子图(Multi-hop Subgraphs)中的全局信息,具备了跨文档片段处理复杂查询的全局理解能力。
卓越的检索表现:比传统 chunk-based RAG 更准,比传统 GraphRAG 更快。
3.1.2 增量更新算法
增量更新算法的核心思路是:
当有新文档 D' 接入时,系统只针对 D' 运行之前定义的图索引算法 φ ,得到新文档的局部图谱 Dˆ′ = (Vˆ′ , Eˆ′ )
直接对新图谱与原始图谱的节点集和边集做并集处理,并将重复节点合并。
作者提出了指引增量设计的两大目标:
新数据的无缝集成:由于新数据处理和历史数据处理采用完全一致的范式(统一的提取提示词与 Key-Value 画像生成),新抽出的节点/边可以天然融入现有图谱结构。因此,上述算法不仅不会破坏原有的图拓扑连接,还能自动与历史节点建立新的关联,且通过去重机制避免冗余和冲突。
大幅降低计算开销:微软 GraphRAG 等传统方案在新增文档时,由于需要重新计算层级社群划分(Leiden 算法)和重新生成社群摘要,几乎需要完全重新构建整张图,开销很大。LightRAG 只处理新增部分,无需重构旧索引,实现了近乎实时的动态知识库更新。
3.2 双层级检索范式
作者把用户的问询分为了两类:
具体性问题:这类问题是细节导向的,指向图中的某个或某些特定实体/边。比如,"谁写了《傲慢与偏见》?"
抽象性问题:这些问题是概念导向的,涵盖宏观主题、全局总结或跨实体的趋势,不依赖单一实体。比如,"人工智能如何影响现代教育?"
针对上述两种不同类型的问题,LightRAG 推出了双层级检索范式:
低层级检索:抓取具体的实体及其直接属性与关系。这可以确保精准度,避免丢失关键细节。
高层级检索:跨越多个相关实体和关系,聚合出高阶的概念、主题或总结性信息。能回答高层次的概念或摘要性问题。
该方案采取三步骤实现方式:
查询关键词提取。当用户提取问询 q 时,LightRAG 同时抽取两类关键词:
局部关键词 k(l) :指向具体的实体、细节(用于 Low-level 检索)。
全局关键词 k(g):指向高维度的概念、主题或关系(用于 High-level 检索)。
关键词匹配。利用向量数据库做相似度搜索:
拿着 k(l) 去和图中所有实体的 Key 进行向量匹配,筛选出候选实体。
拿着 k(g)去和图中所有关系的全局主题 Key 进行向量匹配,筛选出候选关系。
融入高阶图结构拓展。为了不丢掉丰富的上下文,LightRAG 会沿着图拓扑结构向外延伸一步:
抓取 1-Hop 邻居节点:从刚才匹配到的节点 v 和边 e 出发,拉取它们的直接邻居节点集合:

上述方案拥有两个优势:
通过关键词匹配的方式,达成了高效检索。
通过引入图谱的结构化信息,加强了系统生成答案的全面性。
3.3 检索增强的答案生成
这一部分采取 2 个步骤:
检索信息的利用。LightRAG 从上面检索到的相关实体和关系中提取对应的 Value 。这部分信息表示为 ψ(q; Dˆ) 。
上下文融合与 LLM 生成。LightRAG 将用户的原始问询 q 与整理好的多源图文本上下文 ψ(q; Dˆ) 填充入 Prompt 模板并送入 LLM 。
由于上下文既包含微观的实体细节,又包含宏观的关系主题和图拓扑邻居,因此 LLM 能够给出上下文连贯、能够回答复杂跨实体关系的完整解答。
3.4 LightRAG 架构的复杂度分析
3.4.1 索引阶段复杂度分析
这一阶段用 LLM 对每一个文本块提取实体和关系,因此这一阶段中 LLM 的总调用次数是:

这里不存在额外的图聚类或重度遍历开销,因此十分轻量。
3.4.2 检索阶段复杂度分析
在响应用户 Query 时,检索过程分为两步:
关键词生成:调用一次 LLM 从 Query 中提取低层(Local)和高层(Global)关键词。
向量化检索匹配:利用向量数据库直接寻找匹配的实体和关系,而不是检索原始的长文本块。
这比起 GraphRAG 基于社群遍历的算法在工程开销上要小很多。
4. 实验评估
作者旨在用实验来回答四个问题:
综合性能对比:与现有的 RAG 基线方法相比,LightRAG 生成回答的整体质量如何?
内部机制有效性:双层检索和图结构索引各自对生成质量做出了多大贡献?(消融实验)
实际场景案例:通过不同应用场景下的具体 Prompt / Case 对比,LightRAG 在回答复杂、跨多文档问题时展示出哪些独特优势?
成本与数据更新适应力:LightRAG 构建与检索的 Token 成本/耗时 是多少?面对数据的动态更新,其适应能力如何?
4.1 实验环境
4.1.1 数据集
作者选择了源自 UltraDomain benchmark 的 4 个经典跨领域数据集 来评估 LightRAG 。该数据集的数据源自 428 本大学教科书,单数据集规模在 600,000 到 5,000,000 Token 之间。详细介绍与对比参见下表:
4.1.2 评测问题集
这里构建评测问题集的方法采用了微软 GraphRAG 的用户画像-任务假设-问题提出范式(详细介绍请参见我的 Day 3 分享帖),一共生成 5 * 5 * 5 = 125 个问题。每个问题都要求需要对整个语料集进行全面的理解。
4.1.3 基线模型
作者挑选了当时 RAG 领域最具有代表性的 4 种 SOTA 方案作为对照组:
提示:点击对应模型名称可跳转至相应提出论文。
4.1.4 实施与评估细节
工程实现细节
LLM 引擎:LightRAG 的所有 LLM 模块(包括实体抽取、画像生成、关键词生成以及最终回答)默认统一采用 GPT-4o-mini。
向量数据库:采用轻量高效的 nano vector database 进行向量数据的存储与快速检索。
文本切片大小 (Chunk Size):在所有数据集上统一固定为 1200 Token。
二次抽取参数 (Gleaning Parameter):LightRAG 和 GraphRAG 的 Gleaning 次数均设置为 1(即在提取实体/关系时只做 1 轮补充提取,保证对比的公平性)。
评估方式:参考微软的 GraphRAG 研究,采用 LLM-as-a-Judge 技巧,用 GPT-4o-mini 作为独立裁判,让 LightRAG 与 Baseline 生成的回答 “打擂台” 。
作者在本文中选取的评估指标在下表列出:
最后,为了消除位置偏差(即大模型可能倾向于选择先出现的 Option A,或后出现的 Option B),在打分时,系统会自动对换两个回答的输入顺序(先 PK:A vs B,再 PK:B vs A)。只有消除顺序影响后的综合判定才会被计入最终的胜率统计。
这里可以比对一下 LightRAG 与 GraphRAG 的评估方式。它们都采用了全面性、多样性、赋能度这三个关键指标。不同的是,LightRAG 是通过 “综合表现” 来判断孰胜孰负;GraphRAG 则是在每一个指标分别判定胜负。此外,GraphRAG 还额外引入了 “直接性” 这一对抗指标。
4.2 LightRAG 与基线模型的表现对比
下表给出了实验数据:

根据上表,我们可以发现:
在面对大 Token 规模和跨文档复杂查询时,图增强 RAG(LightRAG、GraphRAG) 与 传统切片检索(Naive RAG、HyDE、RQ-RAG) 拉开了量级上的差距:
数据规模越大,差距越悬殊:以数据量最大的 Legal(法律)数据集 为例,传统的 Naive RAG、HyDE、RQ-RAG 等基线方法的胜率直接暴跌到了 20% 左右。
这体现出了图增强 RAG 相比起传统的切片检索 RAG 在大规模语料集上更能捕获复杂语义依赖,对知识理解更全面,更具备泛化能力。
在所有的评估维度中,LightRAG 在多样性维度上的优势最为突出,尤其是在法律(Legal)这种复杂语料库中。这归功于 LightRAG 的双层检索范式。它能够同时抓取微观实体细节和宏观主题框架,从而为 LLM 提供全方位、多视角的丰富上下文,生成视角丰富的回答。
LightRAG 在 Agriculture、CS、Legal 等大型复杂数据集上都全面、持续地超越了 GraphRAG。作者对此做了归因分析:
4.3 消融实验
作者在这一节设计了两组消融对比,分别验证了 “双层检索” 和 “图结构语义” 的价值。

4.3.1 消融实验一:双层检索机制的必要性
作者把 LightRAG 拆成了三个变体进行对比:
4.3.2 消融实验二:图谱语义 vs 原始文本
前面提到过,LightRAG 在提供给 LLM 生成回答的上下文中,会包含 “原始文档片段摘录” 。作者在这里做了一个消融实验,如果在给 LLM 生成回答的 Context 中,完全把原始文本切片给删掉,只保留图谱抽取出的实体和关系描述,结果会怎样?
这就是实验变体 -Origin 。令人意外的是,-Origin 变体的性能不仅没有显著下降,在农学(Agriculture)和混合(Mix)数据集上的一些指标反而提升了。作者给出的归因解释是:
高浓缩的信息密度:在图索引构建阶段(LLM Profiling),提取出的实体和关系摘要已经包含了回答问题所需的绝大部分核心事实。
过滤掉了“文本噪声(Noise)”:原始文本切片中通常充斥着大量的无关上下文。直接把原始切片塞给 LLM,反而会引入语义噪音(Noise),干扰 LLM 的推理逻辑。
4.4 案例研究
作者展示了一个 GraphRAG 与 LightRAG 生成答案以及 LLM 裁判给出优劣评判的示例。

4.5 模型开销与数据更新适应性分析

表格中,Textract 表示实体与关系抽取过程中消耗的 Token 数,Cmax 表示单次 API 调用允许的最大 Token 数,Cextract 表示抽取过程中需要的总 API 调用次数。
GraphRAG 在预处理阶段生成了共计 1399 个社群,610个二级社群。这里采用二级社群来做对比实验。在检索阶段,每个社群报告平均 1000 Tokens ,因此总共 610 * 1000 Tokens 。而 LightRAG 只需要实现局部关键词与全局关键词,共计不到 100 Tokens 。这也导致了 LightRAG 在 LLM API 调用次数上非常少。
对于动态增量更新阶段,由于 GraphRAG 的社群结构是根据语料库全局生成的,一旦加入新文档,就要重新生成社群结构与社群摘要,而 LightRAG 只需要提取出图谱就可以和原有图谱取并集,实现平滑并入。
这也说明了,LightRAG 为什么被称为「Light」。
注:GraphRAG 允许自行选择不同层级的社群来增强生成。
5. 结论
这篇研究通过集成一种基于图结构的索引方法,推动了检索增强生成(RAG)技术的进步,显著提升了信息检索的效率与语义理解能力。LightRAG 利用覆盖全貌的知识图谱来实现快速且高度相关的文档检索,从而赋予系统对复杂查询进行深层理解的能力。
其创新的双层检索范式能够兼顾具体细节信息与抽象宏观概念的提取,灵活满足多样化的用户需求。此外,LightRAG 具备无缝的增量更新能力,确保系统能够实时融入新数据并作出迅速响应,从而在动态数据环境下持久保持其高效性。
总的来说,LightRAG 在“效率”与“效果”两个维度上均展现出了卓越的性能,在大幅降低大语言模型(LLM)推理成本的同时,显著提升了信息检索与生成的响应速度及内容质量。