【检索增强】Retrieval-Augmented Generation for Large Language Models:A Survey

包括:自动从预构建的数据池中检索零shot任务输入的提示,从而增强了任务和模型之间的通用性;利用LLM作为少量查询生成器,并基于生成的数据创建特定于任务的检索器。通过利用LLM的泛化能力,它可以用最少的示例开发特定于任务的端到端检索器。

2)模块化RAG的模式

模块化RAG的组织结构具有高度的适应性,允许在RAG过程中替换或重新排列模块以适应特定的问题上下文。目前研究主要探讨两种组织范式。一种是涉及添加模块替换模块,一种是侧重于调整模块之间的组织流程。这种灵活性使RAG过程能够有效地处理各种任务。

1、添加或替换模块:引入或替换模块的策略包括维护检索-读取过程的核心结构,同时集成其他模块以增强特定功能。

  1. RRR模型[Ma et al., 2023a]引入了 rewrite-retrieve-read 过程,利用LLM性能作为重写模块的强化学习激励。这使重写器能够微调检索查询,从而提高读取器的下游任务性能。
  2. 在 Generate-Read [Yu et al., 2022] 等方法中,模块可以选择性地交换,其中LLM的生成模块取代了检索模块。The Recite-Read方法[Sun et al., 2022]将外部检索转换为从模型权重中检索,要求LLM首先记住特定于任务的信息,然后产生能够处理知识密集型自然语言处理任务的输出。

2、调整模块间的流程:在模块流调整领域,重点是加强语言模型和检索模型之间的交互。

  1. DSP [Khattab et al., 2022]引入了 Demonstratre-Search-Predict 框架,将上下文学习系统视为一个明确的程序,而不是最终的任务提示,从而更有效地处理知识密集型任务。
  2. ITER-RETGEN [Shao等人,2023]方法利用生成的内容来指导检索,在检索-读取-检索-读取流程中迭代地实现“检索增强生成”和“生成增强检索”。这种方法展示了一种使用一个模块的输出来改进另一个模块的功能的创新方法
3)优化RAG管道

优化检索过程的目的是提高检索效率和检索质量。目前的研究主要集中在整合多种搜索技术精炼检索步骤结合认知回溯实现通用查询策略以及利用嵌入相似度等方面。这些努力共同努力实现检索效率和上下文信息深度在RAG系统之间的平衡。

1、混合搜索探索:RAG系统通过智能集成各种技术来优化其性能。

包括:基于关键字的搜索语义搜索向量搜索。这种方法利用每种方法的独特优势来适应不同的查询类型和信息需求,确保对高度相关和上下文丰富的信息进行一致的检索。使用混合搜索作为检索策略的强大补充,从而提高了RAG管道的整体效率。

2、递归检索和查询引擎:采用两步检索方式,在效率和提供上下文丰富的响应之间取得平衡。

第一步,在初始检索阶段获取较小的块以捕获关键语义。第二步,在流程的后期阶段,将向LLM提供包含更多上下文信息的大块。

3、回退提示:鼓励LLM从具体实例中转移出来,围绕更广泛的概念和原则进行推理。

相当于是把你的问题抽象一下再给大模型。实验结果表明,当使用回退提示时,在各种具有挑战性的、基于推理的任务中,性能显著提高,突出了它们对RAG过程的自然适应性。这些增强检索的步骤既可以应用于生成对回退提示的响应,也可以应用于最终的问答过程。
比如:一个物体从 100 米的高处落下到地上的速度是多少,SBP(step backward prompt) 就是在提示词里加上这样一句话“这个问题遵循什么物理规则”。

4、子查询方法:根据场景的不同,可以采用各种查询策略。

例如使用LlamaIndex等框架提供的查询引擎、利用树查询、利用向量查询或执行简单的块顺序查询。

5、假设的文档嵌入:假设文档嵌入基于生成的答案在嵌入空间中可能比直接查询更接近这一假设,通过LLM为响应查询创建一个假设文档(答案),将该文档嵌入化,并使用生成的嵌入来检索与假设文档相似的真实文档。该方法不是基于查询寻找嵌入相似度,而是关注从一个答案到另一个答案的嵌入相似度。然而,它可能不会始终产生理想的结果,特别是当语言模型不熟悉主题时,可能会导致更多带有错误的实例。

2、检索

从数据源中有效地检索相关文档是至关重要的。然而,如何精确的找到我们需要的文档面临着巨大的挑战。这部分分为三个基本问题:
1、我们如何实现准确的语义表示?
2、什么方法可以对齐查询和文档的语义空间?
3、如何使检索器的输出与大语言模型的偏好保持一致?

(1)增强语义表示

在RAG中,语义空间是必不可少的,因为它涉及查询和文档的多维映射。语义空间的检索精度显著影响RAG结果。本节将介绍构建准确语义空间的两种方法。

1)块优化

在管理外部文档时,最初的步骤包括将它们分解为更小的块,以提取细粒度的特征,然后嵌入这些特征以表示它们的语义。然而,嵌入过大或过小的文本块可能会导致次优结果。因此,确定语料库中文档的最佳块大小对于确保检索结果的准确性和相关性至关重要。

选择适当的分块策略需要仔细考虑几个重要因素,例如索引内容的性质嵌入模型及其最佳块大小用户查询的预期长度和复杂性,以及特定应用程序对检索结果的利用。不同的嵌入模型,在不同块大小下表现出不同的性能特征。例如,在处理单个句子时,sentence-transformer模型表现更好。而text-embedding-ada-002在处理包含256或512个token时表现更出色。

用户输入问题的长度和复杂性以及应用程序的特定需求(例如,语义搜索或问题回答)等因素也会影响分块策略的选择。这种选择可能直接受到所选LLM的令牌限制的影响需要调整块大小。在现实中,获得精确的查询结果需要灵活地应用不同的分块策略。没有放之四海而皆准的“最佳”策略,只有最适合特定环境的策略。

目前RAG的研究探索了各种旨在提高检索效率和准确性的块优化技术

包括:使用滑动窗口技术,通过跨多个检索过程合并全局相关信息来实现分层检索;
“small2big”方法,在初始搜索阶段利用小文本块,随后向语言模型提供更大的相关文本块进行处理。

2)微调嵌入模型

一旦确定了适当的块大小,下一个关键步骤是使用嵌入模型将这些块和查询嵌入到语义空间中。嵌入的有效性至关重要,因为它影响模型表示语料库的能力。当将通用嵌入模型应用于特定领域时,它们准确捕获特定领域信息的能力可能会受到限制。

嵌入模型在特定任务下微调,对于确保模型从内容相关性方面理解用户查询至关重要。没有调优的模型可能无法充分满足特定任务的需求。因此,对嵌入模型进行微调对于下游应用程序至关重要。在嵌入微调方法中有两种主要的范式。

1、领域知识微调:为了确保嵌入模型准确地捕获特定于领域的信息,必须利用特定于领域的数据集进行调优。这个过程与标准语言模型微调不同,主要在于所涉及的数据集的性质。
通常,用于嵌入模型微调的数据集包含三个主要元素查询语料库相关文档。该模型使用这些查询来识别语料库中的相关文档。然后,根据响应查询检索这些相关文档的能力来衡量模型的有效性。数据集构建、模型微调和评估阶段各有不同的挑战。

2、针对下游任务微调:在利用RAG完成这些任务的领域中,通过利用llm的功能来微调嵌入模型的创新方法已经出现。

  1. PROMPTAGATOR [Dai等人,2022]利用LLM作为少量查询生成器来创建特定于任务的检索器,解决了监督微调中的挑战,特别是在数据稀缺领域。
  2. LLM-Embedder [Zhang等,2023a],利用llm为跨多个下游任务的数据生成奖励信号。检索器使用两种类型的监督信号进行微调:数据集的硬标签和来自llm的软奖励。这种双信号方法促进了更有效的微调过程,使嵌入模型适应不同的下游应用。

(2)查询与文档对齐

在RAG应用程序的上下文中,检索器可以使用单个嵌入模型对查询和文档进行编码,或者为每个模型使用单独的模型。此外,用户的原始查询可能会受到措辞不精确和缺乏语义信息的影响。因此,将用户查询的语义空间与文档的语义空间保持一致是至关重要的。本节将介绍两种旨在实现这种对齐的基本技术。

1)查询重写

查询重写是对齐查询和文档语义的基本方法。

  1. Query2Doc和ITER-RETGEN等方法利用llm通过将原始查询与附加指导相结合来创建伪文档[Wang et al., 2023c, Shao et al., 2023]。
  2. HyDE使用文本线索构建查询向量,生成捕获基本模式的“假设”文档[Gao等,2022]。
  3. RRR引入了一个框架,该框架颠倒了传统的检索和读取顺序,重点是查询重写[Ma et al., 2023a]。
  4. step - backprompts使llm能够基于高级概念执行抽象推理和检索[Zheng等,2023]。
  5. 此外,多查询检索方法利用llm同时生成和执行多个搜索查询,有利于解决包含多个子问题的复杂问题
2)嵌入转换

除了诸如查询重写之类的广泛策略之外,还有专门为嵌入转换设计的更细粒度的技术。

  1. LlamaIndex [Liu, 2023]通过引入一个可以集成在查询编码器之后的适配器模块来举例说明这一点。这个适配器有助于调优,从而优化查询嵌入的表示,将它们映射到与预期任务更紧密结合的潜在空间。
  2. 将查询与结构化外部文档对齐的挑战,特别是在处理结构化和非结构化数据之间的不一致性时,SANTA解决了这个问题[Li等人,2023]。它通过两种预训练策略来提高检索器对结构化信息的敏感性:第一,利用结构化和非结构化数据之间的内在一致性,在结构感知预训练方案中通知对比学习;第二,通过实现掩码实体预测。后者利用以实体为中心的掩码策略,鼓励语言模型预测和填充被掩码的实体,从而促进对结构化数据的更深入理解

(3)检索器和LLM对齐

在RAG管道中,通过各种技术提高检索命中率不一定会改善最终结果,因为检索的文档可能与llm的特定需求不一致。因此,本节将介绍两种方法,旨在使检索器输出与llm的首选项保持一致。

1)微调检索器

一些研究利用llm的反馈信号来完善检索模型。

  1. AAR [Yu等人,2023b] 使用编码器-解码器架构为预训练的检索器引入了监视信号。这是通过FiD交叉注意分数来识别LM的首选文档来实现的。随后,通过硬负采样和标准交叉熵损失对检索器进行微调。最终,改进后的检索器可以直接用于增强未见目标LMs,从而提高目标任务的性能。此外,有人认为LLM可能更倾向于关注可读性而不是信息丰富的文档。
  2. REPLUG [Shi et al., 2023] 利用检索器和LLM计算检索文档的概率分布,然后通过计算KL散度进行监督训练。这种简单有效的训练方法通过使用LM作为监督信号来提高检索模型的性能,从而消除了对特定交叉注意机制的需要。
  3. UPRISE [Cheng et al., 2023a]也使用冻结llm对提示检索器进行微调。LLM和检索器都将提示输入对作为输入,并利用LLM提供的分数来监督检索器的训练,有效地将LLM视为数据集标注器
  4. Atlas [Izacard et al., 2022]提出了四种监督微调嵌入模型的方法
    (1)注意力蒸馏。该方法利用LLM在输出过程中生成的交叉注意分数来提取模型的知识。
    (2)EMDR2。该方法采用期望最大化算法,以检索到的文档作为潜在变量对模型进行训练。
    (3)困惑度蒸馏。直接使用生成的token的Perplexity作为指标来训练模型。
    (4)循环。该方法提出了一种新的基于文档删除对LLM预测影响的损失函数,提供了一种有效的训练策略,使模型更好地适应特定的任务

这些方法旨在提高检索器和LLM之间的协同作用,从而提高检索性能并更准确地响应用户查询。

(4)适配器

微调模型可能会带来挑战,例如通过API集成功能或解决本地计算资源有限问题。因此,一些方法选择合并一个外部适配器来帮助校准

  1. PRCA通过上下文提取阶段奖励驱动阶段训练适配器。然后,使用基于token的自回归策略**对检索器的输出进行优化[**Yang等人,2023b]。
  2. token过滤方法采用交叉注意分数来有效地过滤token,只选择得分最高的输入token[Berchansky等人,2023]。
  3. RECOMP引入了提取压缩器生成压缩器来生成摘要。这些压缩器要么选择相关句子,要么合成文档信息,创建适合多文档查询的摘要[Xu等,2023a]。
  4. PKG引入了一种通过指令微调将知识集成到白盒模型中的创新方法[Luo等人,2023]。在这种方法中,直接替换检索模块,根据查询生成相关文档。该方法有助于解决在微调过程中遇到的困难,并增强模型性能。

3、生成

RAG的一个关键组件是它的生成器,它负责将检索到的信息转换成连贯流畅的文本。与传统的语言模型不同,RAG的生成器通过整合检索数据来提高准确性和相关性,从而使自己与众不同。在RAG中,生成器的输入不仅包含典型的上下文信息,还包含通过检索器获得的相关文本片段。这种全面的输入使生成器能够深入了解问题的上下文,从而产生更多信息和上下文相关的响应。

此外,检索的文本来指导生成器,以确保生成的内容与获得的信息之间的一致性。不同的输入数据导致在生成阶段进行有针对性的工作,所有这些工作都旨在改进大型模型对来自查询和文档的输入数据的适应。在接下来的小节中,我们将通过深入研究检索后处理微调的各个方面来探讨生成器的介绍。

(1)冻结LLM进行后处理

在不可微调的LLM领域中,许多研究依赖于GPT-4 等成熟的模型来利用其全面的内部知识,系统地综合从各种文档中检索到的信息。然而,这些大型模型仍然存在挑战,包括上下文长度的限制对冗余信息的敏感性。为了解决这些问题,一些研究努力将重点转向检索后处理。

检索后处理包括处理过滤优化检索器从大型文档数据库检索到的相关信息。它的主要目标是提高检索结果的质量,使它们更贴近用户需求或后续任务。 它可以看作是对检索阶段获得的文档的再处理。检索后处理中的常见操作通常包括信息压缩结果重新排序

1)信息压缩

检索器擅长从庞大的知识库中检索相关信息,但是管理检索文档中的大量信息是一个挑战。正在进行的研究旨在扩展大型语言模型的上下文长度来解决这个问题。然而,当前的大型模型仍然与上下文限制作斗争。因此,在某些情况下,压缩信息是必要的。信息压缩对于降低噪声、解决上下文长度限制和增强生成效果具有重要意义。

  1. PRCA通过训练一个信息提取器来解决这个问题[Yang等,2023b]。训练过程的目的是尽量减少提取和实际上下文之间的差异。
  2. RECOMP采用了一种类似的方法,使用对比学习训练一个信息收集器[Xu et al., 2023a]。每个训练数据点由一个正样本和五个负样本组成,编码器在整个过程中使用对比损失进行训练[Karpukhin et al., 2020]。
  3. 在[Ma et al., 2023b]的研究中采取了不同的方法,旨在减少文件的数量,以提高模型答案的准确性。他们提出了**“Filter-Reranker”范式**,该范式结合了LLM和小语言模型(Small Language Models, slm)的优势。在这个范例中,SLM充当过滤器,而LLM充当重新排序代理。研究表明,指导LLM重新排列由SLM识别的具有挑战性的样本可以显著改善各种信息提取(IE)任务
2)重排

重新排序模型是优化从检索器检索到的文档集的关键。当引入额外的上下文时,语言模型经常面临性能下降的问题,重新排序可以有效地解决这个问题。核心概念包括重新排列文档记录,将最相关的项放在最上面,从而限制文档的总数。 这既解决了检索过程中上下文窗口展开的难题,又提高了检索效率和响应速度。

重新排序模型在整个信息检索过程中扮演双重角色既充当优化器,又充当精炼器。它为后续的语言模型处理提供了更有效和准确的输入[Zhuang等,2023]。

上下文压缩被整合到重新排序过程中,以提供更精确的检索信息。这种方法需要减少单个文档的内容并过滤整个文档,其最终目标是在搜索结果中显示最相关的信息,以便更集中、更准确地显示相关内容。

(2)微调LLM进行RAG

在RAG模型中优化生成器是其体系结构的一个关键方面。生成器的作用是获取检索到的信息并生成相关文本,形成模型的最终输出。生成器的优化旨在确保生成的文本既自然又有效地利用检索到的文档来更好地满足用户的查询需求

在标准llm生成任务中,输入通常由查询组成。RAG的突出之处在于,它不仅将查询,还将检索器检索到的各种文档(结构化/非结构化)合并到输入中。这些附加信息可以显著地影响模型的理解,特别是对于较小的模型的影响。在这种情况下,对模型进行微调以适应查询和检索文档的输入变得至关重要。在将输入呈现给微调模型之前,通常会对检索器检索到的文档进行检索后处理。必须注意的是,RAG中生成器的微调方法与llm的一般微调方法是一致的。下面,我们将简要介绍一些涉及数据(格式化/未格式化)优化函数的代表性工作。

1)通用优化过程

作为一般优化过程的一部分,训练数据通常由输入-输出对组成,目的是训练模型在给定输入x的情况下产生输出y。

  1. Self-Mem [Cheng et al., 2023b]的工作中,采用传统的训练过程,其中给定输入x,检索相关文献z(在文中选择Top-1),对(x, z)进行整合后,模型生成输出y。本文采用了两种常用的微调范式,即Joint-Encoder和two - encoder [Arora等,2023,Wang等,2022b, Lewis等,2020,Xia等,2019,Cai等,2021,Cheng等,2022]。
  2. 在Joint-Encoder中,使用了基于编码器-解码器的标准模型。在这里,编码器最初对输入进行编码,而解码器通过注意机制将编码结果结合起来,以自回归的方式生成令牌。
  3. 在DualEncoder中,系统设置两个独立的编码器,每个编码器分别对输入(查询、上下文)和文档进行编码。由此产生的输出由解码器按顺序进行双向交叉注意力处理

这两种架构都使用Transformer [Vaswani等人,2017]作为基础块,并使用负对数似然损失进行优化

2)运用对比学习

在为语言模型准备训练数据的阶段,通常会创建输入和输出的交互对。这种传统方法可能导致“暴露偏差”,即模型只在单个正确的输出示例上进行训练,从而限制了其暴露于一系列可能的输出序列。这种限制可能会导致模型过度拟合训练集中的特定示例,从而降低其在各种上下文中泛化的能力,从而阻碍模型的实际性能。

  1. 为了减轻暴露偏差,SURGE [Kang等人,2023]提出使用图文对比学习。这种方法包括一个对比学习目标,促使模型产生一系列合理和连贯的反应,扩展到训练数据中遇到的实例之外。这种方法对于减少过拟合和增强模型的泛化能力至关重要。
  2. 对于涉及结构化数据的检索任务,SANTA框架[Li et al., 2023]实现了一个三方训练方案,以有效地封装结构和语义的细微差别。
    (1)初始阶段使用检索器,利用对比学习来细化查询和文档嵌入。
    (2)随后,生成器的初步训练阶段采用对比学习将结构化数据与其非结构化文档描述对齐。在生成器训练的进一步阶段,该模型承认实体语义在文本数据的表示学习中起着关键作用,如[Sciavolino等人,2021,Zhang等人,2019]所强调的那样。这个过程从识别结构化数据中的实体开始,然后在生成器的输入数据中对这些实体应用掩码,从而为模型预测和预测这些掩码元素奠定基础。
    (3)训练方案随着模型学习的进展,利用上下文信息重构被掩盖的实体。这个过程培养了模型对文本数据的结构语义的理解,并促进了结构化数据中相关实体的对齐。 总体优化目标是训练语言模型准确地恢复模糊的跨度,从而丰富其对实体语义的理解[Ye et al., 2020]。

4、RAG增强方法

本节围绕三个关键方面展开:增强阶段增强数据的来源增强过程。这些方面阐明了对RAG的发展至关重要的关键技术。

(1)增强阶段

RAG是一项知识密集型的工作,在语言模型训练的预训练微调推理阶段整合了各种技术方法。

1)预训练阶段

在预训练阶段,研究人员研究了通过基于检索的策略来支持开放域QA的ptm的方法。

  1. REALM模型采用结构化、可解释的方法进行知识嵌入、框架预训练和微调,作为掩模语言模型(MLM)框架内的检索-预测工作流[Arora等人,2023]。
  2. RETRO [Borgeaud等人,2022]利用检索增强技术从头开始进行大规模预训练,实现了模型参数的减少,同时在困惑度方面超过了标准的GPT模型。RETRO的独特之处在于,它有一个建立在GPT模型的基础结构之上额外的编码器,用于处理从外部知识库检索到的实体的特征
  3. Atlas[Izacard等人,2022]还在预训练和微调阶段将检索机制纳入T5架构[rafael等人,2020]。它使用预训练的T5来初始化编码器-解码器语言模型,使用预训练的Contriever来初始化密集检索器,提高了复杂语言建模任务的效率。
  4. COG [Lan等人,2022]引入了一种新的文本生成方法,该方法模拟从预先存在的集合中复制文本片段。利用高效的向量搜索工具,COG计算和索引文本片段的上下文有意义的表示,与RETRO相比,在问答和领域适应等领域表现出优越的性能。
  5. 标度定律的出现促进了模型参数的增长,推动自回归模型成为主流。研究人员正在将RAG方法扩展到预训练更大的模型,RETRO++通过在保持或增强性能的同时扩大模型参数来体现这一趋势[Wang等人,2023b]。

经验证据强调了文本生成质量事实准确性降低毒性下游任务熟练程度的显著改进,特别是在像开放领域QA这样的知识密集型应用中。这些结果表明,将检索机制集成到自回归语言模型的预训练中是一条有前途的途径,将复杂的检索技术与广泛的语言模型相结合,以产生更精确和有效的语言生成。

增强预训练的好处包括一个健壮的基础模型,该模型在困惑度文本生成质量特定任务性能方面优于标准GPT模型,同时使用更少的参数。这种方法特别擅长处理知识密集型任务,并通过对专门语料库的训练促进特定领域模型的开发。

尽管如此,这种方法面临着挑战,例如需要广泛的预训练数据集和资源,以及随着模型大小的增加而减少的更新频率。尽管存在这些障碍,但该方法在模型弹性方面提供了显著的优势。经过训练后,检索增强模型可以独立于外部库进行操作,从而提高生成速度和操作效率。所确定的潜在收益使该方法成为人工智能和机器学习领域正在进行的研究和创新的引人注目的主题。

2)微调阶段

RAG和Fine-tuning是增强llm的强大工具,将两者结合起来可以满足更具体场景的需求。一方面,微调允许检索具有独特样式的文档,实现更好的语义表达,并调整查询和文档之间的差异。这确保了检索器的输出更适合手头的场景。另一方面,微调可以满足进行风格化和针对性调整的生成需求。此外,微调还可以用于对齐检索器和生成器,以改进模型协同

微调检索器的主要目标是通过使用语料库直接微调嵌入模型来提高语义表示的质量[Liu, 2023]。通过反馈信号将检索器的能力与llm的偏好对齐,可以更好地协调两者[Yu et al., 2023b, Izacard et al., 2022, Yang et al., 2023b, Shi et al., 2023]。为特定的下游任务微调检索器可以提高适应性。引入任务不可知微调旨在增强检索器在多任务场景中的多功能性[Cheng et al., 2023a]。

微调生成器可以产生更加风格化和定制的输出。一方面,它允许专门适应不同的输入数据格式。例如,微调llm以适应知识图谱的结构[Kang等人,2023]、文本对的结构[Kang等人,2023,Cheng等人,2023b]和其他特定结构[Li等人,2023d]。另一方面,通过构建指令数据集,可以要求llm生成特定格式的内容。例如,在自适应迭代检索场景中,llm被微调以生成有助于确定下一步行动时间的内容 [Jiang等人,2023b, Asai等人,2023]。

通过协同微调检索器和生成器,我们可以增强模型的泛化能力,并避免单独训练它们可能产生的过拟合。然而,联合微调也会导致资源消耗增加。RA-DIT [Lin等,2023]提出了一种轻量级的双指令调优框架,可以有效地为任何llm添加检索功能。检索增强指令微调更新LLM,指导它更有效地利用检索到的信息,并忽略分散注意力的内容。

尽管有其优点,但微调也有局限性,包括需要专门的数据集进行RAG微调以及需要大量的计算资源。然而,这个阶段允许根据特定的需求和数据格式定制模型,与预训练阶段相比,潜在地减少了资源使用,同时仍然能够微调模型的输出样式

总而言之,微调阶段对于使RAG模型适应特定的任务至关重要,从而能够对检索器和生成器进行细化。这一阶段增强了模型的通用性和对各种任务的适应性,尽管资源和数据集需求带来了挑战。因此,RAG模型的战略性微调是开发高效和有效的检索增强系统的关键组成部分。

2)推理阶段

RAG模型中的推理阶段是至关重要的,因为它涉及到与llm的广泛集成。传统的RAG方法,也称为朴素RAG,涉及在此阶段合并检索内容以指导生成过程。

为了克服朴素RAG的局限性,先进的技术在推理过程中引入了更多上下文丰富的信息。

  1. DSP框架[Khattab et al., 2022]利用前沿LMs和检索模型(RM)之间复杂的自然语言文本交换,丰富了上下文,从而提高了生成结果。
  2. PKG [Luo等人,2023]方法为llm配备了一个知识引导模块,该模块允许在不修改LMs参数的情况下检索相关信息,从而能够执行更复杂的任务。
  3. CREAICL [Li et al., 2023b]采用跨语言知识的同步检索来增强上下文
  4. 而RECITE[Sun et al., 2022]通过直接从LLM中抽取段落来生成上下文

在推理过程中,RAG过程的进一步细化可以在满足需要多步骤推理的任务的方法中看到。

  1. ITRG [Feng等,2023]迭代检索信息以识别正确的推理路径,从而提高任务适应性。
  2. ITERRETGEN [Shao et al., 2023]采用迭代策略,在“检索增强生成”和“生成增强检索”之间交替的循环过程中合并检索和生成
  3. 对于非知识密集型(NKI)任务,PGRA [Guo等人,2023]提出了一个两阶段框架,首先是任务不可知的检索器,然后是提示引导的重新排序器,以选择和优先考虑证据。
    相比之下,IRCOT [Trivedi等人,2022]将RAG与思维链(CoT)方法结合起来交替使用CoT引导的检索与检索通知的CoT过程,显著提高了GPT-3在各种问答任务中的表现。

从本质上讲,这些推理阶段的增强提供了轻量级的、经济有效的替代方案,可以利用预训练模型的功能,而不需要进一步的训练。其主要优点是在提供上下文相关信息以满足特定任务需求的同时维护静态LLM参数。然而,这种方法并非没有局限性,因为它需要细致的数据处理和优化,并且受到基础模型固有能力的约束。为了有效地解决不同的任务需求,该方法通常与过程优化技术相结合,如分步推理迭代检索自适应检索策略。

(2)增强来源

扩充数据源的选择严重影响RAG模型的有效性。不同的知识水平和维度需要不同的处理技术。它们分为非结构化数据结构化数据LLM生成的内容。具有代表性的不同增强方面的RAG研究技术树如下图所示。叶子以三种不同的深浅颜色表示使用不同类型数据的增强:非结构化数据、结构化数据和llm生成的内容。该图清楚地表明,最初,增强主要通过非结构化数据实现,例如纯文本。这种方法后来扩展到包括使用结构化数据(例如知识图)以进一步改进。最近,在研究中有一种日益增长的趋势,即利用llm本身生成的内容进行检索和增强

在这里插入图片描述

1)非结构化数据增强

非结构化文本从语料库中收集,例如用于微调大型模型的提示数据[Cheng等人,2023a]和跨语言数据[Li等人,2023b]。检索单元从token(例如kNN-LM [Khandelwal等人,2019])到短语(例如NPM, COG [Lee等人,2020,Lan等人,2022])和文档段落不等,更细的粒度以增加检索复杂性为代价提供精度。

  1. FLARE [Jiang等人,2023b]引入了一种主动检索方法,由LM生成的低概率词触发。它为文档检索创建一个临时句子,然后使用检索到的上下文重新生成该句子,以预测后续的句子
  2. RETRO使用前一个块来检索块级别上最近的邻居,结合前一个块的上下文,它指导下一个块的生成。为了保持因果关系,下一个块Ci的生成只利用前一个块的最近邻居N(Ci−1)而不是N(Ci)
2)结构化数据增强

结构化数据,如知识图(KGs),提供了高质量的上下文并减轻了模型幻觉。

  1. RET-LLMs [Modarressi et al., 2023]从过去的对话中构建知识图记忆,以供将来参考。
  2. SUGRE [Kang et al., 2023]使用图神经网络(Graph Neural Networks, gnn)对相关KG子图进行编码,通过多模态对比学习确保检索事实与生成文本的一致性。
  3. Knowledge edGPT [Wang et al., 2023]生成知识库搜索查询,并将知识存储在个性化库中,增强了RAG模型的知识丰富性和上下文性。
3)在RAG中LLM生成的内容

针对RAG中外部辅助信息的局限性,一些研究侧重于利用LLM的内部知识。

  1. SKR [Wang等,2023e]将问题分类为已知或未知,有选择地应用检索增强。
  2. GenRead [Yu et al., 2022]用LLM生成器替换了检索器,发现LLM生成的上下文通常包含更准确的答案,因为它更好地符合因果语言建模的预训练目标
  3. Selfmem [Cheng et al., 2023b]使用检索增强生成器迭代创建无界内存池,使用内存选择器选择作为原始问题对偶问题的输出,从而自增强生成模型。

这些方法强调了RAG中创新数据源利用的广度,努力提高模型性能和任务有效性。

(3)增强过程

在RAG领域中,标准过程通常涉及一个检索步骤,然后是生成,这可能导致效率低下。一个值得注意的问题被称为 “中间丢失”现象 ,当单个检索产生冗余内容(可能会稀释或相矛盾的基本信息)时,从而降低生成质量[Liu et al., 2023a]。此外,这种单步检索通常不足以解决需要多步推理的复杂问题,因为它提供的信息范围有限[Yoran等人,2023]。

为了解决这些挑战,当代研究提出了改进检索过程的方法:迭代检索递归检索自适应检索

  1. 迭代检索允许模型进行多个检索周期,增强了所获得信息的深度和相关性。
  2. 递归检索过程,其中一次检索操作的结果用作后续检索的输入。它有助于深入研究相关信息,特别是在处理复杂或多步骤查询时。递归检索通常用于需要逐步得到最终答案的场景,例如在学术研究法律案例分析某些类型的数据挖掘任务中。
  3. 自适应检索提供了一种动态调整机制,使检索过程适应不同任务和上下文的具体要求。
1)迭代检索

RAG模型中的迭代检索是基于初始查询和迄今为止生成的文本重复收集文档的过程,为LLM提供了更全面的知识库[Borgeaud等人,2022,Arora等人,2023]。这种方法已被证明可以通过多次检索迭代提供额外的上下文引用来增强后续答案生成的鲁棒性。然而,它可能会受到语义不连续和不相关信息积累的影响,因为它通常依赖于n个令牌序列来划定生成文本和检索文档之间的边界。

2)递归检索

递归检索常用于信息检索和自然语言处理,以提高搜索结果的深度和相关性。该过程涉及基于从以前的搜索中获得的结果迭代地改进搜索查询

为了解决特定的数据场景,使用了递归检索多跳检索技术。递归检索涉及到以分层方式处理和检索数据的结构化索引,其中可能包括在基于该摘要执行检索之前对文档或冗长PDF的各个部分进行总结。随后,文档中的二次检索细化了搜索,体现了该过程的递归性质。相比之下,多跳检索旨在更深入地挖掘图结构数据源,提取相互关联的信息[Li et al., 2023c]。

此外,一些方法集成了检索和生成的步骤。ITER-RETGEN [Shao等人,2023]采用协同方法,利用“检索增强生成”和“生成增强检索”来完成需要复制特定信息的任务。该模型利用处理输入任务所需的内容作为检索相关知识的上下文基础,这反过来又有助于在随后的迭代中生成改进的响应。

递归检索旨在通过反馈循环逐渐收敛到最相关的信息,从而增强搜索体验

  1. IRCoT [Trivedi et al., 2022] 使用思维链(chain ofthought)来指导检索过程,并利用获得的检索结果对CoT进行细化。
  2. ToC [Kim等人,2023]创建了一个澄清树,系统地优化查询中的模糊部分。在复杂的搜索场景中,如果用户的需求从一开始就不完全清楚,或者所寻求的信息非常专门化或微妙,那么它特别有用。该过程的递归性质允许不断学习和适应用户的需求,通常会提高对搜索结果的满意度。
3)自适应检索

自适应检索方法,如Flare和SelfRAG [Jiang等人,2023b, Asai等人,2023],通过使llm能够主动确定检索的最佳时刻和内容,从而提高了信息源的效率和相关性,从而完善了RAG框架。

这些方法是llm在其操作中采用主动判断的更广泛趋势的一部分,正如在AutoGPT, Toolformer和Graph-Toolformer等模型代理中所看到的那样[Yang等人,2023c, Schick等人,2023,Zhang, 2023]。

  1. Graph-Toolformer将其检索过程划分为不同的步骤,其中llm主动使用检索器,应用Self-Ask技术,并使用少量提示来启动搜索查询。这种主动的姿态允许llm决定何时搜索必要的信息,类似于代理如何利用工具。
  2. WebGPT [Nakano等人,2021]集成了一个强化学习框架,在文本生成过程中使用搜索引擎自主训练GPT-3模型。它使用特殊的令牌来导航这个过程,这些令牌促进了搜索引擎查询、浏览结果和引用引用等操作,从而通过使用外部搜索引擎扩展了GPT-3的功能。
  3. Flare通过监测生成过程的置信度来自动获取时序,如生成项的概率所示[Jiang等,2023b]。当概率低于某一阈值时,将激活检索系统收集相关信息,从而优化检索周期。
  4. Self-RAG [Asai等人,2023]引入了“反思token”,允许模型自省其输出。这些标记有两种:“检索”和“批评”。
    (1)模型自主地决定何时激活检索,或者通过预定义的阈值触发可能的流程。在检索过程中,生成器在多个段落之间进行片段级波束搜索,以获得最连贯的序列。
    (2)评论分数用于更新细分分数,在推理过程中可以灵活地调整这些权重,从而调整模型的行为。
    Self-RAG的设计不需要额外的分类器或依赖于自然语言推理(NLI)模型,从而简化了何时使用检索机制的决策过程,并提高了模型在生成准确响应方面的自主判断能力。

LLM优化由于其日益普及而受到了极大的关注。诸如提示工程、微调(FT)和RAG等技术各有不同的特征,如下图所示。在这里插入图片描述

虽然快速工程利用了模型的固有功能,但优化llm通常需要同时应用RAG和FT方法。RAG和FT之间的选择应该基于场景的特定需求和每种方法的固有属性。下表给出了RAG和FT的详细比较。
在这里插入图片描述

5、RAG评估

RAG在自然语言处理(NLP)领域的快速发展和越来越多的采用,将RAG模型的评估推向了法学硕士社区研究的前沿。此评估的主要目标是理解和优化RAG模型跨不同应用程序场景的性能。

从历史上看,RAG模型评估集中在它们在特定下游任务中的执行。这些评估采用适合手头任务的既定指标。

  1. 问答评估可能依赖于EM和F1分数[Wang等人,2023a, Shi等人,2023,Feng等人,2023,Ma等人,2023a],
  2. 事实核查任务通常依赖于准确性作为主要指标[Lewis等人,2020,Izacard等人,2022,Shao等人,2023]。
  3. 还有为RAG应用程序的自动评估而设计的工具,如RALLE,同样基于这些特定于任务的指标进行评估[Hoshi等人,2023]。尽管如此,致力于评估RAG模型独特特征的研究明显缺乏,只有少数相关研究。

以下部分将重点从特定于任务的评估方法和度量转移到基于其独特属性的现有文献的综合概述。这一探索涵盖了RAG评估的目标、评估这些模型的各个方面,以及可用于此类评估的基准和工具。目的是提供RAG模型评估的全面概述,概述了具体解决这些先进生成系统独特方面的方法。

(1)评估目标

RAG模型的评估主要围绕两个关键组件进行:检索生成模块。这种划分确保了对所提供的上下文质量所产生的内容质量的全面评估。

1)检索质量

评估检索质量对于确定检索组件来源的上下文的有效性至关重要。使用来自搜索引擎、推荐系统和信息检索系统领域的标准度量来度量RAG检索模块的性能命中率MRRNDCG等指标通常用于此目的[Liu, 2023, Nguyen, 2023]。

2)生成质量

对生成质量的评估集中于对生产器从检索上下文中综合连贯与相关答案的能力的评估。这种评估可以根据内容的目标进行分类:未标记标记的内容。

  1. 对于未标记的内容,评估包括生成答案的可靠性、相关性和非危害性
  2. 对于标记的内容,重点是模型产生的信息的准确性[Liu, 2023]。此外,检索和生成质量评估都可以通过手动或自动评估方法进行[Liu, 2023, Lan等,2022,Leng等,2023]。

(2)评估方面

当代RAG模型的评估实践强调三个主要质量分数四个基本能力,它们共同通知了RAG模型的两个主要目标的评估:检索和生成。

1)质量分数

质量分数包括上下文相关性答案忠实性答案相关性。这些质量分数从不同角度评价RAG模型在信息检索和生成过程中的效率[Es et al., 2023; Saad-Falcon et al., 2023; Jarvis and Allard, 2023]。质量分数——上下文相关性、答案忠实度和答案相关性——在整个信息检索和生成过程中从不同角度评估RAG模型的效率[Es等人,2023;Saad-Falcon等人,2023;Jarvis和Allard, 2023]。

  1. 上下文相关性(Context Relevance):评估检索上下文的准确性和特异性确保相关性并最大限度地减少与无关内容相关的处理成本
  2. 答案忠实度(Answer Faithfulness):确保生成的答案与检索的上下文保持一致保持一致性避免矛盾
  3. 答案相关性(Answer Relevance):答案相关性要求生成的答案与提出的问题直接相关,有效地解决核心问题。
2)请求能力

RAG评价还包括表明其适应性和效率的四种能力噪声鲁棒性否定拒绝信息整合反事实鲁棒性[Chen et al., 2023b, Liu et al., 2023b]。这些能力对于模型在各种挑战和复杂场景下的性能至关重要,影响质量分数。

  1. 噪声鲁棒性(Noise Robustness):评价模型处理与问题相关但缺乏实质性信息噪声文件的能力。
  2. 否定拒绝(Negative Rejection):当检索到的文档不包含回答问题所需的知识时,模型不进行响应的识别能力
  3. 信息集成(Information Integration):评估模型从多个文档中综合信息以解决复杂问题的熟练程度。
  4. 反事实鲁棒性(Counterfactual Robustness):测试模型识别和忽略文档中已知不准确的能力,即使在被告知潜在的错误信息时也是如此。

评估检索质量:
上下文相关性和噪声鲁棒性对于评估检索质量很重要

评估生成质量:
答案忠实度、答案相关性、负面拒绝、信息整合和反事实鲁棒性对于评估生成质量很重要。

下面总结了每个评估方面的具体指标。必须认识到,这些相关工作的度量标准是传统的度量标准,尚未代表量化RAG评价方面的成熟或标准化方法。针对RAG模型的细微差别量身定制的度量标准,虽然没有包括在这里,但也在一些评估研究中得到了开发。
在这里插入图片描述

(3)评估数据集和工具

本节描述RAG模型的评估框架,包括基准测试自动评估工具。这些工具提供了定量的度量标准,不仅衡量RAG模型的性能,而且还增强了对模型跨各种评估方面的能力的理解。突出的基准,

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
img

8年进入阿里一直到现在。**

深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
[外链图片转存中…(img-D0aiTFrO-1712871608473)]
[外链图片转存中…(img-tVHCQELM-1712871608473)]
[外链图片转存中…(img-1vS1AmE6-1712871608473)]
[外链图片转存中…(img-D6xt2SgB-1712871608474)]
[外链图片转存中…(img-eG0RO2u0-1712871608474)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
[外链图片转存中…(img-TgBhMbqG-1712871608474)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值