LLM - RAG - GraphRAG - LightRAG解析 - 知乎
paper:LightRAG: Simple and Fast Retrieval-Augmented Generation
code:https://github.com/HKUDS/LightRAG.git
一、背景
最近RAG领域出了比较火的Graph RAG,相继微软也开源了他们的Graph RAG方案,香港大学也输出了比微软Graph RAG更简洁的方案LightRAG;LightRAG整体效能都很优秀,
1、传统RAG与GraphRAG区别
传统RAG(Retrieval-Augmented Generation)和GraphRAG都是结合检索和生成的技术,但它们在结构和应用上有所不同。
传统RAG:
-结构:传统RAG结合了信息检索和生成模型。通常是先使用检索模块从一个大型文档集合中找到相关信息,然后由生成模块生成自然语言结果。生成过程会参考检索到的文档。
-优点:能够快速地从大量信息中找到相关内容,并通过生成模型给出流畅、自然的回答。
-限制:
-–缺乏复杂关系建模:传统RAG主要关注直接检索到的文档,而不擅长处理信息之间的复杂关系和网络结构。
-–上下文局限性:对于需要在不同资源之间进行深层次关联和推理的问题,以及总结概要,传统RAG可能表现不佳。
RAG 的局限性
传统的 RAG 系统虽然表现优异,但其局限性也不容忽视:
- 数据结构扁平化
传统 RAG 系统往往依赖扁平化的数据结构,难以捕捉信息之间的复杂关系。这种缺陷导致生成的答案片段化,缺乏上下文的一致性。 - 有限的上下文意识
系统在处理需要综合多个数据点的复杂问题时表现不佳,生成的答案缺乏对数据间相互关联的全面理解。
传统RAG场景限制:
传统RAG在以下场景可能表现不佳:
1. 复杂推理:需要跨多个文档进行复杂信息推理的场景。
2. 关系网络:在信息之间需要建立图结构关系才能解决的问题。
3. 非线性关系:需要分析和理解多个条目之间的非线性关系时,传统RAG可能会受到限制。
4. 动态信息更新:信息网络频繁更新、必须实时分析变化的场景中,对于保持上下文的准确性可能会有挑战。
通过引入图结构,GraphRAG可以更好地处理这些限制,提供更复杂信息连接的理解和生成能力。
问题:传统的RAG在某些方面存在一定的限制,比如依赖平面数据表示以及对上下文感知不够,这些使得模型无法抓住复杂的内部关系。
GraphRAG:
-结构:GraphRAG在传统RAG架构中引入了图结构,使其能够更好地表示信息之间的关系。通过图模型,GraphRAG可以捕捉和分析多个文档之间的复杂连接和依赖。 -优势: —关系建模:能够处理更复杂的查询,特别是涉及多个层次和节点之间关系的问题。 —更强的推理能力:在信息需要连接或推理时,GraphRAG可以比传统RAG更有效地提供相关性高的答案。
GraphRAG的局限性
GraphRAG 通过使用** 知识图谱** 对文本中的实体和关系进行结构化建模,从而能够捕捉信息间的复杂关联。GraphRAG 首先在整个私有数据集上创建实体和关系的引用,随后采用自底向上的聚类方法,将数据层次化地组织为语义簇。 然而,当数据集中加入新的知识时,GraphRAG 必须重新执行整个图构建流程。这种方式对于动态更新的数据集来说效率低下且成本高昂。
- 资源需求高:需要大量 API 调用(通常依赖昂贵的模型如 GPT-4o)。
- 数据更新昂贵:每次更新数据时,必须重建整个图谱。
方法:
提出LightRAG,将图结构嵌入到文本索引和检索过程中。整体的框架包括一个双层的检索系统,从低级的和高级的知识发现中来增强综合的信息检索。
使用了一种瞬时更新算法,确保及时更新新数据,允许系统保持有效性的同时对于数据变化能够迅速的响应。
二、概述 - Introduction
作者主要解决以下三个方面的问题
**综合信息检索:**确保抓住所有文档内部实体的完整上下文
**增强检索效率:**在基于图的知识结构上显著降低应答时间
**迅速适用于新数据:**确保系统保持与动态环境的相关性
相比之下,LightRAG 的增量更新机制大大简化了流程。
它通过简单的联合操作(union operation),将新的图节点和边直接添加到现有图谱中。
这种方式避免了重复构建图谱的高昂开销,同时确保知识库实时更新,适应动态数据需求。
双层检索策略(确保用户能够只收到需要的相关和全面的响应)
**low level检索:**关注特定实体以及他们之间关系的精确信息
**high level检索:**包含更广泛的话题
1、建设索引流程 - Graph-based Indexing
把文档信息导入到图库、向量库
分而治之:
将整篇文档分割成更小的、易于管理的pieces,这样能够避免分析整篇文档,并且快速识别和评估相关的信息。
以下是 LightRAG 进行基于图索引的步骤:
(1)实体与关系(ER)提取
实体与关系提取由图中的 R(.) 表示。此步骤确保从给定文档中首先提取简单的实体。例如,在上图的示例中,“蜜蜂”(bees)和“养蜂人”(beekeeper)是两个实体,它们通过“观察”(observe)关系相关联,即养蜂人观察蜜蜂。
(2)使用 LLM 生成键值(KV)对
使用简单的 LLM 生成键值对。LLM 的分析步骤为实体或关系提供了简要的说明或解释。例如,在所选示例中,LLM 解释了“养蜂人”是谁。此步骤在图中由 P(.) 表示。需要注意的是,此 LLM 不同于主 RAG 流程中使用的通用 LLM。
(3)去重
鉴于文档内容与蜜蜂相关,实体“养蜂人”可能从多个文档或文本块中被多次提取。因此,需要一个去重步骤,仅保留一个具有相同含义的实体,丢弃其他重复项。此步骤在图中由 D(.) 表示。
上面作者提到的步骤,相对于微软的GraphRAG,相当于实现了其前三步,而对于后面冗余的步骤,包括强弱关系打分、遗漏提示、生成社区、社区总结都省略了,可能作者认为这些步骤都没有必要,而且这些步骤还会使得构件图的过程花费大量的时间。
GraphRAG这种社区遍历技术效率太低,而作者这种从Graph中获得的(K, V)数据结构能够快速精准的检索。
快速适用于增量知识库
更新整个数据库而不需要对外部文档进行再一次的完全处理。
对于一个新的文档D ′,和之前一样提取实体V 和关系E ′ 与先前的实体和关系取并集。
2、查询检索流程 - Dual-level Retrieval
对 RAG 系统的查询可以分为两种类型——具体的或抽象的。
在同样的蜜蜂示例中,具体查询可能是:“一个蜂巢中可以有多少只蜂王?” 抽象查询可能是:“气候变化对蜜蜂有哪些影响?”
为了应对这种多样性,LightRAG 采用了两种检索方式:
低层检索:简单地提取精确的实体及其关系,如蜜蜂(bees)、观察(observe)和养蜂人(beekeepers)。
高层检索:通过使用 LLM,LightRAG 聚合信息并总结多个信息来源。
双层检索范式
- 生成查询关键词:
针对用户查询,系统自动提取局部关键词(low-level)和全局关键词(high-level)用于匹配检索。
- 关键词匹配:
使用向量数据库,局部关键词会匹配相关的实体,全局关键词会匹配到相应的实体关系。
- 整合高阶相关性:
为增强检索的准确性,LightRAG 会收集检索到的图元素的邻接节点,涉及检索到的实体及其关系的上下文。
检索增强的答案生成
- 使用检索到的信息
检索完成后,系统将提取到的实体和关系输入LLM,并基于这些信息生成答案。
- 上下文整合与答案生成
系统将用户查询与多源检索结果进行合并,生成符合查询语境的答案。
根据用户的查询,结合图库和向量库,提供了4种查询方式
增量知识库的快速适应
- 增量更新知识库
新文档加入时,系统会按照之前的图基索引步骤处理新文档,将新生成的知识图谱与现有图谱数据合并,实现无缝更新。
- 减少计算开销
为了提升效率,LightRAG 避免重建整个知识图谱,仅更新新数据部分,从而减少计算开销,提升系统响应速度。
架构意义
进行这些操作并切换到 LightRAG 的确能改进执行时间。在索引过程中,每个文本块只需调用一次 LLM 来提取实体及其关系。
同样,在用户查询时,仅使用与索引相同的 LLM 从文本块中检索实体和关系。这大大减少了检索的开销,从而降低了计算成本。因此,最终拥有了一个“轻量”的 RAG!
将新知识整合到现有图谱中看起来是一个无缝的操作。与其在有新信息时重新索引整个数据,可以简单地将新知识附加到现有图谱中。
评估
评估中,LightRAG 与 Naive RAG、RQ-RAG、HyDE 和 GraphRAG 进行了比较。为了保持比较的公平性,统一使用了 GPT-4o-mini 作为 LLM,并在所有数据集上采用固定的分块大小(1200)。
答案的评估标准包括全面性、多样性以及回答用户问题的有效性。
正如下划线结果所示,LightRAG 超越了当前所有最先进的方法。
总体而言,得出了以下结论:
• 使用基于图的方法(如 GraphRAG 或 LightRAG)相比基础的 Naive RAG 有显著改进。
• LightRAG 通过双层检索范式生成了相当多样化的答案。
• LightRAG 能够更好地处理复杂查询。
快速总结(vs GraphRAG)
(1)LightRAG 的知识图谱可以增量更新。为了将新数据合并到现有的图形索引中,GraphRAG 还需要为以前的数据重建整个 KG
(2)结合了 graph indexing 和 standard embedding 方法构建知识图谱。相对于 GraphRAG 以社区遍历的方法,LightRAG 专注于实体和关系的检索,进而减少检索开销
(3)Hybrid Query双层检索策略,结合了 local 和 global 方法检索
(4)推理速度更快。在检索阶段,LightRAG 需要少于 100 个token和一个 API 调用,而 GraphRAG 需要 社区数量 x 每个社区的平均令牌数量token
参考链接:
- 原文作者:知识铺
- 原文链接:https://index.zshipu.com/edudaily/post/20260817/LLM-RAG-GraphRAG-LightRAG%E8%A7%A3%E6%9E%90-%E7%9F%A5%E4%B9%8E/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com