本文主要回顾 RAG 技术的发展,第一部分梳理了综述和关键论文,第二部分梳理了工程实践工具。
RAG检索增强生成技术自从出现以来经过了多轮范式迭代进展,尤其是随着近几年LLMs的广泛应用,2024年RAG技术呈现爆发态势,
全年共计产生了一千篇以上的相关论文
。
在经过多轮范式迭代和技术进展后,RAG系统已经从最初的简单形态变得越来越复杂越来越完善,
范式从 NaiveRAG 到 AdvancedRAG 到 ModularRAG 再到 GraphRAG,最新的 AgenticRAG 范式
融合了数据库,模型微调,逻辑推理,智能体等多种技术,使得其可以适应于各种复杂灵活的任务场景中。
本文梳理了 RAG 领域的关键进展和五大范式,并总结了工程应用中常见的RAG系统构建工具。
希望能帮助读者快速了解RAG的基础概念,梳理发展脉络。
一、综述与关键论文
1.1 三篇关键综述
[1] ZHAO P, ZHANG H, YU Q, 等. Retrieval-Augmented Generation for AI-Generated Content: A Survey[A/OL]. arXiv, 2024[2024-06-21].
http://arxiv.org/abs/2402.19473
.
[2] GAO Y, XIONG Y, GAO X, 等. Retrieval-Augmented Generation for Large Language Models: A Survey[A/OL]. arXiv, 2024[2024-03-27].
http://arxiv.org/abs/2312.10997
.(best)
[3] FAN W, DING Y, NING L, 等. A Survey on RAG Meeting LLMs: Towards Retrieval-Augmented Large Language Models[A/OL]. arXiv, 2024[2024-06-17].
http://arxiv.org/abs/2405.06211
.
这三篇综述把RAG的三个基本范式,朴素RAG、高级RAG、模块化RAG介绍的非常清楚明了。
1.2 发展历程
自2021年RAG技术出现之后,RAG首先被用于LLMs的预训练阶段来增强语言模型,随后被用于微调与推理任务中。自ChatGPT发布以来,用于推理阶段的RAG方法如雨后春笋般大量出现,并且迅速演化出了三种范式,分别是NaiveRAG,AdvancedRAG与ModularRAG;2024年微软开源的GraphRAG开启了RAG的第四种范式,融合了知识图谱;在2024年下半年AgenticRAG出现,是前四种范式的集大成者,且具有自适应性。
图1:按照主要设计重点、提出时间及影响力(以引用量体现)梳理的检索增强生成(RAG)和检索增强大语言模型(RA - LLMs)方法。请注意,图中所示的第一作者、年份以及模型名称可用于查找相应参考文献。[3]
图2:RAG研究技术树。涉及RAG的阶段主要包括预训练、微调和推理。随着LLMs的出现,对RAG的研究最初侧重于利用LLMs强大的上下文学习能力,
主要集中在推理阶段
。随后的研究更加深入,逐渐与LLMs的微调相结合。研究人员也一直在探索通过检索增强技术在预训练阶段增强语言模型的方法。[3]
1.3 RAG基本概念
1.3.1 为什么需要RAG?
大型语言模型(LLMs)已经取得了显著的成就,尽管它们仍然面临着很大的局限性,尤其是在特定领域或知识密集型任务中,特别是在处理超出其训练数据或需要当前信息的查询时,会产生 "幻觉"。为了克服这些挑战,检索增强生成(RAG)通过语义相似性计算从外部知识库中检索相关文档块,从而增强了 LLM。通过引用外部知识,RAG 可有效减少生成与事实不符内容的问题。将 RAG 集成到 LLM 中已被广泛采用,RAG 已成为推动聊天机器人发展的一项关键技术,并提高了 LLM 在现实世界应用中的适用性。
1.3.2 RAG的起源
[4]LEWIS P, PEREZ E, PIKTUS A, 等. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks[A/OL]. arXiv, 2021[2025-01-27]. http://arxiv.org/abs/2005.11401. DOI:10.48550/arXiv.2005.11401.
摘要:
大型预训练语言模型已被证明可以将事实知识存储在其参数中,并在下游 NLP 任务中进行微调后获得最先进的结果。然而,它们访问和精确操作知识的能力仍然有限,因此在知识密集型任务上,它们的性能落后于特定任务架构。此外,为它们的决策提供出处和更新它们的世界知识仍然是有待解决的研究课题。迄今为止,具有显式非参数内存可变访问机制的预训练模型只针对下游提取任务进行过研究。我们为检索增强生成(RAG)探索了一种通用的微调方法--将预先训练的参数记忆和非参数记忆结合起来用于语言生成的模型。我们引入的 RAG 模型中,参数记忆是预先训练的 seq2seq 模型,非参数记忆是维基百科的密集向量索引,通过预先训练的神经检索器访问。我们比较了两种 RAG 方案,一种是在整个生成序列中使用相同的检索段落,另一种是每个标记使用不同的段落。我们在广泛的知识密集型 NLP 任务中对我们的模型进行了微调和评估,并在三个开放领域的质量保证任务中确定了技术水平,其性能优于参数 seq2seq 模型和特定任务的检索和提取架构。在语言生成任务中,我们发现 RAG 模型生成的语言比最先进的纯参数 seq2seq 基线模型生成的语言更具体、更多样、更真实。
创新:
这篇论文试图解决的问题是如何在知识密集型的自然语言处理(NLP)任务中,有效地结合预训练的语言模型(具有参数化记忆)和非参数化记忆(通过检索机制访问的外部知识库),以提高模型的性能。具体来说,论文提出了一种名为检索增强生成(Retrieval-Augmented Generation, RAG)的模型,旨在通过以下方式解决现有模型的局限性:
-
1.
知识访问和操作的精确性
:尽管大型预训练语言模型能够存储大量事实知识,但它们在访问和精确操作这些知识方面的能力有限。这导致在知识密集型任务上,这些模型的性能通常不如特定任务架构。
-
2.
决策的可解释性
:预训练模型很难提供其决策过程的解释,这在需要透明度的应用场景中是一个挑战。
-
3.
世界知识的更新
:预训练模型在更新其知识库方面存在困难,这限制了它们适应新信息的能力。
为了解决这些问题,论文提出了RAG模型,它结合了预训练的序列到序列(seq2seq)模型(作为参数化记忆)和通过预训练神经检索器访问的维基百科密集向量索引(作为非参数化记忆)。RAG模型通过端到端训练,能够在多种知识密集型任务上实现最先进的性能,同时生成更具体、多样和事实性的语言。
1.3.3 RAG简单流程与总览
图3:应用于问答的RAG过程的代表性实例。它主要包括3个步骤。1)索引。文档被分割成块,编码成向量,存储在向量数据库中。2)检索。根据语义相似度检索与问题最相关的Top k块。3)生成。将原始问题和检索到的块一起输入LLM,生成最终答案。[2]
图4:RAG三种范式的比较。(左)朴素RAG主要由三部分组成:索引、检索和生成。(中)高级RAG围绕检索前和检索后提出了多种优化策略,其过程与朴素RAG相似,仍然遵循链状结构。(右)模块化RAG继承和发展了以前的范式,整体上展示了更大的灵活性。这在引入多个特定功能模块和替换现有模块方面表现得很明显。整个过程并不局限于顺序检索和生成;它包括迭代和自适应检索等方法。[2]
1.4 高级RAG
定义:
高级 RAG 引入了具体的改进措施,以克服 Naive RAG 的局限性。为了提高检索质量,它采用了检索前和检索后策略。为了解决索引问题,高级 RAG 通过使用滑动窗口方法、细粒度分割和元数据的整合,改进了索引技术。此外,它还采用了多种优化方法来简化检索过程。
关键论文:
[5] JIN J, ZHU Y, YANG X, 等. FlashRAG: A Modular Toolkit for Efficient Retrieval-Augmented Generation Research[A/OL]. arXiv, 2024[2024-11-03]. http://arxiv.org/abs/2405.13576. DOI:10.48550/arXiv.2405.13576.
摘要:
随着大型语言模型(LLMs)的出现,检索增强生成(RAG)技术的潜力引起了相当多的研究关注。为了增强 RAG 系统的各个方面,人们引入了许多新颖的算法和模型。然而,由于缺乏标准化的实施框架,再加上 RAG 过程本身错综复杂,研究人员在一致的环境中比较和评估这些方法既具有挑战性,又耗费时间。现有的 RAG 工具包(如 LangChain 和 LlamaIndex)虽然可用,但往往笨重臃肿,无法满足研究人员的个性化需求。为了应对这一挑战,我们提出了 FlashRAG,这是一个高效、模块化的开源工具包,旨在帮助研究人员在统一的框架内复制现有的 RAG 方法和开发自己的 RAG 算法。我们的工具包实现了 12 种先进的 RAG 方法,并收集和整理了 32 个基准数据集。我们的工具包具有多种功能,包括可定制的模块化框架、丰富的预实现 RAG 作品集、全面的数据集、高效的辅助预处理脚本以及广泛而标准的评估指标。我们的工具包和资源可在 https://github.com/RUC-NLPIR/FlashRAG 上获取。
A:论文提出了FlashRAG,一个模块化的开源工具包,来解决在RAG研究中遇到的问题。以下是FlashRAG解决这些问题的关键特性和方法:
-
1.
模块化RAG框架
:FlashRAG实现了一个易于扩展的RAG过程,提供了13个组件,涵盖四个主要类别:裁判器(judger)、检索器(retriever)、精炼器(refiner)和生成器(generator)。这些组件可以单独使用或组合成一致的流程。
-
2.
预实现的先进RAG算法
:FlashRAG提供了12种先进的RAG算法的实现,如Self-RAG和FLARE,覆盖了顺序RAG、条件RAG、分支RAG和循环RAG类别。这些方法已在统一设置下进行了评估,提供了基准报告。
-
3.
全面的基准数据集
:为了提高RAG研究中数据集的一致性和可重用性,作者编译了32个常用的RAG基准数据集,并将其预处理成统一格式。
-
4.
高效的辅助脚本
:为了最小化RAG实验的设置时间,FlashRAG提供了一套全面的辅助脚本,包括下载和切片Wikipedia以创建语料库、构建检索索引以及预先准备检索结果。
-
5.
支持多种评估指标
:FlashRAG支持多种评估指标来衡量RAG过程的质量,包括检索方面的指标(如recall@k、precision@k、F1@k和MAP)和生成方面的指标(如token级别的F1分数、精确匹配、准确率、BLEU和ROUGE-L)。
-
6.
实验结果和讨论
:论文通过一系列实验展示了FlashRAG的能力,包括提供可复现的基准和探索性研究。这些实验使用了不同的数据集和评估指标,展示了FlashRAG在不同设置下的性能。
-
7.
工具包结构
:FlashRAG的结构包括环境模块、组件模块和管道模块,这种分层模块化设计使得研究人员可以轻松地组装和执行完整的RAG过程。
通过这些特性,FlashRAG旨在帮助研究人员更容易地复制现有的RAG方法,开发新的算法,并专注于优化他们的研究。
图7:高级RAG链 来源:https://github.com/gomate-community/TrustRAG
[6] SARMAH B, HALL B, RAO R, 等. HybridRAG: Integrating Knowledge Graphs and Vector Retrieval Augmented Generation for Efficient Information Extraction[A/OL]. arXiv, 2024[2024-08-24]. http://arxiv.org/abs/2408.04948. DOI:10.48550/arXiv.2408.04948.
摘要:
从金融应用中产生的非结构化文本数据(如财报电话会议记录)中提取和解读复杂信息,即便采用当前运用检索增强生成(RAG,即利用向量数据库进行信息检索的 VectorRAG 技术)的最佳实践,对大语言模型(LLMs)来说仍是巨大挑战,这是由于特定领域术语以及文档格式复杂等难题所致。我们引入一种全新的组合方法 ——HybridRAG,它融合了基于知识图谱(KGs)的 RAG 技术(即 GraphRAG)与 VectorRAG 技术,以增强从金融文档中提取信息的问答(Q&A)系统,该系统能够生成准确且与上下文相关的答案。我们对一组以问答格式呈现的财报电话会议记录文档进行实验,这些文档自然地提供了一系列真实的问答对。实验表明,在检索和生成阶段,从向量数据库和知识图谱中同时检索上下文的 HybridRAG,在检索准确率和答案生成方面,均优于单独使用的传统 VectorRAG 和 GraphRAG。所提出的技术应用范围不仅限于金融领域。
相关研究主要集中在信息检索(IR)领域,包括以下几个方面:
-
1.
BM25算法
:Robertson和Zaragoza (2009) 探讨了使用基于相似性搜索的BM25算法,该算法根据词频(Term Frequency, TF)、逆文档频率(Inverse Document Frequency, IDF)和文档长度来计算文档的相关性得分。
-
2.
密集向量模型
:Johnson等人 (2019) 研究了使用k近邻(k Nearest Neighbours, KNN)算法的密集向量模型,这些模型能够捕捉数据中的深层语义关系。通过计算向量之间的相似性(如余弦相似性),模型能够返回与查询向量最相似的k个向量对应的数据实体。
-
3.
稀疏编码器模型
:Zaharia等人 (2010) 探索了基于稀疏编码器的向量模型,这些模型在处理高维数据时保持了解释性,这是密集向量表示中常面临的挑战。这些模型通过将文档和用户查询映射到从大量训练数据中派生的关联术语的广泛数组中,来编码文档和查询的扩展术语。
-
4.
RAG系统的局限性
:当前在RAG系统中使用的大多数检索方法依赖于关键词和基于相似性的搜索,这可能限制了RAG系统的整体准确性。论文中提到,尽管之前的努力主要集中在通过调整LLM提示、微调等来提高G部分的准确性,但这些方法对RAG系统的整体准确性影响有限,因为如果R部分提供的上下文不相关,答案也将不准确。
-
5.
检索增强型生成(RAG)模型
:Siriwardhana等人 (2023) 研究了如何改进RAG模型在开放领域问答中的领域适应性。
-
6.
混合专家模型(Mixture-of-Experts, MoE)
:Du等人 (2022) 提出了GLaM模型,这是一种通过混合专家模型来高效扩展语言模型的方法。
-
7.
路径缩放语言模型(Pathways Language Model, PaLM)
:Chowdhery等人 (2023) 提出了PaLM模型,这是一种通过路径缩放来扩展语言模型的方法。
这些相关研究为论文提出的“Blended RAG”方法提供了理论和技术基础,特别是在语义搜索和混合查询策略方面。
1.3 模块化RAG
定义:
模块化 RAG 架构超越了前两种 RAG 范式,具有更强的适应性和多功能性。它采用了多种策略来改进其组件,例如为相似性搜索添加搜索模块,以及通过微调完善检索器。为应对特定挑战,还引入了重组 RAG 模块和重排 RAG 管道等创新方法。向模块化 RAG 方法的转变正变得越来越普遍,它既支持顺序处理,也支持跨组件的集成端到端训练。尽管模块化 RAG 与众不同,但它建立在高级 RAG 和朴素 RAG 的基本原则之上,表明了 RAG 系列的进步和完善。
关键论文:
[7] GAO Y, XIONG Y, WANG M, 等. Modular RAG: Transforming RAG Systems into LEGO-like Reconfigurable Frameworks[A/OL]. arXiv, 2024[2024-08-24]. http://arxiv.org/abs/2407.21059. DOI:10.48550/arXiv.2407.21059.
摘要:
检索增强生成(RAG)显著增强了大型语言模型(LLM)处理知识密集型任务的能力。应用场景日益增长的需求推动了 RAG 的发展,导致高级检索器、大型语言模型和其他互补技术的集成,反过来又扩大了 RAG 系统的复杂性。然而,快速的进步正在超越基本的 RAG 范式,许多方法在 "先检索后生成 "的过程中难以统一。在此背景下,本文探讨了现有 RAG 范式的局限性,并介绍了模块化 RAG 框架。通过将复杂的 RAG 系统分解为独立的模块和专门的运算符,它为高度可重构的框架提供了便利。模块化 RAG 超越了传统的线性架构,采用了更先进的设计,集成了路由、调度和融合机制。本文在广泛研究的基础上,进一步确定了流行的 RAG 模式--线性、条件、分支和循环,并全面分析了它们各自在实现上的细微差别。模块化 RAG 为 RAG 系统的概念化和部署提供了创新机会。最后,本文探讨了新运算符和新范例的潜在出现,为 RAG 技术的持续发展和实际部署奠定了坚实的理论基础和实践路线图。
创新:
论文通过提出模块化RAG(Modular RAG)框架来解决现有RAG系统的局限性和挑战。具体的解决策略包括:
-
1.
模块化架构
:将复杂的RAG系统分解为独立的模块和专门的操作符,形成一个高度可重配置的框架。
-
-
L1 Module
:关注RAG系统的核心过程,每个阶段被视为一个独立模块。
-
L2 Sub-module
:在每个模块内部进一步细化和优化功能。
-
L3 Operator
:模块或子模块中具体的功能实现。
3.
RAG Flow
:模块和操作符的组合形成RAG流程,可以灵活地表示当前的RAG方法。
4.
索引(Indexing)
:优化文档分块和元数据附加,以及结构化组织,提高检索效率。
5.
预检索(Pre-retrieval)
:通过查询扩展、查询转换和查询构造来改善基于原始用户查询的检索效果。
6.
检索(Retrieval)
:选择合适的检索器,并通过检索器微调来提高检索的质量和效率。
7.
后检索(Post-retrieval)
:对检索到的文本块进行重排、压缩和选择,以优化上下文信息的利用。
8.
生成(Generation)
:使用LLM生成答案,并通过生成器微调、验证等方法提高答案的可靠性。
9.
协同(Orchestration)
:通过路由、调度和融合机制控制RAG流程,使系统能够适应不同的查询和场景。
10.
灵活性和扩展性
:模块化RAG提供了在不同应用场景中适应和扩展新方法的灵活性。
11.
理论和实践指导
:论文不仅提出了理论框架,还探讨了模块化RAG在实际部署中的潜力,为未来的研究方向和实践探索提供了指导。
通过这些策略,模块化RAG框架旨在提高RAG系统的灵活性、可扩展性和可维护性,同时满足不断增长和多样化的应用需求和期望。
1.4 GraphRAG
定义:
检索增强生成(RAG)是一种强大的技术,它通过从外部来源检索知识、技能和工具等附加信息来增强下游任务的执行。图本身具有 "节点由边连接 "的特性,可以编码大量的异构和关系信息,这使其成为 RAG 在大量实际应用中的黄金资源。
综述:
[8] PENG B, ZHU Y, LIU Y, 等. Graph Retrieval-Augmented Generation: A Survey[A/OL]. arXiv, 2024[2024-08-21].
http://arxiv.org/abs/2408.08921
.
摘要:
最近,检索增强生成技术(RAG)在应对大型语言模型(LLM)的挑战方面取得了显著的成功,而无需重新训练。通过参考外部知识库,RAG 完善了 LLM 的输出,有效缓解了 "幻觉"、特定领域知识缺乏和信息过时等问题。然而,数据库中不同实体之间复杂的关系结构给 RAG 系统带来了挑战。为此,GraphRAG 利用实体间的结构信息,实现更精确、更全面的检索,捕捉关系知识,促进更准确、更能感知上下文的响应。鉴于 GraphRAG 的新颖性和潜力,对当前技术进行系统回顾势在必行。本文首次全面概述了 GraphRAG 方法。我们将 GraphRAG 工作流程正规化,包括基于图形的索引、图形引导的检索和图形增强的生成。此外,我们还研究了 GraphRAG 的下游任务、应用领域、评估方法和工业用例。最后,我们探讨了未来的研究方向,以激发进一步的探索并推动该领域的进步。
这篇论文提供了对Graph Retrieval-Augmented Generation (GraphRAG) 方法论的全面概述。以下是论文的主要内容总结:
-
1.
背景介绍
:论文首先介绍了大型语言模型(LLMs)的发展以及它们在自然语言处理(NLP)中的重要性。同时指出了LLMs在缺乏特定领域知识、实时更新信息和专有知识时可能遇到的问题。
-
2.
GraphRAG概念
:提出了GraphRAG作为一种解决上述问题的框架,通过结合图数据库中的结构化信息来增强LLMs的输出。
-
3.
工作流程
:详细介绍了GraphRAG的三个主要阶段:图基础索引(G-Indexing)、图引导检索(G-Retrieval)和图增强生成(G-Generation)。
-
4.
核心技术
:探讨了GraphRAG系统中使用的核心技术,包括图神经网络(GNNs)和语言模型(LMs)。
-
5.
训练方法
:讨论了检索器和生成器的独立训练方法,以及它们的联合训练策略。
-
6.
下游任务和应用领域
:分析了GraphRAG在多种下游任务中的应用,如问答、信息提取等,并探讨了其在不同应用领域(医疗、金融、教育等)的潜在影响。
-
7.
评估方法和工业用例
:提供了评估GraphRAG系统性能的方法,包括基准测试和工业应用案例。
-
8.
未来研究方向
:论文最后提出了GraphRAG领域的未来研究方向,包括动态和自适应图、多模态信息整合、可扩展和高效的检索机制等。
-
9.
贡献总结
:论文总结了对现有GraphRAG方法论的系统化回顾,提供了对GraphRAG技术、应用和未来研究方向的全面理解。
整体而言,这篇论文为理解和应用GraphRAG提供了一个全面的视角,并为未来的研究和应用指明了方向。
关键论文:
[9] EDGE D, TRINH H, CHENG N, 等. From Local to Global: A Graph RAG Approach to Query-Focused Summarization[A/OL]. arXiv, 2024[2024-08-03]. http://arxiv.org/abs/2404.16130. DOI:10.48550/arXiv.2404.16130.
摘要:
通过检索增强生成(RAG),大型语言模型(LLM)能够从外部知识源检索信息,从而回答涉及私有或未见文档的问题。然而,RAG 在处理全局问题(如“数据集的主要主题是什么?”)时表现不佳,因为这类问题本质上是查询聚焦的摘要任务,而非直接检索。现有的 QFS 方法也难以处理大规模文本。为此,我们提出图 RAG 方法,该方法结合了两种方法的优势,能够随着问题普遍性和文本量的增加而扩展。图 RAG 通过 LLM 构建图索引,先从文档中提取实体图,再预生成相关实体的摘要。在回答问题时,每个摘要生成部分答案,最终汇总为完整回答。实验表明,图 RAG 在处理大规模数据集的全局问题时,能显著提升答案的全面性和多样性。全球和本地图 RAG 的开源 Python 实现即将发布。
这篇论文提出了一种名为 Graph RAG(Graph Retrieval-Augmented Generation)的方法,旨在解决以下问题:
-
1.
检索增强生成(RAG)的局限性
:传统的 RAG 方法在处理针对整个文本语料库的全局性问题时存在不足,例如“数据集中的主要主题是什么?”这类问题。这是因为这类问题本质上是查询聚焦的摘要(Query-Focused Summarization, QFS)任务,而不是传统的显式检索任务。
-
2.
大规模文本的摘要生成
:现有的 QFS 方法难以扩展到 RAG 系统所索引的大规模文本。由于大型语言模型(LLMs)的上下文窗口限制,直接检索文本块可能无法满足全局摘要的需求。
-
3.
信息丢失问题
:在处理大量文本时,信息可能会在较长上下文中丢失,这要求在设计摘要方法时考虑到信息的完整性和连贯性。
-
4.
全局性问题的回答
:为了支持人类对整个文本语料库的全局性理解,需要一种能够通过提问来应用和细化用户对数据的心理模型的方法。
Graph RAG 方法通过以下步骤来解决这些问题:
-
使用 LLM 构建基于图的文本索引,包括从源文档派生出的实体知识图谱。
-
-
给定一个问题时,使用每个社区摘要生成部分响应,然后将所有部分响应再次汇总以生成最终的响应。
该方法的目标是在用户问题的一般性和要索引的源文本数量方面实现扩展,同时提高生成答案的全面性和多样性。论文还提供了一个开源的 Python 实现,用于全局和本地 Graph RAG 方法。
图9:GraphRAG流程。如上图所示,GraphRAG包括两个处理阶段,分别是:索引阶段和查询阶段。索引阶段利用LLM来自动化构建知识图谱,提取出对应的节点(如实体)、边(如关系)和协变量(如主张,claim),然后利用社区发现技术(如Leiden算法)对整个知识图谱进行子图划分,然后自底而上对子图利用LLM进行摘要、总结。针对特定查询,“全局答案(Global Search)”汇总所有与之相关的社区摘要最后汇总生成答案。与传统RAG一样,GraphRAG也需要将源文档转化为文本片段(TextUnits),这个片段既会被用于图谱抽取,也会作为知识的引用源,以便追溯回最初的原始文本内容。
[9] GUO Z, XIA L, YU Y, 等. LightRAG: Simple and Fast Retrieval-Augmented Generation[A/OL]. arXiv, 2024[2025-01-27]. http://arxiv.org/abs/2410.05779. DOI:10.48550/arXiv.2410.05779.
摘要:
检索增强生成(RAG)系统通过整合外部知识源来增强大型语言模型(LLM),从而根据用户需求提供更准确、更贴近语境的回答。然而,现有的 RAG 系统有很大的局限性,包括依赖于平面数据表示和对上下文的认识不足,这可能导致无法捕捉复杂的相互依存关系的零散答案。为了应对这些挑战,我们提出了 LightRAG,将图结构纳入文本索引和检索过程。这一创新框架采用了双层检索系统,从低层次和高层次知识发现两方面加强了综合信息检索。此外,图结构与矢量表示法的整合有助于高效检索相关实体及其关系,从而在保持上下文相关性的同时显著缩短响应时间。增量更新算法进一步增强了这一能力,确保了新数据的及时整合,使系统能够在快速变化的数据环境中保持有效性和响应速度。广泛的实验验证表明,与现有方法相比,LightRAG 在检索准确性和效率方面都有显著提高。我们已将 LightRAG 开源,可通过以下链接获取:https://github.com/HKUDS/LightRAG。
论文提出了一个名为LightRAG的检索增强型生成(RAG)系统,旨在通过整合图结构改善大型语言模型(LLMs)的信息检索和生成能力。以下是论文的主要内容总结:
-
-
现有RAG系统在处理需要复杂实体关系理解的查询时存在限制,如依赖于平面数据表示和缺乏上下文感知能力。
-
提出了一个图结构化文本索引和双级检索系统的框架,以增强从文档中检索全面信息的能力。
-
引入了增量更新算法,使系统能够快速适应新数据,保持在动态数据环境中的有效性。
-
使用LLMs提取实体和关系,构建知识图谱,并通过图结构优化信息检索过程。
-
实现了双级检索策略,分别关注于低层次的具体信息和高层次的广泛话题检索。
-
结合图结构和向量表示,提高检索效率和结果的全面性。
-
通过大量实验,验证了LightRAG在检索准确性、模型消融、响应效率和新信息适应性方面相较现有方法的显著改进。
-
使用了四个不同领域的数据集进行评估,并与多个基线方法进行了比较。
-
提出了一个图增强的RAG系统,通过图结构化索引有效地表示实体间的复杂相互依赖关系。
-
开发了LightRAG模型,该模型结合了双级检索和图增强文本索引,以实现全面且成本效益的检索。
-
进行了广泛的实验,证明了LightRAG相比基线方法在多个评估维度上的有效性。
-
作者提供了LightRAG的开源实现,可通过GitHub访问。
总体而言,论文的创新之处在于将图结构应用于文本索引和检索过程,提出了一个能够处理复杂查询并快速适应新数据的高效RAG系统。通过这种方法,LightRAG能够生成更准确、更具上下文相关性的回答,极大地提高了RAG系统在实际应用中的有效性和实用性。
[6] LIANG L, SUN M, GUI Z, 等. KAG: Boosting LLMs in Professional Domains via Knowledge Augmented Generation[A/OL]. arXiv, 2024[2024-11-12]. https://arxiv.org/abs/2409.13731. DOI:10.48550/ARXIV.2409.13731.
摘要:
最近发展起来的检索增强生成(RAG)技术能够高效地构建特定领域的应用程序。然而,它也有局限性,包括向量相似性与知识推理相关性之间的差距,以及对数值、时间关系、专家规则等知识逻辑的不敏感性,这些都阻碍了专业领域知识服务的有效性。在这项工作中,我们引入了一个专业领域知识服务框架,称为知识增强生成(KAG)。KAG的设计初衷是为了应对上述挑战,充分发挥知识图谱(KG)和向量检索的优势,通过五个关键方面双向增强大型语言模型(LLM)和知识图谱(KG),从而提高生成和推理性能:(1)LLM友好的知识表示;(2)知识图谱和原始块之间的相互索引;(3)逻辑形式引导的混合推理引擎;(4)知识与语义推理的对齐;(5)KAG的模型能力增强。我们将 KAG 与多跳问题解答中现有的 RAG 方法进行了比较,发现它的性能明显优于最先进的方法,在 F1 分数方面,KAG 在 hotpotQA 上取得了 19.6% 的相对改进,在 2wiki 上取得了 33.5% 的相对改进。我们已将 KAG 成功应用于蚂蚁金服集团的两个专业知识问答任务,包括电子政务问答和电子健康问答,与 RAG 方法相比,在专业性方面取得了显著提高。此外,我们即将在开源KG引擎OpenSPG上原生支持KAG,让开发者可以更轻松地构建严谨的知识决策或便捷的信息检索服务。这将促进 KAG 的本地化开发,使开发人员能够以更高的准确性和效率构建领域知识服务。
这篇论文提出了一个名为知识增强生成(KAG)的专业领域知识服务框架,旨在解决以下问题:
-
1.
检索过程中的模糊性
:传统的检索增强生成(RAG)技术在检索过程中存在模糊性,这影响了知识服务的专业性和准确性。
-
2.
通用语言模型的“幻觉”问题
:通用语言模型在理解和推理方面存在局限性,这可能导致生成的答案不准确或不完整。
-
3.
复杂系统中的级联损失
:在复杂的知识服务系统中,不同组件之间的错误传递可能导致整体性能下降。
-
4.
专业知识的准确性、信息的完整性和逻辑的严格性
:在科学计算、医学和法律等专业领域中,对知识的准确性、信息的完整性以及规则、时间和价值的逻辑严格性有特别高的要求。
-
5.
知识图谱(KG)的整合不足
:尽管一些现有工作尝试将知识图谱整合到RAG框架中,但它们并没有充分利用知识图谱在专业领域知识管理方面的能力。
为了解决这些问题,KAG框架通过双向增强大型语言模型(LLM)和知识图谱(KG),提出了五个关键改进:
-
1.
LLM友好的知识语义表示
:提出了一种适合LLM的知识表示框架,以支持与LLM的兼容。
-
2.
知识图谱和原始文本块之间的相互索引
:通过建立图结构和原始文本块之间的索引,提高了检索的准确性。
-
3.
基于逻辑形式的混合推理和求解
:提出了一种结合了语言和符号的问题解决过程。
-
4.
基于语义推理的知识对齐
:通过定义领域知识的各种语义关系,提高了知识表示和检索的准确性。
-
5.
KAG模型
:针对KAG框架所需的能力,如索引构建、检索、问题理解、语义推理和摘要生成,增强了通用LLM的特定能力。
通过这些改进,KAG框架在多跳问答任务上的表现显著优于现有的RAG方法,并在蚂蚁集团的电子政务和电子健康问答任务中实现了专业水平的显著提升。
图11:KAG 框架。左侧显示的是 KAG-Builder,右侧显示的是 KAG-Solver。图片底部的灰色区域代表 KAG-模型。
图12:一个专为大型语言模型(LLM)设计的友好型知识表示框架。LLMFriSPG将实例与概念区分开来,通过概念实现与 LLMs 的对接。SPG 的属性被划分为知识区和信息区,也就是静态区和动态区,分别与具有严格模式约束的决策专业知识以及具有开放信息表示的文档检索索引知识相兼容。图中的红色虚线描绘了从信息提炼为知识的融合与挖掘过程。增强的文档块表示方法为 LLMs 提供了可追溯且易于解读的文本上下文。
1.5 AgenticRAG