RA-LLMs Architecture
RAG主要由三个部分组成,分别是Retrieval,Augmentation和Generation。
Retrieval
给定来自LLMs输入的查询,RAG中的检索过程旨在从外部知识源提供相关信息,这些知识源可以是开源的或闭源的。
Retrieval Type
检索方法通常可以根据信息编码方法分为两类:Sparse Retrival和Dense Retrieval。Sparse Retrieval是基于单词的,在文本检索中主要应用,而Dense Retrieval将查询和外部知识嵌入到向量空间中,可以应用于各种数据格式。
Sparse Retrieval
稀疏检索是一种直接的检索方法,它通常依赖于倒排索引匹配和原始数据输入。这种方法主要基于词频和文档逆频率,即TF-IDF,以及BM25算法。这些算法是信息检索领域的经典技术,它们通过统计词在文档中出现的频率和逆频率来评估文档与查询的相关性。
在RA-LLMs中,稀疏检索被直接应用于段落级别的检索,以支持检索增强生成。在这种情况下,段落被特别表示为词袋,并根据词项和逆文档频率进行排名。这意味着,检索系统会根据词在段落中出现的频率和在所有文档中出现的逆频率来评估段落与查询的相关性。
除了增强生成器的输入外,稀疏检索还被用于在上下文学习中找到示例,以提高RA-LLMs的性能。上下文学习是一种让预训练的大型语言模型通过观察少量示例来理解任务模式的方法,而不需要对模型进行微调。
局限性
-
无训练性质:稀疏检索的一个主要局限性是它不需要训练。这意味着检索性能在很大程度上依赖于数据库的质量和查询的质量。如果数据库不全面或者查询表述不准确,检索结果的相关性可能会受到影响。
-
固定基于词的方法:稀疏检索基于固定的词项匹配,主要支持基于相似性的检索。然而,这种方法不能适应可能存在于大型语言模型应用中的其他检索标准,例如多样性。在某些情况下,我们可能需要检索结果在内容或风格上具有多样性,而不仅仅是与查询相似。
Dense Retrieval
Dense retrieval与Sparse Retrieval不同,它将查询和文档嵌入到连续的向量空间中,基于某些标准(例如语义相似性)进行检索。这种方法通常是可训练的,因此具有更大的灵活性和适应性。
在现有的RAG模型中,作为Dense Retrieval的关键组成部分,Embedding Model有着精细不同的设计。一种简单的设计是直接使用生成模型的一部分作为检索器的嵌入层,这可能有助于增强检索和生成过程之间的对齐。基于BERT的基础架构在检索模型中被广泛使用。在RAG中,一个常见的检索器设计是构建双流编码器,即一个编码器用于查询,另一个编码器用于文档,这种设计也被称为双编码器。早期的RAG方法倾向于冻结或部分冻结检索器的参数,以执行一般级别的相关知识提取,并更多地关注知识利用和生成器的微调。
大规模的专业预训练进一步提升了RAG模型在更多知识密集型任务中的表现。一个典型的成功案例是Dense Passage Retriever(DPR),它使用基于BERT的基础架构,并专门针对开放域问答任务进行预训练,使用问答对数据。DPR作为预训练检索器展现出强大的能力,帮助许多RAG模型在各种下游任务中取得成功。DPR被视为提高LLMs性能的RAG范式的第一步,它可以通过微调进一步提升查询和相关文本数据之间嵌入的对齐。一项近期的研究发现,DPR训练分散了网络中知识的存储方式,创造了访问相同信息的多条路径。通过有效的微调,双编码器检索器也被广泛应用于基于上下文学习(In-Context Learning,简称ICL)的RAG中。具体来说,双编码器检索器更多地被用于基于句子嵌入相似性的检索,以及ICL中的一些特殊需求,如多样化示例检索。
与双编码器相对的是单编码器。单编码器检索器在RA-LLMs中得到了广泛应用,它们可能基于Transformer、BERT或其他现成的序列建模框架。这些检索器的一个特点是通常在大规模未对齐的文档上通过对比学习进行预训练。这种预训练方法使得单编码器检索器具有很好的通用性,能够更好地迁移和泛化到新的领域或任务。
由于单编码器检索器在预训练阶段接触了大量不同的文档,它们能够学习到更为广泛的语言模式和结构,从而在多种不同的任务和领域中发挥作用。这种通用性使得单编码器检索器在多种RA-LLM方法中表现出色。根据现有研究的实验结果,在开放域问答任务中,与InstructGPT配合使用时,不经过微调的通用预训练检索器可以达到与稀疏检索器相当的性能。然而,这两种方法的性能都不如在目标数据集上经过微调的DPR模型,这显示了在目标任务和数据上进行微调的有效性。
Retrieval Granularity
检索粒度指的是在索引语料库时使用的检索单位,例如整个文档(document)、段落(chunk)、标记(token)或实体(entity)等。在RA-LLMs中,选择不同的检索粒度会显著影响模型的有效性和效率,因为它决定了数据库的存储空间和搜索的计算成本。
不同的检索粒度及其影响
-
文档检索(Document Retrieval):早期的检索增强型语言模型提议检索整个文档,然后应用机器理解模型来检测返回文档中的答案跨度。这种方法更侧重于语言阅读和在文档中定位关键信息。
-
段落检索(Chunk Retrieval):在生成型语言模型中,段落检索是常见的做法,它在传统和基于LLM的RAG模型中都有应用,如REALM、RAG和Atlas。段落检索相对于整个文档检索来说,可以提供更紧凑、完整的信息,减少冗余和不相关性。
-
标记检索(Token Retrieval):更细粒度的检索,如标记检索,可以更快地进行搜索,但会给数据库存储带来更大的负担。标记检索适用于需要罕见模式或领域外数据的情况,并且与kNN-LM等工作中应用的每个标记检索策略相配合。
-
实体检索(Entity Retrieval):与上述基于语言的粒度不同,实体检索是从知识的角度设计的。例如,Entities as Experts (EAE)模型将语言模型的参数空间根据实体身份进行划分,旨在从文本中学习实体表示,并用实体记忆来表示知识。在更细粒度的层面上,有研究提出通过学习和检索提及(mention)而不是实体来构建知识库。
Pre-retrieval and Post-retrieval Enhancement
为了提高检索的正确性与相关性,几种pre-retireval和post-retrieval技术被提出.
Pre-retrieval
预检索是RAG技术中的一个重要环节,它通过在检索之前对数据和查询进行优化,为有效的数据访问和检索做好了准备。通过预检索阶段的优化,可以显著提高检索系统的性能,使其能够更准确地满足用户的信息需求。
Query expansion
查询扩展的基本思想是通过某些方法对用户原始查询进行扩展,添加额外的词汇或短语,以更好地捕捉用户的检索意图。
相关技术:
-
Query2doc技术
Query2doc是一种查询扩展方法,它通过少量样本提示大型语言模型(LLMs)生成伪文档,然后使用生成的伪文档扩展查询。这些LLMs是在网页规模的文本语料库上训练的,擅长知识记忆。来自LLMs的伪文档通常包含高度相关的信息,有助于查询消歧并指导检索器。对于稀疏检索(如BM25),为了平衡查询和伪文档的权重,可能会故意将查询重复几次之后再与伪文档进行拼接。对于密集检索,由于查询和文档都被表示为嵌入向量,不需要通过重复查询词汇来增加其权重,因为检索系统已经能够通过向量表示来捕捉查询和文档之间的语义关系。在这种情况下,直接将查询和伪文档中间加一个分隔符进行拼接
-
HyDE技术:
Hypothetical Document Embedding 是另一种查询扩展方法,它通过为查询生成假设文档来提高检索效果。HyDE方法认为原始问题一般都比较短,而生成的假设文档可能会更好地与索引文档对齐。
Query rewrite
查询改写是将用户的原始查询与系统中存储的文档的语义空间进行对齐的过程,以增强大型语言模型对查询信息的精准理解能力。解决用户原始查询中可能存在的措辞不准确或缺少语义信息的问题,这些问题可能导致LLM难以理解并生成相关的结果。
Rewrite-Retrieve-Read框架:
-
框架介绍:Ma等人提出了一个名为Rewrite-Retrieve-Read的框架。这个框架的核心思想是通过提示大型语言模型来生成一个更适合检索功能的查询。
-
改写动机:查询改写的目的是为了在新查询中更清晰地表达检索需求,以减轻检索功能理解输入的负担,并增强输出,即检索到的相关信息。
Query augementation
查询增强是一种将原始查询和初步生成的输出结合起来形成一个新的查询的方法。这个新查询用于从外部数据库检索相关信息,目的是激发语言模型重新思考和增强已生成的结果。检索到的结果可以帮助语言模型更直接地澄清查询和输出之间的关系,提供更多相关的信息。与仅使用原始查询相比,查询增强可能从语料库中检索到更多相关信息,有助于直接澄清查询和输出之间的关系。
Post-retrieval
这是一种在检索和生成阶段之间处理提取的文档的方法,目的是提高检索和生成之间的一致性,特别是在使用封闭源生成器(如大型语言模型)时。后检索增强旨在改善从检索器提取的前k个文档,以便更好地与生成器阶段对齐。
具体方法:
-
Pluggable Reward-driven Context Adapter (PRCA):Yang等人提出了PRCA,这是一种通过强化学习对检索文档进行蒸馏的方法,它通过生成器产生的奖励来微调轻量级适配器,而不是生成器本身。
-
Retrieve-Rerank-Generate (R2G):Glass等人提出了R2G方法,它结合了不同检索方法检索到的文档,并通过重新排序操作来增强检索结果的鲁棒性。
检索到的信息可能不相关或包含噪声,这可能不利于生成模型完成任务,甚至可能损害生成过程。
减少噪声的策略:
-
Wang等人、Asai等人和Yu等人提出了不同的策略来减少检索知识文档中的噪声。
-
Xiong等人的实证研究表明,这些方法依赖于LLM的置信度水平,可能不如预期那样精确。
Wang等人提出了BlendFilter,这种方法同时考虑了检索前查询生成的混合和检索后知识过滤,可以同时解决复杂问题和噪声检索知识问题,从而全面提升基于RA-LLM的性能。最近提出了使用LLMs生成推理路径和计划的高级RAG pipeline,与信息检索模块一起迭代检索知识以增强基于LLM的生成。
增强检索结果与生成模型的兼容性:
-
后检索策略还可以增强检索结果与生成模型之间的兼容性。
-
例如,现有LLMs的一个主要限制是输入token的长度,这阻止了长检索文档直接并入现有的RA-LLMs。
-
Xu等人提出了Retrieve, Compress, Prepend (RECOMP)方法,它在生成过程中增加了一个中间步骤,将检索到的文档处理成文本摘要,然后再进行上下文增强。
-
Hofstätter等人提出了FiD模型的轻量级版本,该版本在将编码向量串联并通过解码器之前,先压缩每个检索段落的编码向量,并在应用生成之前对检索结果进行重新排序。
总结来说,后检索增强是一种在检索和生成阶段之间处理文档的技术,它通过减少噪声、增强检索结果的鲁棒性、提高与生成模型的兼容性以及处理长文档等问题,来提升基于LLM的生成任务的性能。
Database
检索可以在封闭源或开放源的知识库上进行,封闭源数据库通常存储键值对形式的知识,键用于相似性匹配,可以是稀疏向量(如BM25)或检索编码的密集嵌入,值取决于具体的检索目标,大多数情况下是原始文本。
早期的RAG模型将维基百科文章分割成不重叠的100词块,形成总共2100万份文档。每份文档通过密集嵌入编码,并以值和键的形式保存在数据库中。值还可以存储标记,每个标记对应一个,如在kNN-LM和SPALM中应用。使用互联网搜索引擎(如Bing和Google)可以避免维护搜索索引,并能够访问最新的知识。与封闭源数据库相比,它提供了更广泛的知识基础。经过数十年的调整,互联网搜索可以提供高质量的排名。互联网搜索已广泛与黑盒LLMs结合,并显示出对不同功能(如知识增强、事实检查和LLM代理增强)的有效性。
Augmentation
Input-Layer Augmentation
这是一种常见的集成检索信息的方法,即将检索到的文档与原始输入/查询结合起来,作为一个整体输入传递给生成器。例如,In-Context RALM通过将原始输入和所有检索到的文档连接成一个单一序列,作为生成模型的新输入,来应用输入层集成。这种增强方法受到检索到的文档数量的限制,因为连接后的新输入可能太长,无法被生成模型处理。In-Context RALM通过从新输入的开始移除token来缓解这一限制。为了避免因移除token而丢失信息,FID模型采用了不同的集成方法,即在编码器中独立处理每个检索到的文档。这种策略可以扩展到大量上下文,因为它在后续处理中只对一个上下文执行自注意力。Atlas和REPLUG应用了类似的并行集成方法,通过一次连接查询和一个检索到的文档。这种并行集成方法允许同时处理多个上下文,而不需要一次性将所有内容合并。大多数基于黑盒生成模型的RAG方法应用输入层增强,因为生成模型的中间层或输出分布是不可达的。对于大型语言模型,输入层增强可能会将检索到的内容用作(额外的)提示或示例,而不仅仅是作为传统RAGs中原始输入的补充。提示检索旨在通过检索自动找到合适的自然语言提示,以教会LLM在上下文中学习或诱导LLM进行推理。
Output-Layer Augmentation
这是一种后处理形式的增强,即在生成模型的输出层将检索结果和生成结果结合起来,例如,kNN-LM模型在预测时会插值两个下一个token的分布:一个是由语言模型诱导的,另一个是由检索语料库中的最近邻居诱导的。输出层线性集成是灵活的,因为它可以被插入到大多数生成模型中而无需额外的训练。然而,输出层增强的简单性也限制了模型对检索文本进行推理的能力。为了解决这个限制,Yogatama等人提出了添加一个额外的门控网络(gating network)来后处理检索数据,以实现更好的性能。对于LLMs,输出层集成与输入层集成一样合理和适应性强。REFEED提出了一个答案细化机制,该机制应用LLM来评估检索到的信息,并相应地调整初始答案,以提高响应的准确性。类似地,Zhang等人提出了COMBO框架,该框架根据预训练的鉴别器将LLM生成的段落与检索到的对应物匹配成兼容对。然后,这些段落对由基于解码器的融合机制(Fusion-in-Decoder-based)处理,以得出最终答案。
Intermediate-Layer Augmentation
与之前提到的非参数化方法(输入层增强和输出层增强)相比,中间层增强是一种更深入的增强方式,它通过设计一个半参数化模块来整合检索结果,该模块通过生成模型的内部层进行增强。这种增强可能会增加额外的复杂性,但有望通过有效的训练来增强生成模型的能力。通常,会引入一个Transformer模块来利用检索到的信息(通常编码成密集表示)进入生成模型,并与生成过程中中间阶段的表示进行交互。RETRO模型引入了一个分块交叉注意力(Chunked Cross Attention, CCA)层来处理生成器块中检索到的块。Wu等人引入了kNN增强注意力层(kNN-Augmented Attention Layer)。EAE和TOME模型分别使用实体记忆(Entity Memory)和记忆注意力层(MemoryAttention layer)来整合检索到的实体和实体提及。中间层增强可以频繁且高效地使用许多块来增强整个RAG模型的能力。它提供了一种有效的替代方案,可以整合大量频繁检索到的文本块,这些文本块由于语言模型的输入长度限制,使用输入层集成处理起来具有挑战性。需要注意的是,中间层增强需要对生成模型有较高的访问权限,这对于大多数只能通过推理API访问的大型语言模型来说是不可行的。
Retrieval Augmentation Necessity and Frequency
检索增强模型(RA-LLMs)旨在通过补充知识来增强生成能力。尽管这类模型显示出了潜力,但它们并非万能解决方案。不加选择地将不相关的信息添加到LLMs中可能会覆盖LLMs已经拥有的正确知识,导致错误的回答。Thakur等人提供了一个人类标注的数据集,用于评估LLMs对外部检索知识错误的鲁棒性。研究发现,LLMs在处理不相关检索段落时的幻觉率(hallucination rate,即生成错误信息的比率)可能是处理相关段落时的两倍。对于RA-LLMs来说,关键是要准确回忆起先前的知识,并只在必要时选择性地整合检索到的信息,这是构建鲁棒RA-LLMs的路径。大多数现有方法基于LLMs的初步回答或内部推理结果来确定检索的需求。例如,Self-RAG模型引入特殊标记来评估检索的必要性并控制检索行为。其他方法设计迭代提示来决定是否需要额外信息,从而触发检索或其他LLMs的操作。Wang等人提出了SKR方法,该方法使用LLMs自身或小型可训练模型提供自知识,作为适应性调用检索器的参考。在传统RAGs中,通过直观方法如评估生成模型产生的logits的置信度来判断检索的必要性。例如,FLARE模型在logits低于特定阈值时动态触发RAG。
在不考虑检索必要性的情况下,检索频率是决定使用检索程度的重要设计方面,从而显著影响RAG模型的整体性能。检索频率控制了对检索结果的依赖程度,影响模型的效率和效果。常见的设置有:一次性、每n个token、每个token。一次性检索仅在生成过程开始时调用检索功能一次,并尝试在那次操作中找到所有所需信息。对于需要长篇输出的语言任务,如开放域摘要,输出中token之间的依赖性在生成过程中更为重要,这就需要在生成过程中进行检索操作。
不同的检索频率可以影响RAG方法的有效性和效率。更频繁的检索可以提高性能,但也会增加计算成本。选择检索频率是计算成本和性能之间的权衡。
Generation
生成器的设计在很大程度上取决于下游任务。对于大多数文本生成任务来说,仅解码器和编码器-解码器是两种主要的结构。最近商业闭源大型基础模型的发展使得黑盒生成模型在RA-LLMs中成为主流。在这一部分,我们将简要回顾这两种类型的生成器的研究:参数可访问(白盒)和参数不可访问(黑盒)。
Parameter-Accessible Generators (White-box)
-
结构:这类生成器的特点是编码器-解码器(Encoder-Decoder)结构,其中编码器和解码器使用不同的参数集独立处理输入和目标。
-
交叉注意力机制:在这种结构中,开发了一个交叉注意力组件,用于将输入令牌(input tokens)连接到目标令牌(target tokens)。
-
代表性模型:T5和BART是这种类型的代表性模型。
Decoder-only models:
-
结构:与参数可访问生成器不同,解码器仅模型在将输入和目标连接后一起处理,这意味着两部分的表示是同时逐层构建的,随着它们在网络中传播。
-
代表性模型:虽然文中没有明确提到具体的代表性模型,但常见的解码器仅模型包括Transformer的变种,如BERT。
在RAG工作中的应用:
-
RAG模型:RAG和Re2G使用BART模型,而FID和EMDR2则利用T5模型。
-
其他模型:还有一些其他模型,它们采用基于Transformer的编码器-解码器架构,但进行了一些定制设计。
生成器的特点:
-
数据检索:在RAG中,生成器与一般生成器的区别在于它们结合了检索到的数据,以提高生成的准确性和相关性。
-
参数优化:白盒生成器允许参数优化,这意味着它们可以被训练以适应不同的检索和增强方法,以获得更好的生成性能。
Parameter-Inaccessible Generators (Black-box)
黑盒生成模型的定义:
-
某些比例的大型语言模型(LLMs),尤其是规模特别大的模型,如GPT系列、Codex和Claude,被称为黑盒生成模型。
-
这些模型不公开内部结构或参数的可访问性,用户只能进行输入查询和接收响应的操作,而不能修改内部结构或更新参数。
黑盒模型的挑战:
-
即使是那些开放微调(fine-tuning)的LLMs,由于规模庞大,仅凭有限的数据很难针对下游特定领域任务进行调整。
-
因此,黑盒RA-LLMs(Retrieval-Augmented Large Language Models)更注重检索和增强过程,试图通过增强输入(在LLMs的上下文中也称为提示或prompt)来提升生成器的性能。
增强方法:
-
检索增强:Rubin等人提出了一种训练提示检索器的方法,使用语言模型自身标记的数据,以提供更好的示例,增强上下文学习,从而提升最终的生成性能。
-
文档压缩:Xu等人提出了在上下文整合前压缩检索到的文档的方法,这可以减少计算成本,并且减轻语言模型在长文档中识别相关信息的负担。
RA-LLMs Training
Train-free
无需额外训练过程,而是依赖于模型参数中编码的隐性知识。
Prompt Engineering-based Methods
LLMs的生成性能在很大程度上依赖于输入的查询。这意味着模型生成的响应质量与提供给它的初始信息(即查询)紧密相关。为了提高LLMs的性能,许多研究提出了训练无关的RAG方法,这些方法通过改进原始提示来引入外部知识。这些方法不需要对模型进行额外的训练,而是通过检索来增强模型的能力。检索到的文本通常被用作上下文信息,并与原始提示结合,以指导LLMs的生成过程。这种方法可以帮助模型在生成响应时考虑到更多的背景信息。
-
In-Context RALM:这种方法在不改变LLM参数的情况下,直接将检索到的文档添加到原始提示之前,以增强生成过程。
-
IRCoT:这种方法将链式思考(CoT)生成和知识检索步骤交错进行,与仅依赖问题作为查询的标准检索方法相比,能够检索到更相关的信息以用于后续的推理步骤。
-
GENREAD:与从大型语料库中检索知识不同,GENREAD首先提示LLM基于查询生成上下文文档,然后基于给定的上下文和问题生成答案。
-
SKR:SKR提出引导LLM判断它们能否根据内部知识回答给定问题,从而灵活地利用内部和外部知识,通过选择性地调用检索器。
-
TOC:TOC首先为模糊问题检索相关知识,并通过澄清模糊问题构建递归树结构,进一步聚合以生成长形式答案
Retrieval-Guided Token Generation Methods
除了将外部知识直接整合到原始提示中,还可以利用辅助信息来调整LLMs的token生成过程,以提高模型的性能和准确性。
-
KNN-KMs方法:KNN-KMs方法首先根据给定的查询从数据存储中检索出k个最相关的上下文,并基于距离计算出一个邻近分布。然后,通过插值邻近分布和原始模型的输出分布来校准输出分布。这种方法可以使得模型在生成token时考虑到更多的上下文信息,从而提高生成的准确性。
-
Rest方法:Rest方法提出了用非参数检索数据存储替代参数化模型,并根据当前上下文检索相关token以进行推测性解码。这种方法可以提高模型的灵活性和适应性,使其能够根据当前的上下文动态地调整token生成过程。
-
推测性解码:推测性解码是一种加速LLM推理的技术,它利用小型模型快速生成多个token,并保留过程中的采样概率分布,然后由大型模型进行验证。这种方法可以显著提高推理速度,同时保持解码质量。
Train
Independent Training
独立训练是指检索器和LLMs作为两个完全独立的过程进行训练,在训练过程中检索器和LLMs之间没有交互。与不需要训练的方法相比,通过训练LLMs利用检索到的知识或训练检索器来弥合信息检索和语言生成之间的差距,可以有效地提高增强型检索增强生成模型的性能。对于LLMs的训练,负对数似然损失是最有代表性的训练目标,其目的是引导LLMs根据给定的输入生成期望的输出
-
稀疏检索器(Sparse retriever):这类检索器通常利用稀疏特征(如词频)来表示文档,并基于特定任务的度量标准(如TF-IDF和BM25)计算相关性得分。
-
密集检索器(Dense retriever):这类检索器使用深度神经网络将查询和文档编码成密集表示,然后通常使用内积来计算相关性得分并检索相关的外部知识。
具体方法和案例:
-
DPR:DPR使用两个独立的BERT网络分别对查询和段落进行编码,并通过对比学习来训练这些模型。
-
CoG:CoG提出训练一个前缀编码器和一个短语编码器用于检索,并将文本生成重新定义为从现有源文本集合中进行多次复制和粘贴操作。
Sequential Training
为了更好地增强检索器和生成器之间的协同作用,提出了几种顺序训练方法。这些方法通常首先独立预训练检索器或生成器,然后固定其中一个模块,而另一个模块则进行训练。各种现有的模型(例如BERT、CLIP、T5)可以直接作为固定的检索器和生成器使用,从而跳过第一个相关过程。这意味着可以不经过预训练阶段直接使用这些模型。
根据检索器和生成器之间的训练顺序,顺序训练可以分为两类:
-
检索器优先(Retriever First):在这种方法中,首先训练检索器,然后固定检索器,接着训练生成器。
-
LLMs优先(LLMs First):在这种方法中,首先训练LLMs,然后固定LLMs,接着训练检索器。
Retriever First
在这种方法中,检索模型首先被独立训练,然后固定,之后LLMs利用检索到的知识进行训练。
相关研究:
-
RETRO:RETRO方法使用独立预训练的BERT模型作为检索器,并训练一个编码器-解码器架构,将检索到的内容块整合到模型的预测中。
-
RALMs:RALMs方法采用Google Search和开源的COLBERTV2作为预训练的检索器,并对LLM进行微调,以有效利用检索到的段落。
-
ITERRTGEN:ITERRTGEN使用预训练的S-BERT作为检索器,并引入了一种自适应的混合检索策略来检索示例。此外,它还利用T5作为生成器,根据目标标签和输入(结合原始提示和检索到的示例)进行进一步的微调。
-
SMALLCAP:SMALLCAP提出了使用强大的预训练多模态网络CLIP来编码输入图像和外部数据存储的文本数据,并基于余弦相似度检索最相关的项目。训练了一个交叉注意力层,并使用GPT-2作为解码器来生成描述。
关键点总结:
-
检索器的预训练和固定:在这些方法中,检索器首先被独立训练并固定,这意味着在后续的LLMs训练中,检索器的性能不会改变。
-
LLMs的训练:LLMs的训练依赖于检索器提供的知识,这表明检索器的性能对LLMs的最终性能有直接影响。
-
多样化的模型和策略:不同的方法采用了不同的预训练模型(如BERT、COLBERTV2、S-BERT、CLIP)和检索策略(如自适应混合检索、基于余弦相似度的检索)。
-
生成器的角色:在这些方法中,生成器(如T5、GPT-2)通常在检索器固定后进行微调,以更好地整合检索到的知识。
LLMs First
与先训练检索器不同,这种策略首先预训练LLMs,然后在LLMs的训练和监督下调整检索器。
相关研究:
-
DKRR模型:DKRR模型展示了如何利用序列到序列模型的注意力分数来指示文档的相关性,并提出使用阅读模型的注意力分数生成合成标签以训练检索器。
-
AAR模型:AAR模型提出使用小型语言模型来生成用于训练检索器的监督信号。
-
检索器的进一步利用:训练好的检索器可以进一步用来提升黑盒LLMs的性能。
-
RA-DIT模型:RA-DIT模型首先微调LLMs以增强它们利用检索知识的能力,然后训练检索器以更好地与LLMs的输出对齐。
-
UPRISE模型:UPRISE模型提出了一种轻量级方法,通过引入提示检索器来增强LLMs在未见过任务上的零样本性能。它使用一个冻结的LLM来指导提示检索器的微调过程,该检索器在推理期间为不同任务检索提示,并与各种LLMs结合使用。
关键点总结:
-
LLMs的预训练:首先对LLMs进行预训练,然后在此基础上调整检索器。
-
检索器的微调:在LLMs的监督下对检索器进行微调,以提高检索的相关性和效率。
-
跨任务和跨模型的检索:UPRISE模型特别强调了跨任务和跨模型的检索能力,即检索器能够在未见过的任务上检索合适的提示,并适用于不同的LLMs。
Joint Training
联合训练方法采用端到端的范式同时优化检索器和生成器,而不是顺序地训练每个模块。与顺序训练不同,联合训练方法有效地增强了检索器定位外部知识以供生成的能力,以及生成器有效利用检索到的信息的能力。
相关研究:
-
RAG模型:RAG模型通过最小化负对数似然来同时训练检索器和生成器。
-
REALM模型:REALM模型采用了与RAG类似的训练范式,并使用最大内积搜索技术来定位最相关的文档。
-
MIPS技术的应用:为了使用MIPS技术,首先需要将所有外部文档嵌入到向量空间中,并为每个嵌入生成搜索索引。
-
异步索引更新策略:为了避免重新索引所有文档的时间消耗,提出了一种异步索引更新策略,即每隔几百个训练步骤刷新一次索引。
关键点总结:
-
端到端优化:联合训练方法允许检索器和生成器在训练过程中相互适应,实现端到端的优化。
-
检索器和生成器的协同:这种训练方法提高了检索器检索相关信息的能力,以及生成器利用这些信息的能力。
-
RAG和REALM:这两个模型都是联合训练方法的例子,它们通过不同的技术(如MIPS)来实现检索和生成的协同。
-
索引和更新策略:为了提高检索效率,REALM模型采用了MIPS技术,并提出了异步索引更新策略,以减少训练过程中的时间消耗。
RA-LLMs Application
参考论文: