项目地址:https://github.com/HKUDS/LightRAG
实验室主页: https://sites.google.com/view/chaoh
港大黄超团队最新开源的LightRAG,结合了图结构与双层检索机制,显著降低了大模型检索增强的成本,同时提升了信息检索的准确性和效率。首先,通过引入图结构,LightRAG能够更好地捕捉实体之间的复杂依赖关系,实现全面的信息理解。其次,其双层检索策略允许系统同时处理具体和抽象的查询,确保用户获得既相关又丰富的响应。此外,LightRAG具备快速适应新数据的能力,使其在动态环境中保持高效和准确。综合来看,这些优势使得LightRAG在处理复杂查询时表现出色,能够提供更具上下文相关性的答案。
1.研究背景
检索增强生成(RAG)是增强大型语言模型(LLM)性能的技术。LLM 应用广泛,但存在局限,如无法涵盖所有领域最新知识,对特定领域或复杂问题回答不够准确全面。RAG 系统通过整合外部知识源解决这些问题。它在生成回答时,结合从外部知识数据库检索的信息与 LLM 自身能力,从而提高回答的准确性、全面性以及符合用户需求的程度,增强了 LLM 在实际应用中的实用性和有效性。
现有 RAG 方法主要通过整合外部知识源来增强大型语言模型(LLM),包括检索组件获取相关文档和生成组件生成回答。然而,这些方法存在以下缺点和问题:
- 数据表示局限:现有方法大多依赖扁平数据表示,这种方式难以捕捉实体之间复杂的关系信息。例如,在处理涉及多个相关实体且关系复杂的查询时,无法深入理解实体间的内在联系,从而限制了信息检索的准确性和全面性。
- 上下文连贯性差:这些系统往往缺乏足够的上下文感知能力。当面对涉及多个实体及其相互关系的查询时,难以保持回答的连贯性,导致生成的回答可能无法完全满足用户的查询需求,无法提供一个完整、逻辑连贯的解决方案。
- 知识更新困难:部分现有方法在知识图的动态更新和扩展方面存在不足。随着新知识的不断产生,系统难以有效地将新信息纳入到已有的知识结构中,导致知识的时效性和完整性受到影响,无法及时为用户提供最新的准确信息。
- 检索效率不足:对于大规模查询,一些现有方法采用的检索方式效率较低,例如可能依赖暴力搜索。这种方式在处理大量数据时,会消耗过多的计算资源和时间,导致检索速度慢,无法满足实时性要求较高的应用场景。
2.LightRAG框架
2.1 RAG框架
RAG框架可以被系统地分为两个主要部分:检索部分和生成部分。前者负责根据查询(query)返回相关的信息片段;而生成部分则由通用的生成模型,例如大语言模型,根据检索的信息和查询生成高质量回答。检索部分主要包括两大功能:
- 数据索引:该功能基于外部数据库的内容,构建一种特定的数据结构,支持快速检索、高级的内容总结等。
- 数据检索:根据外部查询,利用索引数据结构返回相关内容。
在本文中,LightRAG致力于实现几项对上述RAG系统至关重要的效率和效果指标:
- 全面的信息检索:LightRAG的索引函数必须善于提取全局信息,这对于增强模型有效回答查询的能力至关重要。它通过基于图的文本索引范式,利用图结构来表示不同实体之间的相互依存关系,从而能够从多跳子图中提取全局信息。这种方式使LightRAG能够处理复杂的查询,这些查询可能跨越多个文档块,大大提高了信息检索的全面性。
- 高效和低成本的检索:LightRAG的索引数据结构需要实现快速且低成本的检索,以有效处理大量查询。它通过图增强的实体和关系提取,将文档分割为更小的部分进行处理,优化了检索过程。同时,其采用的键值数据结构是从图中派生出来的,针对快速和精确检索进行了优化,相比于现有方法中不太准确的嵌入匹配方法和低效的块遍历技术,提供了更优越的检索性能,从而降低了检索成本。
- 面向数据更新的快速迭代:LightRAG需要能够快速且高效地调整数据结构,以纳入来自外部知识库的新信息。它采用增量更新算法,对于新文档,无需重新处理整个外部数据库,而是使用相同的基于图的索引步骤进行处理,然后将新的图数据与原始数据合并。这种方式不仅减少了计算开销,还确保了系统能够及时适应数据的变化,保持在动态环境中的相关性和有效性。
2.2 基于图的文本索引
LightRAG采用了一种基于图的文本索引方法,主要包括以下几个关键方面:
实体和关系提取
- 文档分割与初步处理:LightRAG首先将文档分割成更小、更易于管理的片段。这种策略避免了对整个文档进行分析,能够快速识别和获取相关信息。
- 利用LLM进行提取实体和关系:借助大型语言模型(LLM)来识别和提取各种实体(例如名称、日期、位置、事件等)以及它们之间的关系。例如,从文本“Cardiologists assess symptoms to identify potential heart issues.”中,可以提取出实体“Cardiologists”和“Heart Disease”,以及关系“Cardiologists diagnose Heart Disease”。
- LLM分析生成键-值对:采用LLM驱动的分析函数为每个实体节点和关系边生成一个文本的键值对。每个索引键是一个单词或短短语,便于高效检索,对应的值是一个文本段落,总结了来自外部数据的相关片段,有助于文本生成。实体使用其名称作为唯一索引键,而关系可能有多个索引键,这些索引键源于LLM增强,包括来自连接实体的全局主题。
- 去重优化图操作:最后实施去重函数,它识别并合并来自原始文本不同片段的相同实体和关系。通过最小化图的大小,有效减少了与图操作相关的开销,从而实现更高效的数据处理。
基于图的文本索引的优势
- 全面信息理解:构建的图结构能够从多跳子图中提取全局信息,极大地增强了LightRAG处理复杂查询的能力,这些复杂查询可能跨越多个文档块。
- 增强检索性能:从图中派生的键-值数据结构针对快速和精确检索进行了优化。这为现有方法中不太准确的嵌入匹配方法和低效的块遍历技术提供了一种更优越的替代方案。
快速适应增量知识库
- 增量更新算法:为了有效适应不断变化的数据,LightRAG采用增量更新算法。对于新文档,该算法使用与之前相同的基于图的索引步骤进行处理,得到新文档的图结构索引。
- 新数据与原始数据的合并:随后,LightRAG通过取新旧节点集以及新旧边集的并集,将新的图数据与原始数据合并。
- 快速适应的目标与优势:通过对新信息应用一致的方法,增量更新模块允许LightRAG集成新的外部数据库,而不会破坏现有图结构。这确保了历史数据仍然可访问,同时丰富了图,且没有冲突或冗余。此外,由于无需重建整个索引图,这种方法减少了计算开销,促进了新数据的快速同化。因此,LightRAG能够保持系统准确性,提供最新信息,并节约资源,确保用户及时获得更新,提高了整体RAG的有效性。
2.3 双层检索范式
在RAG任务面临的查询请求中,主要存在以下两种类型:
- 特定查询(Specific Queries):这些查询以细节为导向,通常参考图中的特定实体,需要精确检索与特定节点或边缘相关的信息。例如,“Who wrote ’Pride and Prejudice’?”就是一个特定查询,它明确指向特定的作品及其作者这一实体关系。
- 抽象查询(Abstract Queries):抽象查询更具概念性,涵盖更广泛的主题、总结或总体主题,与特定实体没有直接关联。例如,“How does artificial intelligence influence modern education?”这个问题涉及到人工智能和现代教育这两个广泛的概念领域,不局限于特定的实体。
为了应对这两种不同的查询请求,LightRAG设计了两种不同的检索策略:
- 低级别检索(Low-Level Retrieval):这种检索策略主要聚焦于检索特定实体以及它们相关的属性或关系。查询是细节导向的,旨在从图中提取关于特定节点或边缘的精确信息。比如在一个包含众多学术论文的知识图中,如果查询某一特定研究人员的某项具体研究成果,低级别检索就会针对该研究人员实体及其相关研究成果的关系进行精确查找。
- 高级别检索(High – Level Retrieval):该检索策略旨在处理更广泛的主题和总体主题。这类查询会聚合多个相关实体和关系的信息,提供对更高级别概念和总结的洞察,而不是特定细节。例如,当查询“人工智能在医疗领域的应用趋势”时,高级别检索会综合多个与人工智能和医疗相关的实体及关系信息,给出关于应用趋势的总体概述。
整合图和向量进行检索
LightRAG将图结构和向量表示进行结合,从而同时满足检索的高效性和对实体间关联性的感知,具体做法如下:
– **查询关键词提取(Query Keyword Extraction)**:对于给定的查询,LightRAG的检索算法首先提取局部查询关键词和全局查询关键词。这一步骤是为了全面捕捉查询中的关键信息,以便更好地在知识图中定位相关实体和关系。
– **关键词匹配(Keyword Matching)**:算法使用高效的向量数据库来匹配局部查询关键词与候选实体,以及全局查询关键词与与全局键相关的关系。通过这种方式,能够快速定位到与查询相关的知识图元素。
– **纳入高阶相关性(Incorporating High-Order Relatedness)**:为了增强查询的高阶相关性,LightRAG进一步收集检索到的图元素在局部子图中的相邻节点。这样可以更全面地考虑与查询相关的知识图结构,提高检索结果的准确性和全面性。
双层检索范式的优势
- 通过在双层检索范式中结合特定查询和抽象查询的处理方式,以及低级别检索和高级别检索策略,并整合图和向量进行检索,LightRAG能够有效适应多样化的查询类型。
- 不仅可以精确检索到与特定实体相关的详细信息,还能获取更广泛主题的相关知识,确保系统能够为用户提供全面且相关的回答,满足不同用户的需求。
3.实验
3.1 实验设置
评估数据集:从UltraDomain基准中选取了四个具有不同特点的数据集。Agriculture数据集包含12个文档共2,017,886个令牌,主要围绕农业实践相关主题。CS数据集有10个文档和2,306,535个令牌,侧重于计算机科学领域的多个方面。Legal数据集最大,含94个文档及5,081,069个令牌,聚焦公司法律实践。Mix数据集则包含61个文档共计619,009个令牌,涵盖多种学科的文本。这些数据集涵盖了不同领域,为全面评估模型性能提供了基础。
问题生成:将每个数据集的所有文本内容作为上下文,采用特定方法生成问题。具体是让一个大型语言模型(LLM)生成五个RAG用户以及每个用户的五个任务,对于每个用户-任务组合,LLM再生成五个需要理解整个语料库的问题,这样每个数据集最终可得到125个问题,以此来测试模型对各种问题的处理能力。
实施和评估细节:在实验中,使用nano向量数据库管理向量数据,LightRAG中基于LLM的操作默认使用GPT-4o-mini,所有数据集的块大小统一设为1200,部分参数固定。采用基于LLM的多维比较方法评估,定义了全面性、多样性、赋能性和总体四个维度。由于RAG查询标准答案难定义,利用GPT-4o-mini对基线和LightRAG排名,通过交替放置答案等方式确保公平评估并计算赢率得出结果。
3.2 基线方法对比
在不同的评估维度和四个选定的数据集(Agriculture、CS、Legal、Mix)上,将LightRAG与各种基线模型进行比较。实验结果如下图所示。在Agriculture数据集上,例如在全面性维度,Naive RAG的胜率为32.69%,LightRAG为67.31%;在多样性维度,Naive RAG为24.09%,LightRAG为75.91%等。在CS数据集、Legal数据集和Mix数据集上也呈现出类似的对比结果,LightRAG在多数评估维度上的胜率显著高于基线模型。从结果中,可以得到以下结论:
- 图增强RAG系统的优势:在处理大规模语料和复杂查询时,像LightRAG和GraphRAG这样基于图的RAG系统表现出明显优势。随着数据集规模增大,这种优势更加突出。例如在Legal数据集(最大的数据集)中,基线方法的胜率仅约20%,而LightRAG占据主导地位。这表明图增强的RAG系统能够更好地捕捉大规模语料库中的复杂语义依赖关系,有助于更全面地理解知识,从而提高了泛化性能。
- LightRAG在多样性上的优势:与各种基线模型相比,LightRAG在多样性指标上展现出显著优势,尤其在较大的Legal数据集上表现更为突出。这得益于LightRAG的双层检索范式,它能够从低级别和高级别两个维度全面检索信息,有效利用基于图的文本索引来完整地捕捉查询上下文,从而生成更广泛多样的回答。
3.3 消融实验
文章还对双层检索机制,以及LightRAG中的语义图进行了消融实验,结果如下所示,从中可以观察到以下特点:
- 低级别-高级别检索单独作用的结果
- 仅低级别检索(-High变体):去除高级别检索后,在几乎所有数据集和评估指标上性能都显著下降。例如在Agriculture数据集的全面性维度,从LightRAG的67.31%下降到35.79%。
- 仅高级别检索(-Low变体):优先考虑高级别检索而去除低级别检索时,在全面性上有一定优势,但在考察特定实体细节的指标上可能受限。如在Agriculture数据集的多样性维度,从LightRAG的75.91%下降到35.09%。
- 语义图在检索中的效果
- 当在检索过程中去除原始文本(-Origin变体),在四个数据集上并没有出现显著的性能下降,甚至在某些数据集(如Agriculture和Mix)还有所提升。
结果分析
- 双层检索的必要性:仅低级别检索因过度关注特定实体及其直接邻居,难以处理复杂查询所需的全面洞察信息,导致性能不佳。仅高级别检索虽能获取更广泛信息,但在特定实体细节考察上能力有限。这表明双层检索方法(即同时包含低级别和高级别检索)对于确保检索的广度和深度是必要的,能够提供更全面的数据视图,从而实现平衡的性能表现。
- 语义图的有效性:去除原始文本后性能未显著下降,归因于在基于图的索引过程中有效提取了关键信息。这说明图结构本身能够为回答查询提供足够的上下文,而原始文本可能包含一些无关信息,会对检索结果产生干扰。
3.4 样例学习
在样例学习中,文章展示了一个特定案例,比较LightRAG和GraphRAG对一个机器学习问题的回答情况。该案例聚焦于“Which methods can normalize the feature values for effective machine learning?”这一问题。两者的回答和裁定如下
在由大型语言模型(LLM)作为评判的所有评估维度上,LightRAG均优于GraphRAG。在全面性维度,LightRAG涵盖了更广泛的机器学习指标,展示出更强的发现相关信息的能力。在多样性和赋能性维度,LightRAG不仅提供了更多样的信息,还能给予读者更有价值的内容,使其能够更好地理解和应用相关知识。这些结果说明了以下问题:
- 图索引范式的优势:LightRAG在全面性上的优势得益于其图索引范式,该范式在精确的实体和关系提取以及LLM分析方面表现出色。通过有效地识别和关联相关的实体和关系,能够更全面地涵盖问题相关的各个方面。
- 分层检索范式的作用:在多样性和赋能性方面的成功归因于LightRAG的分层检索范式。它通过低级别检索深入探索相关实体,同时通过高级别检索获取更广泛的知识领域,两者结合能够从不同层次和角度满足对信息的需求,从而提高回答的质量和多样性。
3.5 模型开销和适应性分析
文章从两个关键角度比较LightRAG和表现最佳的基线模型GraphRAG的成本。第一个角度是检查在索引和检索过程中使用的令牌数量以及API调用次数。第二个角度是分析在动态环境中处理数据变化时这些指标的情况。实验以Legal数据集为例进行评估。
- 检索阶段:GraphRAG在检索过程中生成1,399个社区,其中610个二级社区用于实际检索。每个社区报告平均包含1,000个令牌,总共消耗610,000个令牌(610个社区×1,000个令牌/社区)。此外,GraphRAG需要逐个遍历社区,导致数百次API调用。相比之下,LightRAG在这个过程中使用少于100个令牌用于关键词生成和检索,并且整个过程仅需一次API调用。
- 增量数据更新阶段:在处理新数据时,GraphRAG和LightRAG在实体和关系提取方面的开销相似。但是,当引入与Legal数据集相同大小的新数据集时,GraphRAG需要拆除现有的社区结构来纳入新的实体和关系,然后完全重新生成。这一过程每个社区报告大约需要5,000个令牌,对于1,399个社区,大约需要1,399×2×5,000个令牌,成本极高。而LightRAG可以无缝地将新提取的实体和关系集成到现有图中,无需完全重建,在增量更新过程中开销显著更低。
在检索阶段,LightRAG的优势在于其检索机制,它通过无缝集成图结构和向量表示进行信息检索,避免了处理大量信息的前期工作,从而大大减少了令牌使用量和API调用次数。
在增量数据更新阶段,GraphRAG由于其社区结构的处理方式,在纳入新数据时需要大量的令牌和复杂的重建过程,效率低下。而LightRAG的增量更新算法使其能够轻松集成新数据,保持系统的高效性和成本效益。
LightRAG在信息检索效率和成本效益方面表现更优。无论是在检索阶段还是在处理动态环境中的数据变化时,LightRAG都能以较低的成本提供高效的服务,其检索机制和增量更新能力使其更适合应用于实际场景中,尤其是在处理大量数据和频繁数据更新的情况下。