港大黄超团队 投稿 量子位 | 公众号 QbitAI
简单高效的大模型检索增强系统LightRAG,香港大学黄超团队最新研究成果。
开源两周时间在GitHub上获得将近5k标星,并登上趋势榜。
该模型不仅能够全面理解实体之间的复杂关系,从而处理更复杂的问题,还大幅降低了大模型检索增强系统的成本。总体而言,LightRAG具备以下优势:
简单快速的大模型检索增强生成(RAG)系统
全面理解复杂实体依赖关系的信息检索
通过双层检索范式实现高效的信息检索
快速适应动态数据变化
检索增强生成(RAG)系统通过集成外部知识源来增强大语言模型(LLM),从而提供更准确且符合上下文的响应,满足用户需求。然而,现有的RAG系统存在显著局限性,包括依赖平面数据表示和缺乏全局的上下文感知,导致回答零散,难以捕捉复杂的依赖关系。
为了解决这些问题,团队提出LightRAG,它在文本索引和检索过程中引入了图结构。该创新框架采用双层检索系统,增强了从低层次和高层次知识的全面信息检索。
此外,图结构与向量表示的结合有助于高效地检索相关实体及其复杂的关联关系,大幅提高了响应速度,同时保持上下文的相关性。此外,该系统能够高效地在动态环境里处理数据的更新变化,使其在快速变化的数据环境中仍然保持快速有效的响应能力。
LightRAG框架
基于图的文本索引
图增强的实体和关系抽取
LightRAG 将文档分段为较小的块,利用大语言模型(LLM)识别和抽取各种实体(如名字、日期、地点和事件)及其之间的关系。通过这一过程收集的信息用于构建一个全面的知识图谱,展示整个文档集合中的连接关系。我们将该图生成模块形式化地表示如下:
其中, 代表生成的知识图。为了创建这些数据,我们对原始文本文档 进行了三个主要的处理步骤,这些步骤利用大语言模型(LLM)进行文本分析和处理:
抽取实体及其关联关系 :该函数利用大语言模型(LLM)从文本数据中识别实体(节点)及其关系(边)。例如,它可以从“心脏病医生评估症状以识别潜在的心脏问题”中抽取“心脏病医生”和“心脏病”等实体,以及“心脏病医生诊断心脏病”这样的关系。为了提高效率,原始文本 被分割成多个块 。
LLM生成键值对分析 :我们利用大语言模型(LLM)的分析功能 为每个实体节点 和关系边 生成文本键值对 。每个索引键是一个词或短语,用于高效检索,而相应的值则是文本描述,总结了来自外部数据的相关片段,以便于后续的文本生成。实体通常仅使用其名称作为索引键,而关系则可能通过 LLM 的增强,包含来自相关实体的全局主题,从而生成多个索引键。
图文本所以去重 : 最后,我们实现了去重功能 ,能够识别并合并来自不同文本片段 的相同实体和关系。通过减少图的大小,这一过程有效降低了在知识图 上进行操作的开销,从而提高了数据处理效率。
LightRAG 通过其基于图的文本索引范式具备两个显著优势:
全面的信息理解: 构建的图结构能够从多跳连接关系中提取全局信息,大大提升了 LightRAG对复杂实体关联性的理解能力, 以针对复杂查询提供上下文更丰富的生成能力。
增强的检索性能: 图中生成的键值数据结构经过优化,能够实现快速且精准的检索。这相比于现有方法中不够精确的嵌入匹配和效率低下的文本块遍历技术,提供了更优的替代方案。
快速适应动态增量知识库
为了高效适应不断变化的数据并确保响应的准确性和相关性,LightRAG 通过增量更新知识库,而无需重新处理整个外部数据库对于新文档 ,增量更新算法使用与之前相同的基于图的索引步骤 进行处理,生成 。随后,通过对节点集 和 以及边集 和 进行并集操作,将新的图数据与原始数据结合起来。
LightRAG 实现的动态增量知识库处理方法旨在满足以下目标:
无缝整合新数据:增量更新模块通过一致的方法处理新信息,使其能够在不破坏现有图结构的情况下整合新的外部数据库。此方法保持了既有连接的完整性,确保历史数据可访问,同时丰富了图结构,避免了冲突或冗余的产生。
降低计算开销:通过消除重建整个索引图的需求,该方法显著减少了计算开销,加速了新数据的吸收。因此,LightRAG 能够保持系统的准确性,提供最新信息,并节约资源,确保用户能够及时获得更新,从而提升整体 RAG 系统的有效性。
双层检索范式
为了从特定文档片段及其复杂依赖关系中检索相关信息,LightRAG 提出了在详细和抽象层面生成查询键的策略。
具体查询:这些查询注重细节,通常参考图中的特定实体,要求精准检索与特定节点或边相关的信息。例如,一个具体查询可能是:“《傲慢与偏见》的作者是谁?”
抽象查询:与具体查询相比,抽象查询更加概念化,涵盖广泛的主题或总结,而不是直接与特定实体相关。例如,一个抽象查询的例子是:“人工智能如何影响现代教育?”
为了适应不同类型的查询,LightRAG 在双层检索范式中采用了两种不同的检索策略。该设计确保能够有效处理具体问题,同时应对抽象查询,从而为用户提供量身定制的相关响应。
Low-Level信息检索:这一层次主要聚焦于检索特定实体及其相关属性或关系。低层次检索中的查询注重细节,目标是提取图中特定节点或边的精准信息。
High-Level信息检索:该层次针对更广泛的主题和总体概念。高层次检索汇聚多个相关实体和关系的信息,提供对更高层次概念和总结的见解,而非具体细节。
融合图结构和向量表示以实现高效检索
通过将图结构与向量表示相结合,模型能够更深入地理解实体之间的相互关系。这种协同作用使检索算法能够有效地利用局部和全局关键词,简化搜索过程并提高结果的相关性。
查询关键词提取:对于给定的查询 ,首先提取局部查询关键词 和全局查询关键词 。
关键词匹配:算法使用高效的向量数据库,将局部查询关键词与候选实体匹配,全局查询关键词与与全局键关联的关系匹配。
引入高阶关联性:为了增强查询与高阶关联性的结合,LightRAG进一步收集已检索图元素的局部子图中的相邻节点。此过程涉及集合 ,其中 和 分别代表已检索节点 和边 的一跳相邻节点。
这种双层检索范式不仅通过关键词匹配实现了高效的相关实体和关系检索,还通过结合构建的知识图谱中的相关结构信息,提升了结果的全面性。
基于大模型的检索增强生成
利用检索到的信息 ,LightRAG 通过大语言模型(LLM)生成答案。这些数据包括由分析函数 生成的相关实体和关系 ,其中包含实体和关系的名称、描述以及原始文本中的摘录。
上下文整合与答案生成
通过将查询与多源文本统一,LLM 生成符合用户需求的答案,确保与查询意图一致。该方法通过将上下文和查询整合到 LLM 模型中,简化了答案生成的过程。
LightRAG框架的复杂度分析
团队对提出的 LightRAG 框架的复杂度进行了具体分析,主要分为两个部分。
索引阶段:在这一阶段,我们使用大语言模型(LLM)从每个文本块中提取实体和关系。因此,LLM 需要调用 次。值得注意的是,这个过程没有额外开销,使得我们的方法在处理新文本更新时非常高效。
检索阶段:对于每个查询,团队首先利用 LLM 生成相关的关键词。与现有的检索增强生成(RAG)系统类似,团队的检索机制依赖于基于向量的检索。然而,与传统 RAG 系统检索文本块不同,团队专注于检索实体和关系。相比于 GraphRAG 中基于社区遍历的方法,这种方式显著减少了检索开销。
模型评估
评估数据集
为了对 LightRAG 进行全面分析,团队从 UltraDomain Benchmark中选择了四个数据集。UltraDomain 数据来源于 428 本大学教科书,涵盖 18 个不同领域,包括农业、社会科学和人文学科。在这些领域中,团队选择了农业、计算机科学、法律和混合领域的数据集。每个数据集包含 60 万到 500 万之间的 tokens。以下是实验中使用的四个领域的具体介绍:
农业:该领域专注于农业实践,涵盖主题包括养蜂、蜂箱管理、作物生产以及疾病防治等。
计算机科学:该领域主要聚焦于计算机科学,涵盖数据科学和软件工程的关键领域,特别强调机器学习和大数据处理,内容包括推荐系统、分类算法以及使用Spark进行的实时分析。
法律:该领域以企业法律实践为中心,涉及企业重组、法律协议、监管合规和治理,重点关注法律与金融领域的交集。
混合领域:该领域包含丰富多样的文学、传记和哲学文本,涵盖文化、历史和哲学等广泛学科。
评估问题生成
为了评估 RAG 系统在高层次意义建构任务中的有效性,团队将每个数据集的所有文本内容整合为上下文,并采用 GraphRAG 中描述的生成方法。具体而言,团队指示 LLM 生成五个 RAG 用户,每个用户提出五个任务。每个生成的用户都附有描述,说明其专业知识及提出问题的动机。同时,每个用户任务也有相应的描述,强调用户在使用 RAG 系统时的潜在意图。对于每个用户任务组合,LLM 会生成五个需要理解整个语料库的问题。最终,每个数据集生成 125 个问题。
现有方法对比
LightRAG在所有数据集上与以下最新方法进行了比较:
Naive RAG:此模型作为现有RAG系统的代表方法。它将原始文本分割为多个块,并使用文本嵌入将它们存储在向量数据库中。对于查询,Naive RAG 生成向量化表示,并根据表示的相似性直接检索文本块,确保高效且简单的匹配。
**RQ-RAG:该方法利用 LLM 将输入查询分解为多个子查询。这些子查询通过显式的技术(如重写、分解和消歧)来增强检索的准确性。
HyDE:该方法利用 LLM 基于输入查询生成假设文档,然后使用这些生成的文档检索相关文本块,最后将这些文本块用于生成最终答案。
GraphRAG:这是一个图增强的 RAG 系统,利用 LLM 从文本中提取实体和关系,将它们表示为节点和边,并为这些元素生成相应的描述。它将节点聚合成社区,并生成社区报告以捕捉全局信息。在处理高层次查询时,GraphRAG 通过遍历这些社区来检索更全面的信息。
为复杂高层次语义查询定义准确的“真实答案”是一项极具挑战性的任务。为了解决这一问题,团队基于现有的 GraphRAG 工作,采用了基于 LLM 的多维比较方法。团队使用 GPT-4o-mini 对每个基线模型与团队的 LightRAG 进行一对一比较,总共设定了四个评估维度,包括:
全面性:答案在多大程度上涵盖了问题的各个方面和细节?
多样性:答案提供的不同视角和相关见解有多丰富?
赋能性:答案在多大程度上帮助读者理解主题并做出明智的判断?
整体表现:该维度评估前三个标准的综合表现,以确定最佳的总体答案。
LLM 直接比较每个维度中的两个答案,并选择每个标准的优胜答案。在确定三个维度的优胜答案后,LLM 将这些结果组合起来,以确定整体表现更好的答案。为了确保评估的公平性,并减少由于答案在提示中呈现顺序可能产生的偏差,团队交替调整每个答案的位置,并根据此计算胜率,最终得出结果。
评估结果
根据表中评估结果,团队得出以下结论:
图增强RAG系统在大规模语料库中的优势: 在处理大量 tokens 和复杂查询时,图增强的 RAG 系统(如 LightRAG 和 GraphRAG)始终优于纯块检索方法,如 Naive RAG、HyDE 和 RQ-RAG。随着数据集规模的增加,这种性能差距尤为明显。例如,在最大的法律数据集中,差距显著扩大,基线方法的胜率仅约为 20%,而 LightRAG 占据主导地位。这一趋势突显了图增强 RAG 系统在捕捉大规模语料库中复杂语义依赖关系的优势,有助于更全面地理解知识并提升泛化性能。
LightRAG生成结果多样性: 与其他方法相比,LightRAG 在多样性指标上表现出显著优势,尤其是在较大的法律数据集中。其在这一领域的一贯领先,突显了 LightRAG 在生成多样化生成结果方面的有效性,特别是在需要多样内容的场景中。团队将这种优势归因于 LightRAG 的双层检索范式,该范式促进了从低层次和高层次维度进行全面的信息检索。通过图增强的文本索引,该方法有效捕捉了查询的完整上下文。
LightRAG相对于GraphRAG的优势: 虽然 LightRAG 和 GraphRAG 都采用基于图的检索机制,但 LightRAG 在性能上始终优于 GraphRAG,尤其是在包含复杂语言上下文的大型数据集中。在农业、计算机科学和法律数据集中(每个数据集包含数百万个 tokens),LightRAG 显示出明显的优势,显著超越 GraphRAG,突显了其在多样化环境中对信息全面理解的强大能力。
消融实验
团队还进行了消融研究,以评估双层检索范式的影响以及LightRAG中基于图的文本索引的有效性。结果如表所示。
双层检索范式的有效性
团队首先分析了低层次和高层次检索范式的效果,比较了两种消融模型(分别去掉一个模块)与完整的 LightRAG 在四个数据集上的表现。以下是团队对不同变体的主要观察结果:
仅Low-Level检索:去掉高层次检索的 -High 变体导致几乎所有数据集和指标上的性能显著下降。这一下降主要是由于该变体过于强调特定信息,集中于实体及其直接邻居。尽管这种方法能够深入探索直接相关的实体,但在处理需要全面见解的复杂查询时表现不佳。
仅High-Level检索:去掉低层次检索的 -Low 变体通过利用实体间的关系来捕捉更广泛的内容,而非专注于具体实体。这种方法在全面性方面具有显著优势,能够获取更多样化和广泛的信息。然而,其代价是对特定实体的深入分析较少,这限制了其提供高度详细见解的能力。因此,这种仅高层次的检索方法在需要精确、详细答案的任务中可能表现欠佳。
混合模式:混合模式,即 LightRAG 的完整版本,结合了低层次和高层次检索方法的优势。它既能检索更广泛的关系,又能深入探索具体实体。这种双层方法在检索过程中兼具广度和深度,能够提供数据的全面视图。因此,LightRAG 在多个维度上表现出良好的平衡。
构建语义图在RAG中的优势
团队在检索过程中去掉了对原始文本的使用。令人意外的是,结果显示的变体 -Origin 在所有四个数据集上并没有显著的性能下降。在某些情况下,这一变体甚至表现出提升(例如在农业和混合数据集中)。团队将这一现象归因于基于图的索引过程有效地提取了关键信息,提供了足够的上下文来回答查询。此外,原始文本往往包含无关信息,这可能在响应中引入噪音。
模型开销分析
团队从两个关键角度比较了 LightRAG 与表现最优的对比方法GraphRAG的成本。首先,团队考察了在索引和检索过程中使用的 tokens 数量和 API 调用次数。其次,团队分析了这些指标在处理动态环境中的数据变化时的表现。法律数据集上的评估结果如表所示。在此背景下, 代表实体和关系抽取的 token 开销,表示每次 API 调用允许的最大 token 数量,而 则代表抽取所需的 API 调用次数。
检索阶段:GraphRAG 生成了1399个社区,其中610个二级社区在本实验中被用于检索。每个社区的平均报告为1000个tokens,总 token消耗为610000个 tokens(610个社区×每个社区1000个tokens)。此外,GraphRAG需要逐个遍历社区,这导致了数百次API调用,显著增加了检索开销。相比之下,LightRAG 优化了这一过程,仅使用少于100个tokens 进行关键词生成和检索,且整个过程只需要一次API调用。这种效率得益于团队整合图结构和向量化表示的检索机制,从而消除了事先处理大量信息的需求。
增量数据更新阶段:该阶段旨在应对动态现实场景中的数据变化。在实体和关系抽取上,两个模型表现出类似的开销。然而,GraphRAG 在处理新增数据时显示出显著的低效性。当引入与法律数据集同等规模的新数据集时,GraphRAG必须拆除其现有的社区结构以整合新实体和关系,随后重新生成社区结构。这一过程产生了大约每个社区报告5000个tokens的巨大开销。考虑到有1399个社区,GraphRAG需要大约1399×2×5000个tokens来重建原有和新的社区报告——这一高昂的代价凸显了其低效性。相比之下,LightRAG无缝地将新抽取的实体和关系整合到现有图中,无需完全重建。这种方法在增量更新过程中显著降低了开销,展现出其卓越的效率和成本效益。
总结
本研究通过引入基于图的索引方法,对检索增强生成(RAG)进行了改进,从而提升了信息检索的效率和理解能力。LightRAG 利用全面的知识图,促进快速且相关的文档检索,帮助用户更深入地理解复杂查询。其双层检索范式能够提取具体和抽象的信息,以满足多样化的用户需求。此外,LightRAG 的无缝增量更新功能确保系统能够随时响应新信息,保持长期的有效性。总体而言,LightRAG 在效率和效能上表现卓越,显著提升了信息检索和生成的速度与质量,同时大幅度降低了基于LLM检索生成成本。
项目链接:https://github.com/HKUDS/LightRAG
港大数据智能实验室:https://sites.google.com/view/chaoh/group-join-us
108页PDF小册子:搭建机器学习开发环境及Python基础
全网最全 Python、机器学习、AI、LLM 速查表(100 余张)
Obsidian AI写作神器:一键配置DeepSeek,写作效率飙升1000%!
基于 QAnything 的知识库问答系统:技术解析与应用实践【附代码】