在大型语言模型(LLMs)中,检索增强生成(RAG)和长上下文(LC)是两种不同的方法,它们在处理大规模文本数据时各有优势。本文将探讨这两种方法的优缺点,并分析它们在实际应用中的适用性。
RAG是一种将外部知识与LLM相结合的方法。它通过检索与查询相关的信息,并将这些信息提供给LLM来生成响应。这种方法可以显著扩展LLM的知识范围,并提高其在各种任务中的表现。
LC则是指LLM能够直接理解和处理长文本的能力。一些最新的LLM,如Gemini-1.5和GPT-4,已经展示了出色的长上下文理解能力。这使得它们能够更有效地处理大规模文本数据,而不需要依赖外部检索。
在性能方面,LC通常比RAG更出色。这是因为LC能够直接理解和处理长文本,而不需要依赖外部检索。这使得它们能够更准确地捕捉文本中的信息,并生成更准确的响应。
例如,在一项对9个公共数据集的评估中,LC在所有三个最新的LLM(Gemini-1.5-Pro,GPT-4O和GPT-3.5-Turbo)上都表现出了更好的性能。平均而言,LC在Gemini-1.5-Pro上比RAG高出7.6%,在GPT-4O上高出13.1%,在GPT-3.5-Turbo上高出3.6%。
然而,RAG在处理超过模型上下文窗口大小的输入文本时具有优势。例如,在两个较长的数据集(En.QA和En.MC)上,RAG在GPT-3.5-Turbo上表现出了更高的性能。这可能是因为这些数据集的上下文长度超过了GPT-3.5-Turbo的上下文窗口大小(16k)。
在成本方面,RAG具有显著的优势。由于RAG只需要将检索到的文本块提供给LLM,而不需要提供整个上下文,因此它能够显著减少LLM的输入长度,从而降低成本。
例如,在一项实验中,使用RAG可以将Gemini-1.5-Pro的成本降低65%,将GPT-4O的成本降低39%。这对于需要处理大规模文本数据的实际应用来说是一个重要的优势。
基于RAG和LC的优缺点,作者提出了一种名为Self-Route的方法。该方法利用LLM的自我反思能力来动态地将查询路由到RAG或LC,以实现性能和成本之间的最佳平衡。
Self-Route方法包括两个步骤:RAG-and-Route步骤和长上下文预测步骤。在RAG-and-Route步骤中,LLM被要求预测查询是否可回答,并生成答案。如果查询不可回答,则进入长上下文预测步骤,将整个上下文提供给LC来生成最终的预测。
通过这种方式,Self-Route方法能够利用RAG的成本优势和LC的性能优势,从而在实际应用中实现更好的性能和成本平衡。