深入现有RAG,找出性能和效率的最佳实践

论文:Searching for Best Practices in Retrieval-Augmented Generation

代码:https://github.com/FudanDNN-NLP/RAG

要做一个多模态RAG项目,目前还没想到用什么方案好,先读一下RAG方案测评结果。

提出背景

检索增强生成(Retrieval-Augmented Generation,简称 RAG)技术,这是一种用于改进大型语言模型的方法。让我们简单地拆解这个概念:

  1. 生成性大型语言模型(LLMs)的问题:这些模型虽然强大,但有时会生成过时或不准确的信息。

为了改进这一点,研究者们通过不同的技术调整这些模型以更好地符合人类的偏好和需求。

  1. RAG 的介绍:RAG 技术结合了预训练的语言模型和基于检索的模型的优点,旨在提供一个强大的框架来提高模型的性能。

这种方法不需要更新模型的参数,只要有相关的查询文档即可快速部署到特定的领域和组织。

  1. RAG 工作流程:RAG 处理包括几个步骤——

    • 查询分类:判断一个输入的查询是否需要进行文档检索。
    • 检索:高效地获取与查询相关的文档。
    • 重排:基于文档与查询的相关性重新排序。
    • 重新打包:把检索到的文档组织成更结构化的形式,以便更好地生成响应。
    • 摘要:从组织好的文档中提取关键信息,用于生成响应,并消除重复信息。
  2. RAG 实现的挑战:实现这些步骤存在多样性和复杂性。例如,检索相关文档可以通过重写查询或生成伪响应等多种方式。

  3. 本研究的目标和方法:研究旨在通过实验确定 RAG 的最佳实践,包括评估不同方法对整体性能的影响,并最终选择每个步骤最有效的方法。

  4. 研究的贡献:这项研究不仅全面评估了不同的 RAG 方法,还引入了评估指标和数据集来衡量模型性能。

此外,研究还展示了如何通过整合多模态检索技术来提高对视觉输入的问答能力,并加快多模态内容的生成。

 

检索增强生成(RAG)的工作流程、实验对比

  1. 查询分类(3.1节)
    • 不是所有的查询都需要外部信息检索,因为大型语言模型(LLM)本身具备处理某些类型查询的能力。
    • 系统通过分类来决定哪些查询需要通过RAG进行增强。例如,较新的信息或复杂的问题可能需要外部数据支持。

在这里插入图片描述
查询分类器的结果:

  • 模型:BERT-base-multilingual
  • 度量
    • 准确率(Acc):0.95
    • 精确度(Prec):0.96
    • 召回率(Rec):0.94
    • F1分数:0.95

这表明BERT-base-multilingual模型在查询分类任务上表现良好,平衡了精确度和召回率。

  1. 文档分块(3.2节)
    • 为了提高检索的精确度,将大文档分割成更小的段落或块是必要的。
    • 这可以基于令牌、句子或更高级的语义层次来实现。
    • 分块的大小和技术(如从小到大、滑动窗口等)直接影响检索效率和准确性。

在这里插入图片描述
不同块大小的比较:

  • 块大小:从2048到128不等。
  • 度量
    • 平均忠实度:衡量内容与原始文本的一致性。
    • 平均相关性:衡量内容与查询相关性。

结果显示较小的块大小(如512和256)在保持内容忠实度和相关性方面表现更佳。

在这里插入图片描述
不同分块技能的比较:

  • 比较了原始、小到大和滑动窗口等分块技术。
  • 度量
    • 平均忠实度平均相关性:小到大和滑动窗口方法提供了改进的忠实度和相关性,特别是滑动窗口方法在保持高相关性的同时也提供了更高的忠实度。
  1. 嵌入模型和向量数据库(3.2.3节和3.3节)
    • 嵌入模型用于将文本转换为机器能够理解和处理的数值形式,这对于匹配查询和文档非常关键。
    • 向量数据库则存储这些数值向量,以便快速检索相关信息。

在这里插入图片描述
不同嵌入模型的结果:

  • 这张表展示了多种嵌入模型在处理特定语料库(namespace-Pt/msmarco)时的性能,使用了多种指标如MRR(平均排序倒数)和R(召回率)。
  • 模型如BAAI/LLM-Embedder和BAAI系列变体在不同大小设置下的表现进行了比较,显示出较高的MRR和召回率。
  • 该表显示LLM-Embedder和其他几种嵌入模型在检索任务中的有效性,尤其是在处理大规模和复杂查询时的性能。

在这里插入图片描述
不同向量数据库的比较:

  • 比较了Weaviate、Faiss、Chroma、Qdrant和Milvus等数据库。
  • 关键特性
    • 多种索引类型
    • 十亿级向量支持
    • 混合搜索
    • 云原生

Milvus在多个关键特性上表现出色,是综合性能最强的向量数据库。

  1. 检索方法(3.4节)
    • 根据查询的需要,检索系统会从数据集中找到最相关的文档。这可能包括查询重写、查询分解或生成基于查询的伪文档等策略。
    • 检索的方法和策略会根据需要检索的数据量和复杂性进行调整。

在这里插入图片描述
TREC DL19/20不同检索方法的结果:

  • 方法:包括无监督(BM25, Contriever)和监督(LLM-Embedder 及其变体)方法。
  • 度量:包括平均精度(mAP)、归一化折扣累积增益(nDCG@10)、召回率(R@50, R@1k)和延迟。
  • 结果:表中突出显示了每种方法的最佳和次优结果。HyDE + Hybrid Search 组合在多个度量上表现最佳

HyDE 假设性文档嵌入:大模型 + 对比学习,从关键词相似度搜索到语义搜索

在这里插入图片描述
HyDE在使用不同假设文档和查询连接策略的表现:

  • 配置:包括不同的伪文档和查询连接方式。
  • 度量:同样包括mAP、nDCG@10、R@50 等。

结果:显示在使用更多伪文档和查询时,性能有所提高,但同时也增加了延迟。


混合搜索中不同alpha值的结果:

  • Hyperparameter α:不同的权重值反映在稀疏检索和密集检索之间的平衡。
  • 度量:包括mAP、nDCG@10、R@50等。
  • 结果:α = 0.3 提供了最佳的平衡,优化了性能和延迟
  1. 重新排名和文档重组(3.5节和3.6节)
    • 在检索到相关文档后,系统会重新排列这些文档,确保最相关的信息最先被呈现。
    • 文档的最终排列方式可能影响信息的呈现和后续生成的响应质量。
      在这里插入图片描述

MS MARCO Passage排名中不同重新排名方法的结果:

  • 方法:包括不重新排名、随机排名、DLM 重新排名等。
  • 度量:包括MRR@1、MRR@10、命中率@10 和延迟。
  • 结果:RankLLaMA 在多个度量上表现最佳,尤其是在延迟较低的情况下
  1. 摘要生成(3.7节)
    • 从检索到的文档中提取关键信息,去除不必要的内容,这对于生成准确、简洁的响应至关重要。

在这里插入图片描述

不同摘要方法的比较:

  • 方法:包括无摘要、抽取式(BM25, Contriever)和生成式(SelectiveContext, LongLLMLingua)。
  • 度量:F1分数和令牌数(#token)。
  • 结果:Recomp(生成式)在F1分数上表现出色,同时保持了合理的令牌数量。

在这里插入图片描述
生成器微调的结果

  • 展示了在不同数据集上训练的模型(如金标准、随机、混合文档)的性能。
  • 度量:覆盖率分数。
  • 结果:混合相关和随机文档的方法(Mgr)在提供相关或混合上下文时表现最佳。

最佳测评结果

作者描述了两种实施检索增强生成(RAG)系统的最佳实践方法,每种方法都针对特定需求进行了定制:一种注重最大化性能,另一种在效率和效果之间寻求平衡。

  1. 最佳性能实践

    • 查询分类模块:用于提高系统的整体准确性和效率。
    • 检索方法:“Hybrid with HyDE”方法用于检索,以实现最高的性能。
    • 重新排名:采用monoT5进行重新排名,优化检索到的文档排序。
    • 重组方法:选择“Reverse”进行文档重组,确保相关内容更接近查询,以优化结果。
    • 摘要生成:使用Recomp进行摘要处理,以精准总结和简化检索结果。
    • 这种配置虽然计算量大,但能获得最高的平均得分0.483。
  2. 平衡效率实践

    • 在保留查询分类和使用Recomp摘要生成的基础上,推荐使用“Hybrid”方法进行检索,使用TILDEv2进行重新排名,以及“Reverse”重组方法。
    • 这种配置在减少延迟的同时,保持了与最佳性能实践相当的性能表现。

通过检索即生成策略,加速多模态内容生成,显著提升视觉问答能力

在这里插入图片描述
这幅图(图4)描述了多模态检索的工作流程,具体展示了文本到图像(Text2Image)和图像到文本(Image2Text)的检索过程:

文本到图像检索(Text2Image Retrieval):

  1. 用户查询:用户输入一个文本查询,例如“A dog is sleeping”。
  2. 检索过程:系统在数据库中查找与文本查询最相似的图像。
    • 如果找到高度相似的图像,该图像直接被返回给用户。
    • 如果没有找到高度相似的图像,则使用图像生成模型根据文本查询生成新的图像。

图像到文本检索(Image2Text Retrieval):

  1. 用户提供图像:用户上传一张图像,例如一只狗正在喝水的照片。
  2. 检索过程:系统尝试在数据库中找到与提供的图像最相似的图像。
    • 如果找到高度相似的图像,系统将返回该图像的预存描述(即图像的标签或说明)。
    • 如果没有找到高度相似的图像,图像描述模型将生成一个新的描述来解释图像内容。

图示元素:

  • 用户查询(蓝色方框)
  • 低相似度(绿色箭头)
  • 高相似度(蓝色箭头)
  • 图像生成模型(黄色标签)
  • 图像描述模型(绿色标签)

这种多模态检索能力增强了系统处理图像和文本信息的能力,为用户提供更丰富和互动的查询响应。

它适用于需要快速精确访问图像库的场景,如在线媒体库、教育资源或者客户支持系统。

 
“检索即生成”(Retrieval as Generation)策略是一种结合检索和生成模型来快速提供多模态内容的方法,特别是在视觉问答(Visual Question Answering, VQA)等应用中。

这种策略利用了现有的数据资源来提供快速且准确的回答,同时利用生成模型来填补检索结果中的空白或提供附加信息。

1. 构建一个强大的多模态数据库

  • 数据收集:收集大量的图像和与之相关的文本数据,如描述、标签或问答对。
  • 数据索引:使用高效的向量索引技术(如FAISS或Milvus)对图像和文本进行编码和索引,以便快速检索。

2. 实施高效的检索算法

  • 多模态嵌入:使用深度学习模型(如CLIP或ViLBERT)生成跨模态嵌入,这可以同时理解图像内容和相关的文本描述。
  • 相似性匹配:设计算法以根据用户的视觉或文本查询检索数据库中的相似项。例如,对于视觉问答,根据问题内容检索相关图像和其问答对。

3. 结合生成模型

  • 生成未覆盖内容:对于检索结果不足以完全回答用户查询的情况,使用生成模型(如GPT-3或DALL-E)基于检索到的内容生成缺失信息。
  • 内容增强:即使检索到了相关内容,也可以使用生成模型增强这些内容的细节或创造性,提供更加丰富和具有吸引力的回答。

4. 优化查询处理

  • 智能查询解析:利用自然语言处理技术理解用户查询的具体意图和上下文,从而精准定位到最相关的检索和生成路径。
  • 快速响应设计:设计系统以并行处理检索和生成步骤,最小化响应时间。

5. 用户交互与反馈

  • 动态学习:系统应能根据用户反馈动态优化检索和生成模型,提高准确性和用户满意度。
  • 界面优化:开发直观的用户界面,使用户能轻松提出问题并接收信息,提升整体用户体验。

通过以上步骤,"检索即生成"策略不仅能显著提升视觉问答的能力,还能在教育、电商、客户支持等多个领域提供高效、互动的用户体验。

这种方法充分利用了现有信息资源的同时,通过创造性生成补充内容,满足更广泛的用户需求。

  • 12
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值