前言
大型语言模型(LLM)展示了令人印象深刻的能力,但也遇到了幻觉、过时的知识以及不透明、无法追踪的推理过程等挑战。
通过整合外部数据库的知识,检索增强生成(RAG)已成为一种有前景的解决方案。这提高了生成的准确性和可信度,特别是对于知识密集型任务,并允许持续的知识更新和特定领域信息的集成。一个简单的示例如下图所示:

主要由3个步骤组成:
(1)索引。文档被分割成块,编码成矢量,并存储在矢量数据库中;
(2)检索。根据语义相似性检索与问题最相关的前k个块;
(3)生成。将原始问题和检索到的块一起输入LLM以生成最终答案。
RAG发展轨迹的如下图所示:

可以看出,其阶段特征有三点:
(1)RAG的诞生恰逢Transformer架构的兴起,专注于通过预训练模型(PTM)整合额外知识来增强语言模型。这一早期阶段的特点是旨在完善预训练技术的基础工作;
(2)后来RAG研究转向为LLM提供更好的信息,以便在推理阶段回答更复杂和知识密集型的任务;
(3)RAG的增强不再局限于推理阶段,而是开始更多地与LLM微调技术相结合。
一、RAG的分类
RAG研究范式不断发展,我们将其分为三个阶段:初级RAG、高级RAG和模块化RAG,如下图所示:

可以看出:
(1)初级RAG主要包括三个部分:索引、检索和生成;
(2)高级RAG围绕预检索和后检索提出了多种优化策略,其过程类似于原始RAG,仍然遵循链式结构;
(3)模块化RAG继承并发展了之前的范式,整体上展现出更大的灵活性。这在引入多个特定功能模块和替换现有模块中显而易见。整个过程不限于顺序检索和生成,它包括迭代和自适应检索等方法。
1.1 初级RAG
初级RAG遵循一个传统的过程,包括索引、检索和生成,也被称为"检索-读取"框架。
(1)索引。提取和清洗各种来源的数据,将其分割成纯文本格式的小块,使用嵌入模型编码成向量,保存在向量数据库中;
(2)检索。计算查询向量与数据库中块向量之间的相似性得分,取前K个最相似的块,作为查询的扩展上下文;
(3)生成。查询与K个块合成为一个连贯的提示,输入模型,输出答案。在正在进行的对话中,任何现有的对话历史都可以整合到提示中,使模型能够有效地进行多轮对话交互。
然而,初级RAG存在一些明显的缺点:
(1)检索挑战。检索阶段经常在精确度和召回率方面遇到困难,导致选择不对齐或不相关的块,并丢失关键信息;
(2)生成困难。在生成响应时,模型可能会面临幻觉问题,即它生成的内容不受检索到的上下文的支持。这一阶段也可能出现无关性、毒性或输出偏差,从而降低回复内容的质量和可靠性。
(3)增强障碍。将检索到的信息和不同的任务集成可能具有挑战性,有时会导致输出不连贯。当从多个来源检索到类似信息时,该过程也可能遇到冗余,导致重复响应。面对复杂的问题,基于原始查询的单一检索可能不足以获取足够的上下文信息。
(4)有人担心生成模型可能会过度依赖增强信息,导致输出只是回声检索到的内容,而没有添加有见地或合成的信息。
1.2 高级RAG
高级RAG引入了具体的改进,以克服原始RAG的局限性。它侧重于提高检索质量,采用了预检索和后检索策略。
1.2.1 预检索
预检索过程的重点是优化索引和查询:
(1)优化索引。提高被索引内容的质量。涉及策略:滑动窗口技术、增强数据粒度、优化索引结构、添加元数据、对齐优化和混合检索;
(2)查询优化。使用户的原始问题更清晰,更适合检索任务。常见方法包括查询重写、查询转换、查询扩展和其他技术。
1.2.2 后检索
后检索过程的重点是将其与查询有效集成,包括重新排序块和上下文压缩:
(1)重新排序块。对检索到的信息进行重新排序,将最相关的内容重新定位到提示词prompt的边缘,这一概念已在LlamaIndex、LangChain和HayStack等框架中实现;
(2)精简检索到的内容。将所有相关文档直接输入LLM可能会导致信息过载,为了减轻这种情况,检索后的工作集中在选择基本信息、强调关键部分和缩短要处理的上下文上。
1.3 模块化RAG
模块化RAG架构超越了前两种RAG范式,提供了增强的适应性和多功能性,重组RAG组件的搭配和重新设计RAG管道等创新的方法已被引入以应对特定挑战。
1.3.1 新模块
模块化RAG框架引入了额外的专用组件,以增强检索和处理能力。
(1)搜索模块。使用LLM生成的代码和查询语言,在搜索引擎、数据库和知识图等各种数据源之间进行直接搜索;
(2)查询增强模块。采用多级查询策略解决传统搜索的局限性,将用户查询扩展到不同的视角,利用并行向量搜索和智能重新排名来发现显式和变革性知识;
(3)内存模块。利用LLM的记忆来指导检索,创建一个无限记忆池,通过迭代自增强使文本与数据分布更紧密地对齐;
(4)路由模块。在不同的数据源中导航,为查询选择最佳路径,无论涉及摘要、特定的数据库搜索还是合并不同的信息流;
(5)预测模块。通过LLM直接生成上下文来减少冗余和噪声,确保相关性和准确性;
(6)任务适配器模块。对各种下游任务定制RAG,自动对零样本输入做提示检索,并通过少样本查询生成创建特定任务的检索器,简化检索过程的同时提高信息相关性。
1.3.2 新模式
模块化RAG通过允许组件替换或重新配置来应对特定挑战,从而提供了卓越的适应性。这超越了朴素和高级RAG的固定结构(其特征是简单的"检索"和"读取"机制)。
(1)重写检索读取。利用LLM的能力,通过一个重写模块和LM反馈机制来优化检索查询,进一步更新重写模型,提高任务性能;
(2)混合检索。整关键字、语义和向量搜索,以满足不同的查询需求;
(3)模块排列和交互的调整。提出一种迭代的检索-读取-检索-读取流程,展示了动态利用模块一的输出以支持模块二的功能,说明了对增强模块协同作用的深入理解;
(4)灵活架构。根据不同场景评估检索的必要性,超越了固定的RAG检索过程;此外RAG系统可以更容易地与其他技术(如微调或强化学习)集成。
1.4 提示词工程 VS RAG VS 微调
主要对比如下表所示:

PE/RAG和FT的比较:
(1)PE利用模型的固有能力,将外部知识和模型适应的必要性降至最低;
(2)RAG可以比作为信息检索提供一个带有定制教科书的模型,非常适合精确的信息检索任务;
(3)FT相当于学生随着时间的推移内化知识,适用于需要复制特定结构、风格或格式的场景。
在"需要外部知识"和"需要模型适应"方面,提示词工程PE需要对模型和外部知识进行少量修改,重点是利用LLM本身的能力。另一方面,微调FT涉及对模型的进一步训练。在RAG(初级RAG)的早期阶段,对模型修改的需求很低。随着研究的进展,模块化RAG与微调技术的集成程度越来越高。如下图所示:

RAG与FT是否排斥?
(1)RAG和FT并不相互排斥,可以相互补充,在不同层面增强模型的能力;
(2)RAG和FT之间的选择取决于应用程序环境中对数据动态、定制和计算能力的具体需求。
二、检索
在RAG的背景下,从数据源高效检索相关文档至关重要。其中涉及几个关键问题,如检索源、检索粒度、检索预处理和相应嵌入模型的选择。
2.1 检索源
RAG依赖于外部知识来增强LLM,而检索数据的结构和检索单元的粒度都会影响最终的生成结果。
2.1.1 检索数据的结构
最初,非结构化数据(如文本) 是检索的主流来源。随后,检索源扩展到包括半结构化数据(如PDF) 和结构化数据(如知识图谱,KG) 以进行增强。除了从原始外部来源检索外,最近的研究也有一个日益增长的趋势,即利用LLM本身生成的内容进行检索和增强。
2.1.1.1 非结构化数据
非结构化数据,如文本,是使用最广泛的检索源,主要从语料库中收集。对于开放域问答(ODQA)任务,主要检索源是维基百科转储,当前主要版本包括HotpotQA 、DPR5。除了百科全书式的数据外,常见的非结构化数据还包括跨语言文本和特定领域的数据(如医疗和法律领域)。
2.1.1.2 半结构化数据
半结构化数据通常是指包含文本和表格信息组合的数据,如PDF。处理起来主要包括两个困难:
(1)文本拆分过程可能会无意中分离表,导致检索过程中的数据损坏;
(2)将表合并到数据中可能会使语义相似性搜索复杂化。
两种次优的处理方法:
(1)利用LLM的代码功能对数据库中的表执行Text-2-SQL查询,如TableGPT;
(2)表格可以转换为文本格式,以便使用基于文本的方法进行进一步分析。
2.1.1.3 结构化数据
结构化数据,如知识图谱(KG),通常经过验证,可以提供更精确的信息。
2.1.1.4 LLM生成的内容
针对RAG中外部辅助信息的局限性,一些研究侧重于利用LLM的内部知识:
(1)部分方法将问题分为已知或未知,有选择地应用检索增强;
(2)部分方法用LLM生成器替换了检索器,发现LLM生成的上下文通常包含更准确的答案,因为它与因果语言建模的预训练目标更好地一致。
2.1.2 检索单元的粒度
在推理过程中,适当的检索粒度可以是一种简单有效的策略,可以提高密集检索器的检索和下游任务性能:
(1)粗粒度检索单元理论上可以为问题提供更多相关信息,但它们也可能包含冗余内容,这可能会分散下游任务中检索器和语言模型的注意力;
(2)细粒度的检索单元粒度增加了检索的负担,并不能保证语义完整性和满足所需的知识。
粒度主要分为两大部分,详细信息如下图所示:
(1)文本:检索粒度主要包括token、短语(Phrase)、句子(Sentence)、命题(Proposition)、块(Chunks)、文档(Document);
(2)知识图谱:实体(Entity)、三元组(Triplet)、子图(Sub-Graph)。

2.2 索引优化
在索引阶段,文档将被处理、分割并转换为嵌入向量,以存储在向量数据库中。索引构造的质量决定了在检索阶段能否获得正确的上下文。
2.2.1 分块策略
最常用的方法是在固定数量的token(例如,100、256、512)上将文档分割成块:
(1)较大的块可以捕获更多的上下文,但它们也会产生更多的噪声,需要更长的处理时间和更高的成本;
(2)较小的块可能无法完全传达必要的上下文,但它们的噪音确实较小。
块会导致句子中的截断,促使递归分割 和滑动窗口方法的优化,通过在多个检索过程中合并全局相关信息来实现分层检索。然而,这些方法仍然无法在语义完整性和上下文长度之间取得平衡。
因此,已经提出了像Small2Big这样的方法,其中句子(小)被用作检索单元,前文和后文的句子(大)被提供给LLMs作为上下文。
2.2.2 元数据附件
(1)块可以用元数据信息来丰富,如页码、文件名、作者、类别时间戳。随后,可以根据此元数据过滤检索,限制检索范围。在检索过程中为文档时间戳分配不同的权重可以实现时间感知的RAG,确保知识的新鲜度,避免过时的信息;
(2)除从原始文档中提取元数据外,还可人工构建元数据。例如,添加段落摘要,引入假设问题(计算原始和假设问题间的相似度,减少问题和答案间的语义差距)。
2.2.3 结构化索引
增强信息检索的一种有效方法是为文档建立层次结构。通过构建索引结构,RAG系统可以加快相关数据的检索和处理。
(1)分层索引结构。文件以父子关系排列,块链接到它们。数据摘要存储在每个节点上,有助于快速遍历数据,并帮助RAG系统确定要提取哪些块。这种方法还可以减轻块提取问题造成的错觉;
(2)知识图谱索引。a)描述不同概念和实体之间的联系,降低出现幻觉的可能性,b)通过将信息检索过程转换为LLM可以理解的指令,提高检索的准确性。
2.3 查询优化
制定一个准确清晰的问题是困难的,不谨慎的查询会导致检索效果不佳,有时问题本身很复杂,语言组织不好。
另一个困难在于语言的复杂性和歧义性。语言模型在处理专业词汇或具有多重含义的模糊缩写时经常遇到困难。例如,它们可能无法辨别"LLM"是指大型语言模型还是法律背景下的法学硕士。
2.3.1 查询扩展
将单个查询扩展为多个查询,丰富了查询的内容,提供了进一步的上下文来解决任何缺乏特定细微差别的问题,从而确保生成的答案具有最佳相关性。
(1)多级查询。使用LLM扩展查询,通过精心设计查询和并行执行,提升查询效率;
(2)子查询。将一个复杂的大问题,分解为一系列子问题,通过一系列子提示,解决并回答问题;
(3)验证链(Chain-of-Verification, CoVe)。扩展的查询经LLM的验证后,通常具备更高的可靠性。
2.3.2 查询转换
核心概念是基于转换后的查询而不是用户的原始查询来检索块。
查询重写:
(1)提示LLM重写查询;
(2)使用专门的小型语言模型,如RRR(重写-检索-读取);
(3)淘宝网中查询重写方法BEQUE的实现显著提高了长尾查询的召回效率。
2.3.3 查询路由
基于不同的查询,路由到不同的RAG系统,适用于为适应不同场景而设计的多功能RAG系统:
(1)元数据路由/过滤。从查询中提取关键字,然后根据块中的关键字和元数据进行过滤,从而缩小范围;
(2)语义路由。设计利用查询的语义信息;
(3)混合路由。结合基于元数据和语义的方法来增强查询路由。
2.4 嵌入优化
检索是通过计算问题和文档块的嵌入之间的相似度(例如余弦相似度)来实现的,因此嵌入模型的语义表示至关重要,主要由以下几类:
(1)稀疏编码器(BM25);
(2)密集检索器(BERT结构的预训练模型);
(3)近期的一些其他模型AngIE、Voyage、BGE;
(4)C-MTEB侧重中文能力。
Hugging Face的MTEB排行榜评估了8个任务中的嵌入模型,涵盖了58个数据测试。详见链接:嵌入模型排行榜。
对于"使用哪种嵌入模型",没有一刀切的答案。然而,一些特定的模型更适合特定的用例。
2.4.1 混合检索模型
稀疏和密集嵌入方法捕获不同的相关性特征,可以互补使用:
(1)稀疏检索模型可以为训练密集检索模型提供初始搜索结果,同时可以增密集检索模型的零样本能力,并帮助密集检索器处理包含稀有实体的查询,从而提高鲁棒性;
(2)利用预训练语言模型学习词项权重,以增强稀疏检索。
2.4.2 微调嵌入模型
(1)在上下文明显偏离预训练语料库的情况下(医疗、法律和其他充满专有术语的领域),微调嵌入模型至关重要;
(2)微调的另一个目的是对齐检索器和生成器,例如,使用LLM的结果作为微调的监督信号,称为LSR(LM监督检索器)。
2.5 适配器
微调模型可能会有一些挑战,例如需要通过 API 来集成功能,或受到本地计算资源有限所带来的限制。因此,一些方法选择使用外部适配器来帮助对齐。
(1)训练一种轻量级提示检索器,从而自动从预先构建的提示池中检索特定的提示。可适用于零样本任务;
(2)保持检索器和LLM固定,在两者之间训练一个桥梁seq2seq模型,旨在将检索到的信息转换为LLM可以有效使用的格式,使其不仅可以重新排序,还可以为每个查询动态选择段落。
三、生成
检索后,将所有检索到的信息直接输入LLM以回答问题并不是一种好的做法。以下将从两个角度介绍改进方式:调整检索内容和调整LLM。
3.1 上下文管理
冗余信息会干扰LLM的最终生成,过长的上下文也会导致LLM出现"中间丢失"问题,因此通常需要进一步处理检索到的内容。
3.1.1 重新排序
重新排序从根本上重新排序文档块,突出最相关的结果,有效地减少了整个文档池,提供了信息检索的双重目的,既是增强器又是过滤器,为更精确的语言模型处理提供了精确的输入:
(1)基于规则的方法。依赖于预定义的指标,如多样性、相关性、MRR等;
(2)基于模型的方法。如BERT中的编码器-解码器模型(SpanBERT)、Cohere Rerank、bge-raranker-large,和GPT等生成语言模型。
3.1.2 上下文选择/压缩
RAG过程中一个常见的误解是,人们认为检索尽可能多的相关文档,并将其连接起来形成一个冗长的检索提示是有益的。然而,过多的上下文可能会引入更多的噪声,降低LLM对关键信息的感知。
(1)用小语言模型(SLM)检测和删除不重要的token,然后转化为LLM能更好理解的形式;
(2)训练一个信息提取器来完成上下文压缩的目的。
3.1.3 减少文档数量
除了压缩上下文,减少文档数量也有助于提高模型答案的准确性。
(1)SLM充当过滤器,而LLM充当重新排序智能体,指示LLM重新排列SLM识别的具有挑战性的样本,可以显著改善各种信息提取(IE)任务;
(2)让LLM在生成最终答案之前评估检索到的内容,这种方法能通过LLM评论过滤出相关性较差的文档。
3.2 LLM微调
基于LLM的场景和数据特征的有针对性的微调可以产生更好的结果。这也是使用本地LLM的最大优势之一。微调LLM的好处主要有:
(1)当LLM缺乏特定领域的数据时,可以通过微调向LLM提供额外的知识;
(2)能够调整模型的输入和输出。例如,它可以使LLM适应特定的数据格式,并按照指示以特定的风格生成响应。
主要的微调方式有以下:
(1)通过强化学习将LLM输出与人类或检索者的偏好相匹配,例如,手动注释最终生成的答案,然后通过强化学习提供反馈;
(2)微调模型和检索器的偏好,使之保持一致,如RA-DIT,使用KL散度在Retriever和Generator之间对齐评分函数;
(3)当无法访问强大的专有模型或更大参数的开源模型时,一种简单有效的方法是蒸馏更强大的模型(例如GPT-4)。
四、增强
在RAG领域,标准做法通常涉及一个单一的(一次)检索步骤,然后是生成,这可能会导致效率低下,有时对于需要多步推理的复杂问题来说通常是不够的,因为它提供的信息范围有限。许多研究针对这个问题优化了检索过程,如下图所示:

除了最常见的一次检索外,RAG还包括三种类型的检索增强过程:
(1)迭代检索。涉及检索和生成之间的交替,允许在每一步从知识库中获取更丰富、更有针对性的上下文;
(2)递归检索。涉及逐步细化用户查询并将问题分解为子问题,然后通过检索和生成不断解决复杂问题;
(3)自适应检索。侧重于使RAG系统能够自主确定是否需要外部知识检索以及何时停止检索和生成,通常利用LLM生成的特殊token进行控制。
4.1 迭代检索
迭代检索是一个根据初始查询和迄今为止生成的文本反复搜索知识库的过程,为LLM提供更全面的知识。这种方法已被证明可以通过多次检索迭代提供额外的上下文引用来增强后续答案生成的鲁棒性。
然而,它可能会受到语义不连续性和无关信息积累的影响。
4.2 递归检索
递归检索涉及逐步细化用户查询并将问题分解为子问题,然后通过反馈循环逐渐收敛到最相关的信息来增强搜索体验。
它在复杂的搜索场景中特别有用,在这些场景中,用户的需求从一开始就不完全清楚,或者所寻求的信息高度专业化或微妙。该过程的递归性质允许持续学习和适应用户的需求,通常会提高对搜索结果的满意度。
4.3 自适应检索
自适应检索方法,使LLM能够主动确定检索的最佳时刻和内容来改进RAG框架,从而提高了信息来源的效率和相关性。
举例,以Self-RAG为例:
(1)引入"反思token",允许模型反思其输出;
(2)自主决定何时激活检索;
(3)在检索过程中,生成器在多个段落中进行碎片级波束搜索,得出最相关的序列;
(4)批评分数用于更新细分分数,可以在推理过程中灵活调整权重,从而定制模型的行为。
五、任务和评估
本节将主要介绍RAG的主要下游任务、数据集以及如何评估RAG系统。
5.1 下游任务
RAG的核心下游任务有以下几个方面:
(1)QA:传统的单hop/多hopQA、多选、特定领域QA以及适用于RAG的长格式场景;
(2)对话生成;
(3)信息提取(IE);
(4)推理;
(5)代码搜索。
RAG的主要下游任务及其相应的数据集汇总如下表所示:

5.2 评价指标
5.2.1 端到端阶段
(1)Accuracy:判断输出是否精确正确。通常用于分类任务,也可衡量生成文本的整体正确百分比。公式为正确预测数 / 总预测数。
(2)EM:Exact Match,完全匹配,如果系统输出完全等于参考答案,则计为 1,否则为 0。这是 QA 类任务中常用的严格指标。
5.2.2 检索阶段
(1)Recall:衡量"相关文档有没有被找全",是 RAG 检索最核心指标。
(2)Precision:衡量"找回来的文档有多少是真的相关"。
(3)R-Rate:常见地 R-Precision 或回报率,前 R 个检索结果中相关结果的比例。
(4)Hit Rate:前 K 个检索结果中至少命中一个相关答案的比例。
(5)Cosine Similarity:衡量查询向量与候选文档向量之间的相似程度。MRR = 平均(1 / rank_of_first_relevant),rank 越小(越靠前)得分越高。
(6)MRR:Mean Reciprocal Rank,平均倒数排名,衡量第一个正确答案在检索列表中的位置。
(7)NDCG:Normalized Discounted Cumulative Gain,归一化折损累计增益,同时考虑相关性强弱 + 排名位置,位置靠前的相关项贡献更大。
5.2.3 生成阶段
(1)BLEU:"你生成的每一句话有多像标准答案"。评价自动生成文本与参考答案之间的 n-gram 重叠程度,是机器翻译领域常用指标,通常更偏精度。
(2)ROUGE/ROUGE-L:"标准答案里的关键信息你覆盖了多少"。评估生成文本与参考文本之间的重叠情况,通常更偏重召回。
5.3 评估方面
当前评估实践强调三个主要质量分数和四项基本能力,共同为检索和生成提供了评估信息。
5.3.1 质量分数
从不同角度评估了RAG模型在信息检索和生成过程中的效率:
(1)Context Relevance。上下文相关性,评估检索到的上下文的准确性和特异性,确保相关性并最大限度地降低无关内容的处理成本。
(2)Answer Faithfulness。答案忠实性,确保生成的答案与检索到的上下文保持一致,保持一致性并避免矛盾。
(3)Answer Relevance。答案相关性,要求生成的答案与提出的问题直接相关,有效地解决核心问题。
5.3.2 基本能力
各项能力对于评估模型在各种挑战和复杂场景下的性能至关重要,会影响质量分数:
(1)Noise Robustness。噪声鲁棒性,评估模型管理与问题相关但缺乏实质信息的噪声文件的能力。
(2)Negative Rejection。否定拒绝,评估模型在检索到的文档不包含回答问题所需的知识时,在避免响应方面的辨别力。
(3)Information Integration。信息集成,评估模型从多个文档中合成信息以解决复杂问题的能力。
(4)Counterfactual Robustness。反事实稳健性。测试模型识别和忽略文档(或提示词)中已知不准确之处的能力。
以上七个评估方面中:
(1)对于评估检索质量很重要:上下文相关性Context Relevance和噪声鲁棒性Noise Robustness;
(2)对于评估生成质量很重要:答案忠实性Answer Faithfulness、答案相关性Answer Relevance、否定拒绝Negative Rejection 、信息整合Information Integration和反事实鲁棒性Counterfactual Robustness。
下表总结了每个评估方面的具体指标:

5.4 评估基准和工具
已经提出了一系列基准测试和工具来促进RAG的评估。这些工具提供了定量指标,不仅可以衡量RAG模型的性能,还可以增强对模型在各个评估方面的能力的理解。

其中†代表基准,‡代表工具,*表示定制的定量指标,与传统指标不同。
六、讨论与未来展望
1、LLM一次性处理token数量变多,RAG是否变得无用?------RAG仍然发挥着不可替代的作用:
(1)一次为LLM提供大量上下文将显著影响其推理速度,而分块检索和按需输入可以显著提高操作效率;
(2)基于RAG的生成可以快速定位LLM的原始参考,以帮助用户验证生成的答案。整个检索和推理过程是可观察和解释的。
2、在RAG技术的发展中,有一个明显的趋势是朝着不同的专业化方向发展,例如:
(1)定制。定制RAG以满足特定要求;
(2)简化。使RAG更易于使用,减少初始学习曲线;
(3)专业化。优化RAG以更好地服务于生产环境。
3、多模态RAG:RA-CM3是检索和生成文本和图像的开山模型。
七、总结
如下图所示,本工作的总结强调了RAG通过将语言模型中的参数化知识与外部知识库中的大量非参数化数据集成在一起,在增强LLM能力方面取得的重大进展。

(1)概述了RAG框架内的三种发展范式:初级、高级和模块化RAG,每种范式都代表了对其前身的逐步增强;
(2)分别就RAG的检索、生成和增强部分展开综述,讨论阶段性的发展成果和后续的发展趋势;
(3)详细介绍了RAG系统的任务和评估,阐明了怎样的RAG系统才能称之为优良的系统。