检索增强生成(RAG)技术方法流程最佳实践实验探索

来自:旺知识

脆弱的不确定性:大模型的可信度如何被操控

检索增强生成(RAG)技术已被证明在整合最新信息、减轻幻觉问题以及提高特定领域内响应质量方面是有效的。尽管如此,许多RAG方法仍因复杂的实现和延长的响应时间而受到影响。典型的RAG工作流程包含多个处理步骤,每个步骤都可以以不同的方式执行。在这里,我们调查现有的RAG方法及其潜在的组合,以识别最佳的RAG实践。通过广泛的实验,我们提出了几种部署RAG的策略,这些策略在性能和效率之间取得了平衡。此外,我们展示了多模态检索技术如何显著增强关于视觉输入的问题回答能力,并使用“检索即生成”策略加速多模态内容的生成。

我们翻译解读最新论文:在检索增强型生成中寻找最佳做法,文末有论文链接。cd5450b54cffec5fb13689f176fd73b7.png作者:张长旺,图源:旺知识

1 引言

生成大型语言模型(LLMs)倾向于产生过时的信息或捏造事实,尽管它们通过强化学习[1]或轻量级替代方案[2-5]与人类偏好对齐。检索增强生成(RAG)技术通过结合预训练和基于检索的模型的优势,提供了一个强大的框架来增强模型性能[6]。此外,RAG能够在不需要更新模型参数的情况下,快速部署特定组织和领域的应用程序,只要提供与查询相关的文档。

许多RAG方法已被提出,通过查询依赖的检索来增强大型语言模型(LLMs)[6-8]。一个典型的RAG工作流程通常包含多个干预处理步骤:查询分类(确定是否需要为给定的输入查询进行检索)、检索(高效获取查询的相关文档)、重排(根据与查询的相关性细化检索到的文档的顺序)、重新打包(将检索到的文档组织成结构化的一种,以更好地生成)、摘要(从重新打包的文档中提取关键信息以生成响应,并消除冗余)模块。实现RAG还需要决定如何适当地将文档分割成块,使用哪种类型的嵌入来语义表示这些块,选择有效的大型语言模型(LLMs)微调方法(见图1)。

37a66c4733720bfeed81d2c429eb9326.png

增加复杂性和挑战的是每个处理步骤实现的可变性。例如,在为输入查询检索相关文档时,可以采用不同的方法。一种方法是首先重写查询并使用重写的查询进行检索[9]。或者,可以先生成对查询的伪响应,然后比较这些伪响应与后端文档之间的相似性以进行检索[10]。另一种选择是直接使用嵌入模型,这些模型通常使用正负查询-响应对以对比方式进行训练[11, 12]。为每个步骤选择的技术及其组合显著影响RAG系统的效率和有效性。据我们所知,尚无系统性的努力来追求RAG的最优实现,特别是对于整个RAG工作流程。

在这项研究中,我们旨在通过广泛的实验来确定RAG的最佳实践。鉴于测试所有可能的方法组合是不可行的,我们采用三步方法来确定最优的RAG实践。首先,我们比较每个RAG步骤(或模块)的代表性方法,并选择多达三种最佳执行方法。接下来,我们通过一次测试一种方法来评估每种方法对整体RAG性能的影响,同时保持其他RAG模块不变。这使我们能够根据其在响应生成过程中对其他模块的贡献和交互来确定每个步骤的最有效方法。一旦为一个模块选择了最佳方法,它将用于随后的实验。最后,我们实证探索了一些适合不同应用场景的有希望的组合,其中效率可能优先于性能,或者反之亦然。基于这些发现,我们提出了几种部署RAG的策略,这些策略在性能和效率之间取得了平衡。

这项研究的贡献是三方面的:

  • 通过广泛的实验,我们彻底调查了现有的RAG方法及其组合,以识别和推荐最优的RAG实践。

  • 我们引入了一个综合评估指标框架和相应的数据集,全面评估检索增强生成模型的性能,涵盖一般、专业(或特定领域)和RAG相关能力。

  • 我们展示了多模态检索技术的整合可以大幅提高对视觉输入的问题回答能力,并通过“检索即生成”策略加速多模态内容的生成。

2 相关工作

确保由大型语言模型(LLMs)如ChatGPT[13]和LLaMA[14]生成的响应的准确性至关重要。然而,仅仅增加模型大小并不能根本解决幻觉问题[15, 16],尤其是在知识密集型任务和专业领域。检索增强生成(RAG)通过从外部知识库检索相关文档,为LLMs提供准确、实时、特定领域的上下文[6]。以前的工作通过查询和检索转换、增强检索器性能以及微调检索器和生成器来优化RAG管道。这些优化改善了输入查询、检索机制和生成过程之间的交互,确保了响应的准确性和相关性。

2.1 查询和检索转换

有效的检索需要查询准确、清晰和详细。即使转换为嵌入,查询和相关文档之间也可能存在语义差异。以前的工作探索了通过查询转换增强查询信息的方法,从而提高检索性能。例如,Query2Doc[17]和HyDE[10]从原始查询生成伪文档以增强检索,而TOC[18]将查询分解为子查询,聚合检索到的内容以获得最终结果。

其他研究集中在转换检索源文档上。LlamaIndex[19]提供了一个接口,用于为检索文档生成伪查询,提高了与真实查询的匹配度。一些工作采用对比学习将查询和文档嵌入在语义空间中更接近[12, 20, 21]。后处理检索到的文档是另一种增强生成器输出的方法,技术如分层提示摘要[22]和使用抽象和提取式压缩器[23]来减少上下文长度和消除冗余[24]。

2.2 检索器增强策略

文档分块和嵌入方法显著影响检索性能。常见的分块策略将文档分割成块,但确定最佳分块长度可能具有挑战性。小的块可能会打断句子,而大的块可能包含不相关的上下文。LlamaIndex[19]优化了Small2Big和滑动窗口等分块方法。检索到的块可能是不相关的,数量可能很大,因此需要重新排序以过滤不相关的文档。一种常见的重新排序方法是使用深度语言模型如BERT[25]、T5[26]或LLaMA[27],这在重新排序期间需要慢的推理步骤,但可以提供更好的性能。TILDE[28, 29]通过预先计算和存储查询项的可能性来实现效率,根据它们的总和对文档进行排名。

2.3 检索器和生成器微调

在RAG框架内进行微调对于优化检索器和生成器至关重要。一些研究专注于微调生成器,以更好地利用检索器上下文[30-32],确保忠实和健壮的生成内容。其他人微调检索器以学习检索对生成器有益的段落[33-35]。整体方法将RAG视为一个集成系统,同时微调检索器和生成器以提高整体性能[36-38],尽管增加了复杂性和集成挑战。

几项调查已经广泛讨论了当前的RAG系统,涵盖了文本生成[7, 8]、与LLMs的集成[6, 39]、多模态[40]和AI生成内容[41]等方面。虽然这些调查为现有的RAG方法提供了全面的概述,但选择实用的算法仍然具有挑战性。在本文中,我们专注于应用RAG方法的最佳实践,推进了对LLMs中RAG的理解和应用。

3 RAG工作流程

本节详细介绍了RAG工作流程的组成部分。对于每个模块,我们回顾了常用的方法,并为我们的最终流程选择了默认和替代方法。第4节将讨论最佳实践。图1展示了每个模块的工作流程和方法。详细的实验设置,包括数据集、超参数和结果,提供在附录A中。

3.1 查询分类

并非所有查询都需要检索增强,因为LLMs具有固有的能力。虽然RAG可以通过检索来增强信息的准确性并减少幻觉,但频繁的检索可能会增加响应时间。因此,我们首先对查询进行分类,以确定检索的必要性。需要检索的查询通过RAG模块进行处理;其他查询则直接由LLMs处理。

通常建议在需要模型参数之外的知识时进行检索。然而,检索的必要性因任务而异。例如,一个训练到2023年的LLM可以处理“Sora是由OpenAI开发的”的翻译请求而无需检索。相反,对于同一主题的介绍请求,则需要检索以提供相关信息。

因此,我们提出按类型对任务进行分类,以确定查询是否需要检索。我们根据是否提供足够的信息将15个任务进行分类,具体的任务和示例如图2所示。对于完全基于用户提供的信息的任务,我们表示为“足够”,不需要检索;否则,我们表示为“不足”,可能需要检索。我们训练了一个分类器来自动化这一决策过程。实验细节呈现在附录A.1中。第4节探讨了查询分类对工作流程的影响,比较了有和没有分类的场景。

e950435e26192abce666b58e389b8264.png

e2f5a1bbb8da8b104c2f0362ce1c69f8.png

3.2 分块

将文档分块成较小的段落对于提高检索精度和避免LLMs的长度问题至关重要。这个过程可以应用于不同的粒度级别,如标记、句子和语义级别。

  • 标记级分块是直接的,但可能会拆分句子,影响检索质量。

  • 语义级分块使用LLMs来确定断点,保留了上下文,但耗时。

  • 句子级分块在保留文本语义和简单性、效率之间取得了平衡。

在这项研究中,我们使用句子级分块,在简单性和语义保留之间取得平衡。我们从四个维度检查分块。

3.2.1 分块大小

分块大小显著影响性能。较大的块提供更多上下文,增强理解,但增加了处理时间。较小的块提高了检索召回率并减少了时间,但可能缺乏足够的上下文。

找到最佳的分块大小涉及到一些指标之间的平衡,如忠实度和相关性。忠实度衡量响应是否是幻觉或与检索到的文本匹配。

3597bc61e55ff13d922ec5631ca4e204.png

3.2.2 分块技术

高级技术如小到大和小滑动窗口通过组织块块关系提高检索质量。小尺寸的块用于匹配查询,包括小尺寸块及上下文信息的大块被返回。

为了展示高级分块技术的有效性,我们使用LLM-Embedder模型作为嵌入模型。较小的分块大小为175个标记,较大的分块大小为512个标记,分块重叠为20个标记。像小到大和小滑动窗口这样的技术通过保持上下文并确保检索到相关信息来提高检索质量。详细结果如表4所示。

fd08411e31036f35cd9dfb646d166aac.png

3.2.3 嵌入模型选择

选择正确的嵌入模型对于有效的语义匹配查询和块至关重要。我们使用FlagEmbedding6的评估模块,该模块使用dataset namespace-Pt/msmarco7作为查询和dataset namespace-Pt/msmarco-corpus8作为语料库来选择合适的开源嵌入模型。如表2所示,LLM-Embedder[20]与BAAI/bge-large-en[12]取得了可比的结果,但前者的大小是后者的三倍。因此,我们选择LLM-Embedder[20],因为它在性能和大小之间取得了平衡。

f47fab8c6a19157851c6c1bbf681452a.png

3.2.4 元数据添加

通过添加元数据如标题、关键词和假设问题来增强块块可以改善检索,提供更多的后处理检索文本的方法,并帮助LLMs更好地理解检索到的信息。关于元数据包含的详细研究将在未来进行。

3.3 向量数据库

向量数据库存储嵌入向量及其元数据,通过各种索引和近似最近邻(ANN)方法,实现对查询相关文档的高效检索。

为了选择适当的向量数据库进行研究,我们根据四个关键标准评估了几个选项:多种索引类型、十亿规模向量支持、混合搜索和云原生能力。这些标准被选择是因为它们对灵活性、可扩展性和在现代基于云的基础设施中的易于部署有影响。多种索引类型提供了根据不同数据特征和用例优化搜索的灵活性。十亿规模向量支持对于处理LLM应用中的大数据集至关重要。混合搜索结合了向量搜索和传统关键字搜索,提高了检索精度。最后,云原生能力确保了在云环境中的无缝集成、可扩展性和管理。表5详细介绍了五个开源向量数据库:Weaviate、Faiss、Chroma、Qdrant和Milvus的比较。

我们的评估表明,Milvus在评估的数据库中最为全面,满足了所有基本标准,并且在其他开源选项中表现突出。

688d67291cd93fdd732809ea6dbc673a.png

3.4 检索方法

给定用户查询,检索模块根据查询和文档之间的相似性从预构建的语料库中选择前k个相关文档。然后,生成模型使用这些文档来制定对查询的适当响应。然而,原始查询通常由于表达不佳和缺乏语义信息而表现不佳[6],这会对检索过程产生负面影响。为了解决这些问题,我们使用LLM-Embedder推荐的部分作为查询和文档编码器,评估了三种查询转换方法:

  • 查询重写:查询重写可以改善查询以更好地匹配相关文档。受到重写-检索-阅读框架[9]的启发,我们提示LLM重写查询以提高性能。

  • 查询分解:这种方法涉及基于原始查询派生的子问题进行检索,这更复杂,难以理解和处理。

  • 伪文档生成:这种方法基于用户查询生成一个假想文档,并使用假想答案的嵌入来检索类似文档。一个值得注意的实现是HyDE[10]。

最近的研究表明,将基于词汇的搜索与向量搜索相结合可以显著提高性能。在这项研究中,我们使用BM25进行稀疏检索,Contriever[45],一个无监督对比编码器,进行密集检索,基于Thakur等人[46],作为两个基于性能的稳健基线。

3.4.1 不同检索方法的结果

我们在TREC DL 2019和2020段落排名数据集上评估了不同搜索方法的性能。表6中呈现的结果表明,监督方法显著优于无监督方法。结合HyDE和混合搜索,LLM-Embedder取得了最高分。然而,查询重写和查询分解并没有像预期的那样增强检索性能。考虑到最佳性能和可接受的延迟,我们推荐将HyDE与混合搜索作为默认检索方法。考虑到效率,混合搜索结合了稀疏检索(BM25)和密集检索(原始嵌入),并以相对较低的延迟实现了显著的性能。

48a8ceeb2ba97268619903fd04838c53.png

3.4.2 HyDE的不同文档和查询连接

表7显示了使用HyDE时,假设文档和查询的不同连接策略的影响。将多个伪文档与原始查询连接可以显著提高检索性能,尽管以增加延迟为代价,表明了检索效果和效率之间的权衡。然而,不加选择地增加假设文档的数量并不会带来显著的好处,并显著提高了延迟,表明使用单个假设文档就足够了。

1f1c23038465a6f8ac81fd6328b7325f.png

3.4.3 混合搜索中稀疏检索的不同权重

表8展示了混合搜索中不同α值的影响,其中α控制稀疏检索和密集检索组件之间的权重。相关性得分的计算如下:

𝑆ℎ=𝛼⋅𝑆𝑠+𝑆𝑑

其中,𝑆𝑠,𝑆𝑑分别是来自稀疏检索和密集检索的归一化相关性得分,𝑆ℎ是总检索得分。

我们评估了五种不同的α值,以确定它们对性能的影响。结果表明,α值为0.3时性能最佳,表明适当调整α可以在一定程度上提高检索效果。因此,我们选择α=0.3作为我们的检索和主要实验。附录A.2提供了额外的实现细节。

822b2cfb5e704e390dc7a0664164ad41.png

3.5 重新排序方法

初始检索后,使用重新排序阶段来增强检索到的文档的相关性,确保最相关的信息出现在列表的顶部。这个阶段使用更精确和时间密集的方法有效地重新排序文档,增加了查询和排名最高文档之间的相似性。

我们在重新排序模块中考虑了两种方法:DLM重新排序,它利用分类;TILDE重新排序,它侧重于查询可能性。这些方法分别优先考虑性能和效率。

  • DLM重新排序:此方法利用深度语言模型(DLMs)[25-27]进行重新排序。这些模型被微调以将文档与查询的相关性分类为“真”或“假”。在微调过程中,模型被训练以将查询和文档输入连接起来,并按相关性进行标记。在推理过程中,文档根据“真”标记的概率进行排名。

  • TILDE重新排序:TILDE[28, 29]通过预测模型词汇表中每个查询项的独立可能性来计算每个查询项的可能性。文档通过将查询项的预先计算的对数概率相加来评分,允许在推理时快速重新排序。TILDEv2通过仅对文档中出现的标记进行索引,使用NCE损失,并扩展文档来提高效率并减少索引大小。

我们在MS MARCO段落排名数据集[47]上进行了实验,这是一个用于机器阅读理解的大规模数据集。我们按照PyGaggle[26]和TILDE[28]提供的实现进行操作并进行了修改,使用了monoT5、monoBERT、RankLLaMA和TILDEv2模型。重新排序结果如表9所示。我们推荐monoT5作为平衡性能和效率的综合方法。RankLLaMA适合实现最佳性能,而TILDEv2是在固定集合上获得最快体验的理想选择。附录A.3提供了实验设置和结果的详细信息。

db14feaec43752b4b81d2b749b035277.png

3.6 文档重新打包

后续流程的性能,如LLM响应生成,可能会受到文档提供顺序的影响。为了解决这个问题,我们在重新排序后的工作流程中整合了一个紧凑的重新打包模块,包括三种重新打包方法:“向前”、“向后”和“两边”。“向前”方法根据重新排序阶段的相关性得分以降序重新打包文档,而“向后”则按升序排列它们。受到Liu等人[48]的启发,他们得出结论,当相关信息放在输入的头部或尾部时,可以实现最佳性能,我们还包括了“两边”选项。

由于重新打包方法主要影响后续模块,我们在第4节中通过与其他模块结合测试来选择最佳重新打包方法。在本节中,我们选择“两边”方法作为默认重新打包方法。

3.7 摘要

检索结果可能包含冗余或不必要的信息,可能会阻止LLMs生成准确的响应。此外,长提示可能会减慢推理过程。因此,在RAG流程中,有效的方法对检索到的文档进行摘要至关重要。

摘要任务可以是提取式的或抽象式的。提取式方法将文本分段成句子,然后根据重要性进行评分和排名。抽象式压缩器从多个文档中合成信息,以重述并生成连贯的摘要。这些任务可以基于查询或非查询。在本文中,由于RAG检索与查询相关的信息,我们只专注于基于查询的方法。

  • Recomp:Recomp[23]具有提取式和抽象式压缩器。提取式压缩器选择有用的句子,而抽象式压缩器从多个文档中合成信息。

  • LongLLMLingua:LongLLMLingua[49]通过专注于与查询相关的主要信息来改进LLMLingua。

  • 选择性上下文:选择性上下文通过识别和删除输入上下文中的冗余信息来提高LLM效率。它使用基础因果语言模型计算的自信息来评估词汇单元的信息量。这种方法是非基于查询的,允许比较基于查询和非基于查询的方法。

我们在三个基准数据集上评估了这些方法:NQ、TriviaQA和HotpotQA。不同摘要方法的比较结果如表10所示。我们推荐Recomp,因为它出色的表现。LongLLMLingua表现不佳,但表现出更好的泛化能力,因为它没有在这些实验数据集上进行训练。因此,我们将其视为替代方法。附录A.4提供了额外的实现细节和对非基于查询方法的讨论。

68fb531558d1a981c30b3d152f49c0fd.png

3.8 生成器微调

在本节中,我们专注于在保留检索器微调的情况下微调生成器。我们旨在调查微调的影响,特别是相关或不相关上下文对生成器性能的影响。

形式上,我们将x表示为输入到RAG系统的查询,D表示此输入的上下文。生成器的微调损失是真实输出y的负对数似然。

为了探索微调的影响,特别是相关和不相关上下文的影响,我们定义dgold作为与查询相关的上下文,drandom作为随机检索的上下文。我们通过改变D的组成来训练模型,如下所示:

  • Dg:增强上下文由与查询相关的文档组成,表示为Dg = {dgold}。

  • Dr:上下文包含一个随机采样的文档,表示为Dr = {drandom}。

  • Dgr:增强上下文包括一个相关文档和一个随机选择的文档,表示为Dgr = {dgold, drandom}。

  • Dgg:增强上下文由两份查询相关文档组成,表示为Dgg = {dgold, dgold}。

我们将未微调的基础语言模型生成器表示为Mb,将根据相应D微调的模型表示为Mg、Mr、Mgr、Mgg。我们在几个QA和阅读理解数据集上微调了我们的模型。由于QA任务的答案相对较短,我们使用真实答案的覆盖率作为评估指标。我们选择Llama-27B[50]作为基础模型。与训练类似,我们在验证集上使用Dg、Dr、Dgr和D∅评估所有训练模型,其中D∅表示在没有检索的情况下进行推理。图3展示了我们的主要结果。在训练中使用混合相关和随机文档的模型(Mgr)在提供金或混合上下文时表现最佳。这表明在训练期间混合相关和随机上下文可以增强生成器对不相关信息的鲁棒性,同时确保有效利用相关上下文。因此,我们确定在训练期间通过增加一些相关和随机选择的文档作为最佳方法。附录A.5提供了有关数据集信息、超参数和实验结果的详细信息。

fa70e5328362bf16d1764a93f9c516a3.png

4 寻找最佳RAG实践

在接下来的部分中,我们调查了实现RAG的最优实践。首先,我们使用第3节中确定的每个模块的默认实践。按照图1所示的工作流程,我们依次优化各个模块,并在替代方案中选择最有效的选项。这个迭代过程一直持续到我们确定了最终摘要模块的最佳实现方法。根据第3.8节,我们使用Llama2-7B-Chat模型作为生成器,该模型在每个查询中通过一些随机选择和相关的文档进行了微调。

4.1 全面评估

我们进行了广泛的实验,涵盖了各种NLP任务和数据集,以评估RAG系统的性能。具体来说:(I)常识推理;(II)事实核查;(III)开放领域QA;(IV)多跳QA;(V)医学QA。有关任务及其相应数据集的更多详细信息,请参阅附录A.6。此外,我们使用RAGAs[51]推荐的指标评估了RAG能力在从这些数据集中提取的子集上的表现,包括忠实度、上下文相关性、答案相关性和答案正确性。我们还通过计算检索文档和金文档之间的余弦相似度来衡量检索相似度。

我们使用准确性作为常识推理、事实核查和医学QA任务的评估指标。对于开放领域QA和多跳QA,我们采用了基于标记的F1分数和精确匹配(EM)分数。最终的RAG分数是通过平均前述五个RAG能力来计算的。我们遵循Trivedi等人[52]的方法,从每个数据集中抽取最多500个示例。

4.2 结果与分析

基于表11中呈现的实验结果,得出以下关键见解:

  • 查询分类模块:该模块被引用并对有效性和效率都有所贡献,将整体得分从0.428提高到0.443,并将每个查询的延迟时间从16.41秒减少到11.58秒。

  • 检索模块:虽然“Hybrid with HyDE”方法达到了最高的RAG得分0.58,但计算成本相当高,每个查询需要11.71秒。因此,推荐使用“Hybrid”或“Original”方法,它们在减少延迟的同时保持了可比的性能。

  • 重新排序模块:缺少重新排序模块会导致性能明显下降,凸显了其必要性。MonoT5实现了最高的平均得分,证实了它在增强检索文档相关性方面的有效性。这表明重新排序在提高生成响应的质量中起着关键作用。

  • 重新打包模块:“Reverse”配置展现出更优越的性能,RAG得分为0.560。这表明将更相关的上下文更接近查询位置可以带来最佳结果。

  • 摘要模块:Recomp表现出色,尽管通过去除摘要模块可以实现较低延迟的可比结果。然而,Recomp仍然是首选,因为它能够解决生成器的最大长度限制问题。在时间敏感的应用中,去除摘要可以有效地减少响应时间。

实验结果表明,每个模块都为RAG系统的整体性能做出了独特的贡献。查询分类模块提高了准确性并减少了延迟,而检索和重新排序模块显著提高了系统处理多样化查询的能力。重新打包和摘要模块进一步细化了系统的输出,确保了不同任务的高质量响应。

c03693dbf017ad50c112b26ab1e8a74b.png

5 讨论

5.1 实施RAG的最佳实践

根据我们的实验发现,我们建议两种不同的配方或实践来实施RAG系统,每种都针对特定的需求定制:一个专注于最大化性能,另一个在效率和效果之间取得平衡。

最佳性能实践:为了实现最高性能,建议加入查询分类模块,使用“Hybrid with HyDE”方法进行检索,使用monoT5进行重新排序,选择“Reverse”进行重新打包,并利用Recomp进行摘要。这种配置产生了最高的平均得分0.483,尽管这是一个计算密集型的过程。

平衡效率实践:为了在性能和效率之间取得平衡,建议加入查询分类模块,实施检索的Hybrid方法,使用TILDEv2进行重新排序,选择“Reverse”进行重新打包,并使用Recomp进行摘要。鉴于检索模块占据了系统处理时间的大部分,转换到Hybrid方法同时保持其他模块不变可以大幅降低延迟,同时保持可比的性能。

5.2 多模态扩展

我们已经将RAG扩展到多模态应用中。具体来说,我们已经将text2image和image2text检索能力集成到系统中,使用大量的成对图像和文本描述作为检索源。如图4所示,当用户查询与存储图像的文本描述高度匹配时(即“检索即生成”策略),text2image功能可以加速图像生成过程,而image2text功能在用户提供图像并就输入图像进行对话时发挥作用。这些多模态RAG能力提供了以下优势:

  • 基础性:检索方法提供来自经过验证的多模态材料的信息,从而确保真实性和特异性。与此相反,即时生成依赖于模型生成新内容,有时会发生事实错误或不准确。

  • 效率:检索方法通常更有效,特别是当答案已经存在于存储材料中时。相反,生成方法可能需要更多的计算资源来制作新内容,特别是对于图像或长文本。

  • 可维护性:生成模型通常需要仔细微调以适应新应用。相比之下,基于检索的方法可以通过简单地扩大检索源的规模和提高检索质量来改进,以满足新的需求。

我们计划将这种策略的应用扩展到包括其他模态,如视频和语音,同时也探索高效有效的跨模态检索技术。

db78146f9672cf5d7c6fca4cfa986e75.png

6 结论

在这项研究中,我们旨在确定实施检索增强生成的最佳实践,以提高大型语言模型生成内容的质量和可靠性。我们系统地评估了RAG框架内每个模块的一系列潜在解决方案,并为每个模块推荐了最有效的方法。此外,我们引入了一个全面的RAG系统评估基准,并进行了广泛的实验,以确定各种替代方案中的最佳实践。我们的发现不仅有助于更深入地理解检索增强生成系统,而且为未来的研究奠定了基础。

bac8222494e76f15b9754c1f5d2ea118.jpeg作者:张长旺,图源:旺知识

参考资料

标题:Searching for Best Practices in Retrieval-Augmented Generation 作者:Xiaohua Wang, Zhenghua Wang, Xuan Gao, Feiran Zhang, Yixin Wu, Zhibo Xu, Tianyuan Shi, Zhengyuan Wang, Shizheng Li, Qi Qian, Ruicheng Yin, Changze Lv, Xiaoqing Zheng, Xuanjing Huang 单位:School of Computer Science, Fudan University, Shanghai, China Shanghai Key Laboratory of Intelligent Information Processing 标签:人工智能、自然语言处理、检索增强生成(RAG)、大型语言模型(LLMs)、多模态检索 概要:本文通过广泛的实验探索了检索增强生成(RAG)技术的最佳实践,旨在提高大型语言模型在特定领域中生成内容的质量和效率。

链接:https://arxiv.org/abs/2407.01219


备注:昵称-学校/公司-方向/会议(eg.ACL),进入技术/投稿群

4dd3a60e4640925b8d8ed624b1242db5.png

id:DLNLPer,记得备注呦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值