下一代RAG范式:RAG-Fusion
随着自然语言处理(NLP)和生成式人工智能(Generative AI)的飞速发展,检索增强生成(RAG)这个概念逐渐从实验室走进了实际应用。它的核心思路并不复杂:把基于检索的模型和序列到序列的架构结合起来,让大型语言模型(LLM)在生成回答时,不再是“凭空想象”,而是能拉取真实的外部数据作为支撑。这听起来像是给AI装上了一副“知识眼镜”,它能看得更准、说得更靠谱。
但任何技术都有它的软肋。RAG在某些场景下依然会掉链子,于是就有了升级版的思路——RAG Fusion。它试图解决RAG的固有缺陷,让人机交互的信息检索变得更聪明。下面我们就来拆解一下,RAG到底是怎么工作的,RAG Fusion又在哪些地方动了手术。
RAG:理解检索增强生成
检索增强生成是一种结合了超大型预训练语言模型和外部检索机制的方法。它的核心逻辑很简单:让模型在生成回答的过程中,有能力从海量文档中“捞”出最相关的信息,再把这些信息揉进自己的回答里。这样一来,模型既保留了自身的语言生成能力,又拥有了实时获取外部知识的能力。
要理解RAG如何提升LLM回答的可信度,我们得看看它的两个关键步骤:
- — 当用户输入一个问题或提示,RAG模型会先从文档库中检索出一组最相关的文档或段落。这一步通常依赖密集向量表示,把文档和查询都转成向量,然后通过相似度计算找到匹配项。
检索步骤
- — 检索到的相关段落会连同原始提示一起塞给生成模型。模型利用自己的预训练知识,再结合这些外部段落,最终输出一个更准确、更丰富的回答。
生成步骤

上图展示了RAG的基本机制。要注意的是,增强提示用的外部数据可以来自文档库、数据库甚至API,关键一步是把这些数据转成统一的格式,方便做相关性搜索。这里用到了嵌入语言模型——文档库和用户查询都被转换成数值向量,然后通过向量空间的比对,找到上下文最相似的文档。下图就是最基础的RAG架构示意。
RAG的优势
和孤军奋战的LLM相比,RAG在生成优质回答方面优势明显:
输出高质量的回答,能引用最新、最准确的信息。
大幅降低计算和存储成本,不用把所有知识都塞进模型参数里。
有效减少“幻觉”现象——也就是模型胡编乱造、生成不真实信息的问题。
RAG的局限性
当然,RAG并不是银弹。在实际落地中,它有几块硬骨头要啃:
依赖外部知识库,如果知识库本身有错误信息,那结果自然会跑偏。
从外部获取数据会引发隐私和安全问题。不过通过文档级访问控制,可以限制对特定内容的读取。
当前的搜索技术——无论是词法搜索还是向量搜索——都存在天花板,限制了RAG的发挥。
人在输入查询时效率并不高:拼写错误、表达模糊、词汇量有限,都会导致检索结果“漏掉”大量有价值的信息。
线性检索范式难以捕捉复杂用户查询背后的真实意图,搜索结果常常很“糙”。
RAG Fusion
RAG Fusion(Raudaschl, 2023)正是冲着这些短板来的。它的思路很直接:既然单次查询不够精准,那就生成多个相关的查询,再用RRF(互惠排名融合)策略对结果重新排序。这样一来,既能弥补人类搜索的低效,也能突破简单检索的瓶颈。说白了,它试图在用户输入的粗糙查询和真实意图之间架一座桥。
RAG Fusion在技术栈上和RAG差不多:Python、向量搜索数据库(比如Elasticsearch或Pinecone)、再加上一个大模型(比如ChatGPT)来生成查询和重排结果。它的核心卖点是——不依赖更先进的LLM,就能理解复杂查询的微妙之处。通过生成多个查询并重排结果,利用RRF和自定义向量分数加权,最终得到更全面、更准确的搜索结果。
为什么选择RAG Fusion?
RAG Fusion背后的核心理念,是理解复杂的人类查询,而不需要非得用上最贵的模型。它通过多查询生成和结果重排,轻松应对RAG的固有约束。同时,RRF和向量分数加权保证了结果的全面性和准确性。
RAG Fusion的方法论
RAG Fusion和RAG用到的技术栈一样:Python、向量搜索数据库、大模型。工作流程也类似,只是多了两个关键步骤——查询生成和结果重排,这才是提升回答质量的“秘密武器”。
它的运行流程如下:
通过LLM将用户的原始查询“翻译”成几个语义相似但表述不同的查询——这叫查询复制。
对原始查询和生成的每个新查询分别做向量搜索,得到多组结果。
使用RRF将所有查询结果融合并精炼,得到一个统一的排名。
选出所有查询中排名靠前的结果,把这些材料一起交给LLM,让它基于这些信息生成最终的回答。
理解RAG Fusion背后的复杂性 — RRF
RRF,全称互惠排名融合,是一种把多个搜索结果合并成一个统一排序的技术。为什么需要它?因为单个查询往往只能覆盖问题的某一面,可能太窄,无法给出全面的答案。通过多个不同角度的查询,再结合所有结果,才能给用户一个“精心谋划”的回答。
RRF通过组合不同搜索查询中的文档排名,让所有相关文档都有机会出现在最终结果里。更重要的是,它不依赖搜索引擎给出的绝对分数,而是依赖相对排名——这样即使不同查询的评分标准不同,也能统一融合。

Raudaschl在2023年给出的上图展示了RRF算法的具体实现。`reciprocal_rank_fusion`函数接收一个字典,其中每个键代表一个查询,对应的值是一个按相似度排名的文档ID列表。RRF根据文档在不同列表中的排名计算新分数,再排序得到融合后的结果。
这种方法通过综合多个查询结果中文档的排名情况,而不是只看单一查询,大幅提高了搜索结果的整体质量。特别适合那些需要多角度理解才能回答清楚的复杂用户查询。
RRF按照一个简单的评分公式对文档打分。公式中,集合D代表所有待排序的文档,集合R是每个文档的排名(从1到|D|),常数k设置为60。计算融合分数后,按分数降序排列,就得到了最终的重排列表。
为了防止多查询偏离用户原本的意图,模型在提示工程中被赋予一个规则:原始查询的权重高于后续生成的那些查询。最终,重排后的文档和查询一起被送到LLM,和RAG类似,模型根据这些材料生成回答或摘要。
RAG Fusion的优势
相比普通RAG,RAG Fusion带来了几个实实在在的好处:
搜索深度增加,源材料的质量明显提升。
输出更全面,能回应用户多方面的信息需求。
从多样化的文档中提取信息,组织出结构清晰、有深度的答案。
隐式地完成了拼写和语法检查,优化搜索查询以获得更准确的结果。
系统起到“语言催化剂”的作用,把复杂的查询拆解成向量搜索能处理的小块。
增加了发现用户原本没想到但确实有帮助的信息的可能性。
可能的局限性
任何强大的技术都有它的代价,RAG Fusion也不例外。它的主要短板有三点:
通过生成多个查询来“挖掘深度”,有时反而会导致答案过于冗长、细节过多。
多查询输入和多样化的文档集合,可能会撑爆语言模型的上下文窗口,导致最终输出不够连贯。
多个查询之间如果存在偏差,可能带来错误的累积和传递。
总结
把RAG Fusion和大型语言模型结合起来,是一种提升回答质量、增加可信引用的创新思路。它轻松克服了RAG的局限性,大幅提升了性能。Adrian H. Raudaschl提出的这一理念目前还处于实验阶段,目标是让搜索更智能、更具上下文感知能力,帮助人们获取那些手动或传统LLM难以发现的更深层信息。当然,RAG Fusion也伴随着一些伦理问题——为了改善结果而操纵用户的原始查询,可能会踏入道德灰色地带。因此,保持AI模型的透明度,并且审慎控制我们在AI投入上的尺度和成本,是必须重视的课题。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名