一文看懂RAG的各种套路 | 综述:当RAG遇到大语言模型 精华
背景
图片
检索技术是指解析查询,并从外部数据源中获取有关信息,在搜索、问答、推荐系统等多个领域得到广泛运用。比如谷歌、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会将每篇维基百科文章分割成100字的独立段落,总计约2100万份文档[69]。这些文档通过密集嵌入编码,其值和键分别存储于数据库中。值也可以是标记,每个标记对应一个,如kNN-LM和Spalm中所采用的。数据库的来源根据应用领域和任务的不同而异。
维基百科是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首先根据给定的查询从数据存储中检索𝑘个最相关的上下文,并基于距离计算邻居分布,然后通过插值邻居分布和原始模型的输出分布来校准输出分布。
• Rest提出了一种方法,用非参数检索数据存储替代参数化的草图模型,并根据当前上下文检索相关令牌,以进行推测性解码。
独立训练
独立训练是指将检索器和大语言模型作为两个完全独立的过程进行训练,训练期间两者之间不发生交互。相较于无需训练的方法,通过训练LLM以利用检索得到的知识,或训练检索器以连接信息检索与语言生成之间的差距,可以显著提升RAG模型的性能。在LLM的训练中,负对数似然损失是最为典型的训练目标,目的是引导LLM根据给定的输入生成所需的输出。
至于检索器,它可以分为两种类型:1) 稀疏检索器;2) 密集检索器。
稀疏检索器通常使用词频等稀疏特征来表示文档,并依据特定任务的度量标准(如TF-IDF和BM25)来计算相关性得分。
密集检索器则利用深度神经网络将查询和文档编码为密集的表示,然后通常采用内积方法来计算相关性得分并检索相关的外部知识。例如,DPR使用两个独立的BERT网络分别对查询和段落进行编码,并通过对比学习的方法进行模型训练。CoG提出训练一个前缀编码器和短语编码器以用于检索,并将文本生成重新定义为从现有源文本集中执行多次复制和粘贴操作的过程。
顺序训练
独立训练因其高效性,成为在生成过程中利用外部知识的优选方法。这种方法允许检索器和生成器离线训练,且能直接应用现成模型,从而节省了额外的训练成本。
为了进一步提升检索器与生成器之间的协同效应,研究者提出了一系列顺序训练的方法。在这些方法中,通常先独立预训练检索器或大语言模型,随后固定其中一个模块,对另一个进行训练 。
与独立训练相比,顺序训练通过协调训练检索器和生成器,使得可训练模块得到固定模块的辅助。根据检索器和生成器的训练顺序,顺序训练可分为两类:1) 先训练检索器;2) 先训练LLM。
先训练检索器
这些方法首先对检索模型进行训练并固定,然后利用检索到的知识对LLM进行训练:
• RETRO 使用独立预训练的BERT模型作为检索器,并训练了一个编码器-解码器架构,将检索到的内容块整合到模型预测中。RALMs 采用Google Search和开源的COLBERTV2 作为预训练检索器,并对LLM进行微调,以有效利用检索到的文章。
• ITERRTGEN 利用预训练的S-BERT 作为检索器,并引入了一种自适应混合检索策略来检索示例。同时,它使用T5 作为生成器,并根据目标标签和结合原始提示与检索到的示例的输入进行进一步微调。
• SMALLCAP 提出利用强大的预训练多模态网络CLIP 来编码输入图像和外部数据存储的文本数据,并通过余弦相似性检索最相关的项目。训练了一个交叉注意力层,并采用GPT-2 作为解码器来生成标题。
先训练LLM
同样,也可以首先预训练LLM,然后在训练有素的LLM的监督下调整检索器。
• DKRR 表明,序列到序列模型的注意力分数可以指示文档的相关性。因此,他们提出使用阅读器模型的注意力分数来生成合成标签,以训练检索器。
• AAR 提出使用小型语言模型来生成训练检索器的监督信号。训练有素的检索器可以进一步用于提升黑盒LLM的性能。
• RA-DIT 首先对LLM进行微调,以增强其利用检索到的知识的能力,然后训练检索器以更好地与LLM的输出对齐。
• UPRISE 提出了一种轻量级方法,通过引入提示检索器来增强LLM在未见任务中的零样本性能。在推理过程中,使用冻结的LLM来指导提示检索器的微调过程,该检索器随后为不同任务的不同LLM检索提示。
联合训练
联合训练方法通过端到端的训练模式同步提升检索器与生成器的性能。这种训练方式相较于分步训练,更能有效地提升检索器寻找外部知识以供生成使用的能力,同时增强生成器利用检索到的信息的效率。
应用场景
图片
• 自然语言处理NLP
• QA系统
• ChatBot
• 事实验证
• 下游任务
• 推荐系统
• 软件工程
• 领域应用
• 科研
• 金融
• 论文原文: https://arxiv.org/abs/2405.06211
本文转载自大语言模型论文跟踪,作者: HuggingAGI