自学内容网 自学内容网

再看长文本大模型遇见RAG:长输入的RAG方案挑战及其缓解实证分析

关于RAG长文本进展,长文本LLMs与RAG相遇:解决长输入的RAG挑战,系统中使用长上下文大型语言模型(Long-Context LLMs)所面临的挑战。

先说其中的一些发现:

一个是性能与检索段落数量的关系:研究发现,对于许多长上下文LLMs,随着检索段落数量的增加,生成输出的质量先提高然后下降。这与之前的观点相反,即认为更大的检索集会包含更多相关信息,可能会提高性能。

一个是“难负例”的影响:论文识别出检索到的“难负例”(hard negatives)对LLMs生成性能的有害影响,并提出这是性能下降的一个关键因素。

一个是对应的改进方法:为了减轻这种影响并增强基于长上下文LLM的RAG的鲁棒性,提出了三种方法来提高长上下文LLMs在RAG中的鲁棒性:(1)基于检索重排序的无需训练的方法,(2)隐式调优以增强对难负例的鲁棒性,以及(3)带有中间推理的显式调优以识别相关性。

**这个报告还不错,看看会有收获,**供大家参考并思考。

一、长上下文LLMs在RAG中的挑战

1、检索上下文大小对RAG性能的影响

1)研究问题

长上下文LLMs能够将更多的检索段落纳入RAG系统。一个关键问题是:更多的检索上下文是否总能转化为更好的性能?

2)实验设置

使用不同的检索器(如BM25和e5)和长上下文LLMs(如Gemma-7B-Chat、Gemma-2-9B-Chat、Mistral-Nemo-12B-Instruct和Gemini-1.5-Pro)在Natural Questions(NQ)数据集上评估RAG系统的性能,并系统地变化每个检索器检索的段落数量。

3)观察结果

增加检索段落的数量最初提高了性能,但随后导致了性能的急剧下降或趋于平稳。这种性能退化在使用召回率更高的检索器(如e5)时更为明显。

因此,增加检索上下文大小在RAG中的有效性取决于检索器的强度。使用强检索器时,性能呈现出“倒U型”模式,而使用弱检索器则显示出更一致(尽管可能有限)的改进。

2、检索质量和LLM能力之间的相互作用

1)研究问题

观察到的性能瓶颈是源于检索器识别相关信息的能力限制,还是源于长上下文LLM有效利用检索上下文的能力限制?

2)实验设置

分析RAG性能与检索质量(召回和精确度)之间的关系,使用Gemma-2-9B-Chat LLM和e5及BM25检索器。

3)观察结果

增加检索段落的数量一致地提高了召回率但降低了精确度,无论使用哪种检索器。RAG系统的总体准确性低于检索召回率,表明即使检索上下文中存在相关信息,LLM也可能无法生成正确答案。

因此,不相关的检索段落(“难负例”)对LLMs的性能有不利影响。即使在检索到相关信息的情况下,难负例的存在可能会误导LLMs,阻碍它们生成准确答案。

3、难负例对长上下文LLM评估的重要性

1)研究问题

在长上下文RAG场景中,大量的知识源检索需要检索众多段落,这增加了包含相关信息(即获得高召回率)的可能性。然而,这也增加了引入难负例的风险。这引发了两个关键问题:(1)当前的长上下文LLMs对这些难负例的鲁棒性如何?(2)难负例的影响是否随着使用的检索器而变化?

2)实验设置

通过控制实验,研究难负例对长上下文LLM性能的影响。使用不同的方法(如e5、Contriever、BM25和随机抽样)检索难负例,并将单个真实段落与不同数量的难负例结合,任务是让LLMs基于此上下文回答查询。

3)观察结果

增加难负例的数量通常会导致RAG答案准确性下降。检索器的强度与难负例的难度直接相关。LLMs在处理来自更强检索器(例如e5)的难负例时比处理来自较弱检索器(例如BM25)或随机抽样的难负例时更加困难。

二、一种不需要额外训练的改进方法

一种不需要额外训练的改进方法,即检索重排序(Retrieval Reordering)。

这种方法旨在通过调整检索结果的顺序来提高长上下文LLMs在RAG系统中的性能,特别是针对“难负例”对模型性能的负面影响。

1、“难负例”的影响

“难负例”对长上下文LLMs在RAG中的性能有显著的负面影响。这些不相关的检索结果可能会误导模型,导致生成不准确的答案。

2、检索重排序策略

根据检索分数对检索到的文档进行重新排序。这种方法利用了LLMs处理输入序列时的“中间遗忘”现象,即模型倾向于更多地关注序列开始和结束部分的信息,而较少关注中间部分。

通过将得分较高的检索文档放在输入序列的开始和结束位置,可以引导LLMs的注意力集中在更相关的信息上,从而减少难负例的影响。

3、检索重排序算法

论文提供了检索重排序的具体算法,该算法根据检索分数对文档进行排序,并按照特定的顺序将它们插入到输入序列中。这种方法旨在通过位置工程来优化LLMs的性能,与提示工程(prompt engineering)相辅相成。

4、实验结果

通过实验验证了检索重排序策略的有效性。实验使用了不同的检索器(如e5和BM25)、长上下文LLMs(如Gemma-2-9B-Chat和Mistral-Nemo-12B-Instruct)以及不同的数据集(如NQ和PopQA)。

结果显示,当检索到的文档数量较大时,检索重排序策略显著提高了RAG的准确性,并且一致性地优于原始顺序。这表明,通过战略性地放置文档,检索重排序可以减轻LLMs在处理大量检索结果时面临的挑战。

三、通过数据增强的微调改进RAG的鲁棒性

如何通过数据增强的微调方法来提高长上下文大型语言模型(LLMs)在检索增强生成(RAG)任务中的鲁棒性。

1、隐式提高LLM鲁棒性的微调

这种方法通过在微调阶段将查询和检索文档(包括可能的噪声)一起呈现给LLMs,使模型能够在训练中接触到多样化的检索上下文,从而学习在噪声存在的情况下有效地识别和利用相关信息。

2、微调方法的评估

为了评估RAG特定微调方法的有效性,研究者们使用包含NQ、WoW、Fever和MMLU等多种数据集的混合数据对Gemma-2-9B-Base、Mistral-Nemo-12B-Base和Gemini-1.0-Pro等模型进行了微调,并在多个未见过的数据集上进行了评估,如TriviaQA、PopQA、HotpotQA等。

3、微调方法的效果

实验结果表明,与仅使用聊天模型和直接在问答对上进行标准监督微调(SFT)的基线模型相比,经过RAG特定数据微调的模型(RAG FT)在所有评估的数据集上都表现出一致的性能提升。

这表明RAG FT不仅使LLM能够在训练中“记忆”知识,还使其能够在推理过程中有效地从检索上下文中“提取”相关信息。

4、通过中间推理增强相关性识别的微调

除了隐式微调方法外,还有一种在微调过程中加入中间推理步骤的方法。这种方法要求LLMs在生成最终答案之前,先生成一个推理段落,明确识别出与给定查询相关的检索文档。

在训练期间,LLMs会被提供token的推理段落,以指导其学习过程。在推理期间,LLMs被指示首先生成推理段落,然后利用这一分析生成答案。这种方法旨在显式地提高LLMs从检索上下文中的噪声中识别相关信息的能力,从而提高其在RAG中的总体性能。

如何学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

学习路线

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓


原文地址:https://blog.csdn.net/qkh1234567/article/details/142914033

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!