背景
检索技术是指解析查问,并从外部数据源中失掉有关消息,在搜查、问答、介绍系统等多个畛域失掉宽泛运用。比如谷歌、Bing、baidu都是检索技术成功运行的典型代表,这些搜查引擎可以精准挑选并提供与用户查问相婚配的网页和文档,大大优化了消息检索的效率。用过保养外部数据库中的数据,检索模型可以取得最新、准确的常识。
在AIGC时代,检索基于与生成式模型结合,催生了RAG(检索增强生成技术),这一技术对优化文本内容的生成品质施展着关键作用。
RAG经过整合外部数据源的消息或常识,为输入查问或生成输入提供补充,从而优化生成模型的性能。首先应用检索器从外部数据库中提取相关文档,这些文档随后作为高低文来增强生成环节。RAG技术在各种生成义务中运行宽泛,且易于适配,简直无需额外训练。RAG在开明域问答(OpenQA)等常识密集型义务以及通用言语义务和多种下游运行中都展现出渺小后劲。
大型言语模型(LLM)作为预训练基础模型的代表,已在介绍系统、分子发现和报告生成等多个义务中展现出出色性能。LLM的成功得益于其先进的架构和在海量多源数据上的十亿级参数预训练,使其在言语了解和生成、高低文学习等方面具备清楚的涌现才干。但是,LLM也面临一些应战,如缺乏特定畛域常识、易发生幻觉以及降级模型所需的渺小计算资源。特意是在医学和法律等专业畛域,这些疑问尤为突出。近期钻研显示,即使是最先进的LLM,在特定法律查问中也普遍存在幻觉现象,幻觉率高达69%至88%。此外,处置幻觉疑问所需的少量计算资源,进一步限度了LLM无理想环球运行中的遍及。
为了处置或许缓解大言语模型的局限性,近期有钻研开局探求应用检索增强生成技术来优化大言语模型在多项义务中的体现,尤其是那些须要最新技术、牢靠常识有很高要求的畛域。
本篇综述的目的是片面梳理RAG技术,在架构、训练、运行方面启动总结。
检索技术
当接纳到LLM的查问输入时,RAG框架中的检索环节旨在从外部常识库中提取相关消息,这些常识库或许是地下的或私有的,如上图所示。
如上图,**组件检索器是由多个步骤组成,协同上班,以确保消息检索的准确性。检索的详细操作流程,还包括预检索和后检索等步骤。前面的内容里会逐个引见关键的检索技术细节,包括:检索器类型、检索粒度、预后检索增强、数据库技术等。
检索器类型
检索方法大抵分为两大类:基于词的稠密检索和将查问和外部常识嵌入向量空间的密集检索。其中,稠密检索关键用于文本检索,而密集检索则实用于多种数据格局。
稠密检索
如TF-IDF和BM25,是一种便捷间接的方法,理论依赖于倒排索引婚配和原始数据输入。例如,许多钻研间接驳回BM25启动段落级别的检索,以支持其RAG系统,用词的汇合来示意段落,并依据词频和逆文档频率启动排序。除了辅佐生成器输入外,稠密检索也被用于寻觅高低文学习示例。
在RAG中运行稠密检索的关键局限在于其非训练性质,这造成检索性能在很大水平上依赖于常识库的构建品质和查问生成的成果。此外,这种固定术语的方法仅支持相似性检索,并不能顺应LLM运行中所需的其余类型的检索,如多样性。
密集检索
与稠密检索不同,密集检索将查问和文档依据特定规范嵌入到延续向量空间,例如语义相似性。由于可以启动训练,密集检索方法在顺应性上展现出更大的灵敏性和后劲。在现有的RAG模型中,作为密集检索器**的嵌入模型。
一种繁复的设计方法是间接应用生成模型的一局部作为检索器的嵌入层,这有助于增强检索与生成环节的分歧性。
另外基于Bert的一些模型,也在检索模型中失掉宽泛运用。经常出现的一种检索器设计是构建双流编码器(一个用于处置查问,另一个用于处置文档),这种方法也被称作双编码器。早期的RAG方法往往会解冻或局部解冻[69]检索器的参数,以便口头基础级别的相关常识提取,同时愈加器重常识的应用和生成器的微调。大规模的专门预训练进一步优化了RAG模型在常识密集型义务上的体现。一个典型的例子是Dense Passage Retriever(DPR),它基于BERT构建,专门为OpenQA义务预训练,经常使用疑问-答案对数据。
经过有效的微调,双编码器检索器也被宽泛运行于基于ICL的RAG中,尤其是在基于句子嵌入相似性的检索,以及ICL特殊需求,如多样化示例检索。
另一类在RA-LLMs中宽泛经常使用的密集检索器是单编码器结构,或许基于Transformer、BERT或其余现成的序列建模。这些单编码器检索器理论在大规模未对齐文档上经过对比学习启动预训练,因此在通用性上体现出色,能够更好地顺应和泛化到新畛域或义务。这类通用型预训练检索器在面向多样化义务的LLM中愈加灵敏,已在多种RA-LLM方法中证实了它们的有效性,例如In-Context RALM、Atlas、Self-RAG。
依据现有钻研的试验结果,关于开明域问答义务,与InstructGPT结合经常使用时,未经微调的通用型预训练检索器(如Contriever)的性能可与稠密检索器(如BM25)相媲美。但是,它们都不如在指标数据集上经过微调的DPR模型,这标明了在特定义务和数据上启动微调的关键性和有效性。
检索粒度
检索粒度是指索引资料库时驳回的检索单元,比如:文档、段落、词、实体等不同层级。在大言语模型RAG运行中,选用何种粒度会清楚影响模型的成果和性能,也取决于数据库存储空间大小、检索时的计算开支。
• 最早期的RAG系统倡导检索整个文档,这种方法并重于文本阅读和定位文档中的关键消息。在生成式言语模型中,经常出现的粒度是段落检索,也被称为块检索。
• 而更细粒度的检索,比如词检索,虽然检索速度更快,但是关于数据库存储的累赘太大。词符检索更适宜于须要寻觅稀有形式或处置跨畛域数据的场景,并且与kNN-LM等每词符检索战略以及相关上班配合良好。相比之下,文本块检索理论蕴含更紧凑、完整的消息,增加冗余和不相关性,因此在RAG中成为干流的检索文本粒度。
• 另一种关键的检索粗疏水平是实体检索。与上述检索类型不同,实体检索是从常识而非言语的角度登程设计的。比如,Févry等人引入了“实体即专家”(EAE)模型,该模型依据实体身份划分言语模型的参数空间。EAE模型的指标是从文本中学习实体示意,并结合其余模型参数经常使用维基百科数据库来示意常识,并以实体记忆的方式出现。在更粗疏的层面上,de Jong等人倡导经过学习和检索提及而非实体来构建常识库。总体而言,在RAG中运行实体或提及级别的检索,关于以实体为中心的义务来说更为有效,并且在空间应用上比逐词符检索更为高效。
预检索和检索后处置
为了提高检索的准确度和相关性,大家设计了多种战略优化检索器的输入输入流程。
• Query2doc:经过大指示例疏导大言语模型生成模拟文档,应用这些文档中的消息来裁减查问,以提高查问的准确度。这种方法能够有效优化稠密和密集检索器在特定消息检索数据集上的体现。
• HyDE:应用大言语模型生成假定文档,而后将假定文档作为新的查问输入,这样能提高检索的准确性。
• 马等钻研者提出了重写-检索-阅读框架,该框架经过LLM生成针对检索配置的查问。重写步骤的目的是为了在新的查问中明白检索需求,减轻检索配置了解输入的累赘,并提高输入品质,即检索到的相关消息。他们测试了经常使用固定LLM和可训练模型作为重写器的两种状况,均优于传统的RAG或生成模型,并在不同问答(QA)数据集上展现了不同的性能体现。
• 余等钻研者提出了查问增强技术,将原始查问与初步生成的输入兼并为新的查问,以便从外部数据库中检索更多相关消息。这些检索结果能够激起言语模型从新扫视并优化生成的结果。与仅经常使用原始查问相比,这种增强方法或许会为语料库中检索到的与查问-输入相关间接相关的消息提供更多协助。将初始输入归入新查问中,进一步增强了待检索支持文档与提出疑问之间的词汇和语义堆叠。查问增强在一切查问增强战略中体现更佳,由于它在生成答案时能够综合处置一切检索到的常识。
后检索增强指的是在将检索器提取的前k个文档输入生成器之前,对这些文档启动处置的步骤,以改善检索与生成阶段之间的婚配度,尤其实用于LLMs等敞开源生成器。
• 杨等钻研者[164]提出了可插拔的鼓励驱动高低文适配器(PRCA),该适配器准许在特定数据集上对轻量级适配器而非生成器启动微调。它还经过强化学习对检索文档启动提炼,提炼环节基于生成器发生的鼓励。
• Glass等钻研提出了检索-重排-生成(R2G)方法,该方法将不同检索方法检索到的文档经过重排操作整合起来,以增强检索结果的持重性。运行后检索增强的另一个思考是,检索到的消息有时或许不相关或蕴含噪声,这或许不会协助生成模型成功义务,甚至或许对生成环节发生负面影响。
• 王等钻研者、Asai等钻研者、余等钻研者提出了多种战略来增加检索常识文档中的噪声。但是,熊等钻研者的实证钻研标明,这些方法依赖于LLM的置信水平,其准确度或许并不如预期。针对这一疑问,王等钻研者提出了BlendFilter方法,该方法同时思考了预检索查问生成的混合以及后检索常识的过滤。这种方法能够同时处置复杂疑问的检索和常识噪声疑问,从而片面优化了检索增强模型的性能。
最近提出了应用LLMs生成推理门路和方案的初级RAG流程,经过与消息检索(IR)模块的迭代配合,逐渐检索常识以增强基于LLM的生成才干。但是,朱等钻研者指出,假设IR和LLM的输入品质不高,检索和生成环节或许会在这样的迭代疏导流程中相互阻碍。为克制这一阻碍,他们提出了一种新的推理方法,用以增强查问和检索到的常识。
后检索战略也可用于提高检索结果与生成模型之间的兼容性。例如,现有LLMs的一个关键限度是输入令牌的长度,这限度了长检索文档间接融入现有的RA-LLMs。为处置这一限度,徐等钻研者提出了检索、紧缩、前置(RECOMP)方法,该方法在生成环节中的高低文增强前参与了一个两边步骤,将检索到的文档处置成文本摘要。
数据库
RAG的检索附丽于外部常识源,这些常识源可以是敞开的或开明的,如上图所示。敞开源数据库理论存储键值对方式的常识,这些键值对可以有多种构建方式。键关键用于相似性婚配,可以是BM25中的稠密向量,也可以是检索编码生成的密集嵌入。值的内容取决于检索指标,大少数状况下是原始文本。
维基百科是RAG钻研中罕用的通用检索集,它存储了少量理想性结构化消息,并且有不同规模的版本,从十亿级到万亿级。特定畛域的数据库也用于特定的下游义务。例如:
• 在代码生成义务中,Zan等人搜集了公共库的API消息和代码文件,构建了API检索器数据库。
• 周等人则提出经常使用一个频繁降级新内容的文档池。经常使用互联网搜查引擎,如Bing和Google,可以防止保养搜查索引的费事,同时能够失掉最新的常识。它还提供了比敞开源数据库更宽泛的常识基础。互联网搜查曾经与大型言语模型(LLM)宽泛结合,显示出在常识增强、理想核对和大言语模型增强等方面的有效性。
与惯例RAG相比,互联网搜查在RA-LLMs中作为检索器的经常使用更为频繁,这是由于LLM具备了解搜查结果的特殊才干,即检索到的文档,以及经常使用工具处置和剖析这些文档的才干[92]。现有钻研标明,应用搜查引擎(如InstrucGPT)关于LLM在零样本常识密集型义务,如OpenQA和理想核对上,尤其有效。
生成器
在整个检索增强生成环节中,生成器的作用也至关关键。目前生成器关键有两种干流选用,区分是:纯解码器模型和编码器-解码器模型。
但是在实践运行中,生成器往往可以分类为白盒模型和黑盒模型。
白盒模型
白盒模型是指可以访问到模型参数的模型。
• 编码器-解码器模型独立处置输入和指标,经常使用不同的参数集,并经过交叉留意力机制将输入标志与指标标志相衔接。T5和BART是这类模型的典型代表。
• 纯解码器模型在输入和指标串联后启动处置,使得两局部的表征能够逐层并行构建,随着网络的深化而逐渐构成。
这两种架构的生成器在RAG钻研中失掉了宽泛的运行。例如,RAG和Re2G驳回了BART模型;而FID和EMDR2则应用了T5。还有一些其余模型驳回了基于Transformer的编码器-解码器架构,并启动了特定的定制设计。
RAG中的生成器经过整合检索到的数据来优化生成的准确性和相关性,从而与传统生成器有所区别。此外,白盒生成器支持参数优化,能够经过训练顺应不同的检索和增强方法,以优化生功成果。
黑盒模型
黑盒模型是指无法访问参数的生成器。局部大型言语模型(LLMs)颁布时并未地下其外部结构或参数访问权限,尤其是那些规模极大的模型,如GPT系列、Codex和Claude,这些理论被称为黑盒生成模型。这类生成器仅支持输入查问和接纳照应的基本操作,不准许修正其外部结构或降级参数。
从另一个角度来看,即使是开明微调的大型言语模型,由于其庞大的规模,也难以仅凭有限的数据量针对特定下游义务启动有效微调。
因此,黑盒RA-LLMs更并重于检索和增强环节,经过为输入参与更丰盛的常识、指点或示例来优化生成器的性能。
检索与生成融合技术
融合技术是将检索和生成模块整合起来的关键步骤,在增强型大型言语模型(RA-LLMs)中表演着至关关键的角色。普通有三种关键的融合设计谋略:输入层融合、输入层融合和两边层融合,这些设计区分作用于生成器的不同层面,详细细节如上图。
输入层融合
一种经常出现的融合检索消息或文档的方法是将其与原始输入或查问结合,而后一并送入生成器,这种方法称为输入层融合。例如,In-Context RALM 经过将原始输入和一切检索到的文档串联成繁多序列,以此作为生成模型的新输入,成功了输入层融合。虽然这种方法成果清楚,但它受限于检索到的文档数量,由于过长的输入序列或许超出了生成模型的处置才干。
特意是关于大型言语模型,输入层融合或许会将检索到的内容用作(额外的)揭示或示例,而不只仅是作为传统RAGs 中对原始输入的补充。揭示检索的目的是智能找到适宜的人造言语揭示,经过检索教诲LLM在特定高低文中学习或促使LLM启动推理。这种方法可以在不启动精细的揭示设计的状况下增强LLM的零样天性力。例如,Cheng等提出了一种基于输入-揭示对数据学习揭示检索器的方法,这些数据的得分标签来自一个固定的LLM。
输入层融合
增强技术的另一种方式是输入层融合,它将检索结果与生成结果相结合。
例如,kNN-LM 在预测阶段将言语模型发生的下一个令牌散布与检索语料库中的最近邻发生的散布启动插值。输入层的线性融合方法运行灵敏,由于它可以无缝集成到大少数生成模型中,无需额外训练。但是,输入层融合的繁复性也或许限度模型对检索文本启动深化推理的才干。
为了克制这一限度,Yogatama等人提出了参与一个额外的门控网络来后处置检索数据,从而取得更好的性能。输入层融合与输入层融合一样,都是正当且顺应性强的战略。
REFEED 提出了一种答案优化机制,应用LLM评价检索到的消息,并据此调整初始答案,以优化回答的准确性。雷同,Zhang等人提出的COMBO框架,经过预训练的甄别器将LLM生成的段落与检索到的对应段落婚配成兼容对,而后经过基于解码器的融合方法来得出最终答案。
两边层融合
与前述的两种非参数方法相比,更深化的增强方法是设计一个半参数模块,经过生成模型的外部层来整合检索结果,这称为两边层融合。这种融合或许会参与额外的复杂性,但有望经过有效训练优化生成模型的性能。理论,会引入一个Transformer模块,将检索到的消息(理论编码为密集示意)融入到生成模型中,以便在生成环节的两边阶段与模型的外部示意启动交互。
例如,RETRO 引入了一个块状交叉留意力(CCA)层来处置生成器块中的检索块,而Wu等人 引入了kNN增强的留意力层。EAE 和TOME也区分经常使用实体记忆和记忆留意力层来整合检索到的实体及其提及。这种两边层融合可以频繁且高效地经常使用多个模块来增强整个RAG模型的才干。它为频繁检索的少量文本块提供了一种有效的整合方式,这些文本块由于言语模型的输入长度限度而难以经过输入层融合来处置。但是,也应留意到,两边层融合须要对生成模型有较高的访问权限,这关于那些关键经过推理API [92] 提供访问的大少数LLMs来说是不理想的。
检索增强的必要性与频次
在基于大言语模型的生成义务中,检索操作的关键目的是补充常识以优化生成品质。虽然检索增强型模型展现出了后劲,但它们也因无法普遍实用而遭到批判。无差异地向LLM参与有关文段或许会笼罩LLM已把握的正确常识,反而造成失误照应。Thakur等人现LLM在处置不相关检索文段时的幻觉率或许是相关文段的两倍。因此,关于增强型LLM(RA-LLMs)来说,准确回想先验常识并在必要时有选用性地整合检索消息,是构建鲁棒RA-LLMs的关键。
大少数现有方法依据LLM的初步答案或其外部推理结果来判别检索的必要性。例如,Self-RAG引入特殊标志来评价检索的必要性并控制检索行为。还有方法设计迭代揭示,以选择在生成环节中能否须要额外消息,进而触发LLM的检索或其余操作。在传统RAGs中,也探求了检索必要性的判别,并提出经过直观方法如评价生成模型发生的logits的置信度来处置。这种处置方案雷同实用于RA-LLMs,例如,FLARE在logits低于特定阈值时灵活启动RAG。
Tan等人提出了SlimPLM,这是一种单干式方法,经过一个精简的代理模型检测LLM中缺失的常识,并生成一个“启示式答案”。这个答案用来评价检索的必要性,并在须要时经过查问重写促成检索环节。
在传统RAGs中,由于很少思考检索的必要性,检索频次(也称为检索步幅)成为关键的设计考量,它选择了在生成中经常使用检索的水平,从而清楚影响RAG模型的全体性能。检索频次控制了对检索结果的依赖水平,影响模型的效率和成果。当不考量检索必要性时,检索频次理论是预设且固定的,经常出现的设置有:一次性性、every-n-token 和 every token。
一次性性检索仅在生成环节开局时调用一次性检索配置,尝试一次性性找到一切所需消息,并随后将一切检索到的文档与原始输入一同提供应生成模型,如REALM 所运行的。这种方式更适宜于LLM曾经明白知道外部数据库所需消息的状况。
但是,关于须要长篇输入的言语义务,如开明域摘要,输入中token之间的依赖性在生成环节中更为关键。在这些状况下,经过一次性性检索预先检索到的文档或许无余以支持整个输入序列的生成,这就要求在生成环节中启动检索操作。为此,In-Context RALM 和RETRO 在生成环节中驳回每n个token检索,以成功更好的增强成果。相比之下,kNN-LM 驳回了更频繁的检索战略,为生成环节中每个令牌的预测检索消息。总体而言,驳回不同频次的检索可以影响整个RAG方法的有效性和效率。例如,更频繁的检索虽然能优化性能,但也会提高计算老本。因此,在计算老本和性能之间选用检索频次简直是一种掂量。
模型训练
现有的RAG技术依据能否须要训练分为两大类:无需训练的方法和基于训练的方法。无需训练的方法在推理阶段间接运行检索到的常识,经过将检索文本嵌入到揭示中,防止了额外的训练步骤,这在计算上更为高效。但这种方法或许面临的疑问是,检索器和生成器没有为特定下游义务启动特意优化,这或许造成检索常识的有效应用无余。为了更充沛地利用外部常识,提出了一系列方法对检索器和生成器启动微调,以指点大型言语模型运行有效地顺应和整合检索到的消息。依据训练战略的不同,将这些基于训练的方法细分为三个类别:独立训练方法、顺序训练方法和联结训练方法。
无需训练方法
由于须要少量的时期和计算资源,频繁地启动微和谐降级模型参数中存储的常识存在很大的疑问,所以经过引入检索机制来增强LLM,使其能够在无需额外训练的状况下,灵活地从外部起源失掉新常识,而不是仅依赖于模型参数中隐含的常识。这些方法在各种常识密集型义务中,如开明畛域问答和文档摘要,都显示出了清楚的性能优化。依据LLM经常使用检索消息的不同战略,将这些无需训练的方法分为两大类:基于揭示工程的方法和检索疏导的令牌生成方法。
基于揭示工程的方法
由于LLM的生成性能极大地依赖于输入查问,许多无需训练的RAG方法经过优化原始揭示来应用外部常识。详细来说,检索到的文本理论作为高低文消息,与原始揭示结合,以疏导LLM的生成环节。
例如,In-Context RALM在不扭转LLM参数的状况下,将检索到的文档间接拔出到原始揭示之前,以增强生成环节:
• IRCoT经过交替启动链式思想(CoT)生成和常识检索步骤,相比仅以疑问作为查问的规范检索方法,能够检索到更相关的消息以支持后续的推理步骤。
• GENREAD不是间接从大型语料库中检索常识,而是首先疏导LLM依据查问生成高低文文档,而后基于这些文档和疑问生成答案。
• SKR提出一种方法,让LLM依据自身的外部常识判别能否能够回答特定疑问,从而灵敏地利用外部和外部常识,经过选用性地调用检索器。
• TOC首先为含糊疑问检索相关常识,而后经过将含糊疑问分解为多个明白的子疑问,递归构建树状结构,进一步聚合以生生长篇答案。
检索疏导的令牌生成方法
除了将外部常识间接整合到原始揭示中,还可以应用辅佐消息来调整令牌生成环节:
• KNN-KMs首先依据给定的查问从数据存储中检索