一、结论写在前面论文标题:In Defense of RAG in the Era of Long-Context Language Models论文链接:https://arxiv.org/pdf/2409.01666克服早期生成式大型语言模型(LLMs)的有限上下文限制,检索增强生成(RAG)在过去一直是基于上下文的答案生成的可靠解决方案。最近,长上下文LLMs的出现使得模型能够整合更长的文本序列,使得RAG变得不那么吸引人。最近的研究表明,长上下文LLMs在长上下文应用中显著优于RAG。与现有倾向于长上下文LLM而非RAG的工作不同,论文认为LLMs中的极长上下文会导致对相关信息的注意力减弱,并可能导致答案质量的潜在下降。论文重新审视了RAG在长上下文回答生成中的有效性。论文观察到,在LLM的上下文中,检索到的块的顺序对回答质量至关重要。与传统RAG将检索到的块按相关性降序排列不同,论文提出在原始文本中保留检索到的块的顺序。论文的实验表明,所提出的顺序保留机制显著提高了RAG的回答质量。与此同时,使用提出的保序RAG,随着检索块数量的增加,答案质量起初上升然后下降。这是因为,随着检索块的增多,模型能够访问到更多潜在相关的信息,从而提高了检索到生成高质量答案所需正确上下文的机会。然而,随着检索块的增多,引入不相关或干扰信息的可能性也增加。这些多余的信息可能会迷惑模型,导致答案质量下降。因此,权衡在于通过检索更多上下文来提高召回率与通过限制干扰来保持精确度之间。最佳点在于相关与不相关信息的平衡最大化答案质量。超过这一点,引入过多不相关信息会降低模型性能。这解释了将整个长上下文作为LLM输入的方法性能较差的原因。与Li等人(2024)的结论不同,通过提出的保序机制,RAG相比仅依赖长上下文LLM的同类方法,实现了更高的答案质量。如图4a所示,在∞Bench的En.QA数据集上,仅使用16K检索token,论文使用Llama3.1-70B达到了44.43 F1分数。相比之下,不使用RAG,Llama3.1-70B充分利用128K上下文仅达到34.32 F1分数,GPT-40仅达到32.36 F1分数,Gemini-1.5-Pro在Li等人(2024)的评估下仅获得43.08 F1分数。也就是说,RAG即使在输入长度显著减少的情况下,也能实现更高的 F1分数。二、论文的简单介绍2.1 论文的背景由于早期LLM的上下文窗口长度有限(例如,4096),检索增强生成(RAG)是处理大规模上下文语料库不可或缺的选择。由于答案质量在很大程度上依赖于检索模型的性能,因此在设计RAG系统时,大量的努力都投入到提高检索的召回率/精确度上。最近,最先进的LLMs支持更长的上下文窗口。例如,GPT-40,Claudi-3.5,Llama3.1、Phi-3和Mistral-Large2都支持128K上下文。Gemini-1.5-pro甚至支持1M上下文窗口。长上下文LLM的近期涌现自然引发了一个问题:在长上下文LLM的时代,RAG是否仍然必要?Li et al.(2024)最近系统地比较了RAG与长上下文(LC)LLM(不使用RAG),并证明LC(long-context) LLM在回答质量方面始终优于RAG。图1:提出的顺序保留检索增强生成(OP-RAG)与使用长上下文LLM但不使用RAG的方法在coBench的En.QA数据集上的比较。论文的OP-RAG使用Llama3.1-70B作为生成器,显著优于不使用RAG的Llama3.1-70B。
图 2 :普通RAG与提出的顺序保留RAG的对比。如图所示,文档被分割成13个片段 。每个片段附有一个相似度分数。论文检索相似度分数最高的4个片段。普通RAG按分数降序排列片段,而提出的顺序保留RAG则根据片段在原始文档中的顺序排列。2.2 顺序保留RAG论文用 d 表示长文本上下文,例如一个长文档。论文将 d 顺序且均匀地分割成 N个片段 c_i。索引 i 表示片段 c_i在 d 中的顺序。即, c_i-1表示 c_i之前的片段,而 c_i+1表示 c_i之后的片段。给定一个查询 q ,论文通过计算 q 的嵌入与 c_i的嵌入之间的余弦相似度来获得片段 c_i的相关性分数:其中 cos(., .) 表示余弦相似度函数,emb(.) 表示嵌入函数。