微信扫码
添加专属顾问
我要投稿
Rerank模型如何成为RAG系统的"最后一公里"优化利器?从RankNet到Qwen,揭秘排序技术的进化之路。核心内容: 1. Rerank模型在RAG系统中的关键作用与基本原理 2. 从概率模型到大模型驱动的五大技术演进阶段 3. 前沿趋势:多功能集成与大模型合成数据应用
本文主要面向对检索增强生成(RAG)和 Rerank 技术感兴趣的初学者。我们希望通过梳理 Rerank 模型从经典的概率模型到前沿的大模型驱动范式的演进历程,帮助大家理解 Rerank 在优化 RAG 系统效果时扮演的关键角色,以及不同阶段的核心技术思想。
目录
我们可能都遇到过这样的情况:搭建一个基于检索增强生成(RAG)的应用时,感觉万事俱备,但最终的生成效果总是不尽如人意。问题或许就出在检索的“最后一公里”上。传统的向量检索(也叫密集检索)速度很快,能从海量文档中迅速召回一批候选者,但它不一定能保证最相关的那一篇排在最前面。如果送给大型语言模型(LLM)的上下文质量不高,甚至是错误的,那么最终的输出自然会受到影响,这就是常说的“垃圾进,垃圾出”(Garbage in, Garbage out)。
为了解决这个问题,Rerank(重排序)模型应运而生。它在检索流程中扮演着一个“精排”的角色,专门负责对初步召回的文档进行二次、更精确的排序,确保最相关的信息能够优先被LLM看到。这篇文章将带我们一起回顾Rerank模型的发展历程,看看它是如何从最初的概率模型一步步演进到今天由大模型驱动的形态。
在2005年,机器学习如何处理“排序”这个看似模糊的问题,还是一个挑战。RankNet这篇论文提供了一个基础性的思路:将排序问题转化为一个模型可以学习和优化的概率问题。
它的核心技术是成对学习(Pairwise Learning)。模型并不直接给每个文档打一个绝对分数,而是学习一个打分函数 ,然后比较任意两个文档 的分数差值 。这个差值被用来建模“文档 应该排在文档 前面”的概率。
具体来说,模型通过一个我们很熟悉的 logistic 函数,将分数差值 映射为一个成对的偏好概率 :
模型训练的目标,就是让我们计算出的这个概率 ,与真实的排序偏好概率 尽可能接近。在实践中, 通常被设为1(表示 确实比 好)、0或0.5。整个训练过程通过最小化它们之间的交叉熵损失来完成。其成本函数(Cost Function)可以表示为:
下图左侧展示了RankNet的成本函数在不同目标概率下的曲线;右侧则描绘了当已知 和 时,如何组合计算出 。
在训练范式上,RankNet将排序任务巧妙地转换成了一个对(查询,文档对)的偏好学习任务。从论文中可以看到,当时的研究者们使用了两类数据来验证这个想法:一类是人工构建的数据,用来检验方法是否可行;另一类是来自真实搜索引擎的数据,包含了17,004个查询。为了解决真实世界中标注稀疏的问题,他们还采样了2%的无标签文档作为低相关度样本加入训练。在训练细节上,模型使用梯度下降和反向传播进行优化,初始学习率设为0.001,并且在验证集上出现错误率上升时会将学习率减半。在那个时代,整个训练过程在一台3GHz的机器上进行,每个进程限制使用约1GB内存。
时间来到2019年,以BERT为代表的预训练语言模型(PLM)展示了强大的文本理解能力。研究者们很快就想到,可以利用这种能力来更精确地判断查询和文档之间的相关性,于是诞生了Cross-Encoder架构。
Cross-Encoder范式的核心在于,它将查询(Query)和文档(Document)通过特殊的分隔符(如[SEP]
)拼接成一个长序列,然后将这个完整的序列一起输入到BERT模型中。这样做的好处是,模型内部的自注意力机制可以充分捕捉查询和文档之间每一个词的交互关系,从而进行深度、上下文相关的语义匹配。
下图(c)部分直观地展示了Cross-Encoder(或称为Full Interaction)的工作模式,查询和文档被一同送入一个大型的Transformer模型进行联合编码和交互。
在这种架构下,排序任务被巧妙地建模成了一个二元分类问题。模型的目标是判断拼接后的序列是“相关的”还是“不相关的”。训练时,通常使用标准的交叉熵损失函数。对于一个由正样本集合 和负样本集合 组成的批次,其损失函数定义为:
其中, 是模型预测文档 相关的概率。
在训练范式上,通常会为每个查询构建(查询,相关文档,不相关文档)这样的三元组数据。例如,在MS MARCO数据集上进行训练时就是采用这种方式。而在TREC-CAR数据集上,则是通过BM25为每个查询召回排名最高的10个文档来构建训练对。训练细节方面,研究人员在预训练的BERT模型基础上进行微调,使用Adam优化器,学习率设定为很小的 ,批次大小为128。在MS MARCO数据集上,模型训练了10万次迭代,耗时约30小时。整个训练过程借助了TPU v3-8这样的强大硬件。
Cross-Encoder模型虽然效果好,但它的效率问题也相当突出。因为它需要为每个(查询,文档)对都完整地运行一次庞大的BERT模型,当候选文档数量成千上万时,这个计算开销是难以接受的。ColBERT这篇工作就是为了解决这个核心挑战。
ColBERT的架构创新在于延迟交互(Late Interaction)。它的核心思想是“先解耦,后交互”。具体来说,查询 和文档 不再被拼接在一起,而是各自独立地通过BERT编码器,生成它们各自的Token级别的上下文向量集合,我们称之为 和 。
下图展示了ColBERT的通用架构,包括独立的查询编码器和文档编码器,以及后续的延迟交互模块。
得到这两个向量集合后,ColBERT采用了一种既高效又有效的交互机制——MaxSim(Maximum Similarity)。最终的相关性分数,是通过计算查询中的每一个向量与文档中所有向量的最大相似度,然后将这些最大相似度值相加得到的。公式如下:
这种设计的妙处在于,文档的编码 可以提前离线计算并存储好,当在线进行查询时,只需要计算查询的编码 ,然后执行相对轻量的MaxSim运算即可,极大地提升了效率。
在训练范式上,ColBERT同样基于三元组 进行对比学习。它使用Adam优化器,学习率为 ,批次大小为32,通过成对的softmax交叉熵损失进行端到端训练。在MS MARCO数据集上,模型训练了20万次迭代。
值得一提的是,ColBERT还有一个特色设计,叫做查询增强(Query Augmentation)。它通过在查询的末尾填充一些特殊的 [mask]
标记,让模型在这些位置上学习生成一些对匹配有帮助的“扩展”或“重加权”的向量,从而提升了模型的匹配能力。
随着模型基座向T5这类更强大的Seq2Seq模型演进,一个新的问题摆在了面前:如何设计一个更懂“排序”的训练目标,而不是简单地把它看作一个分类任务?RankT5这篇工作就对此进行了探索。
下图(b)和(c)部分展示了RankT5提出的两种模型结构:一个保留了完整编码器-解码器的结构(EncDec),另一个是更简洁的仅编码器结构(Enc),它们都直接输出一个数值分数,与(a)中需要生成"true/false" token的monoT5形成对比。
之前的模型大多使用分类损失(比如判断“相关/不相关”)或成对损失(判断“A比B好”),这些都是对真实排序目标的间接优化。RankT5的核心优化在于引入了列表级损失(Listwise Loss)。这种损失函数不再孤立地看待单个或成对的文档,而是一次性考虑整个候选文档列表。
具体来说,RankT5采用了列表Softmax交叉熵(Listwise Softmax Cross Entropy)损失。这个损失函数将一个查询下所有候选文档的预测分数 通过Softmax函数归一化,形成一个概率分布,然后将这个概率分布与真实的相关性标签 进行比较。其公式可以表示为:
这种方式直接优化了整个列表的排序顺序,与最终的排序评估指标(如NDCG)更加吻合。
在训练范式上,RankT5为每个查询构建一个包含1个正样本和 个随机负样本的文档列表来进行训练。实验表明,列表大小 是一个影响性能的关键超参数,论文中由于硬件限制, 最大设为了36。在训练细节上,模型在T5预训练模型的基础上进行微调,批次大小为32个列表,学习率为 。在MS MARCO数据集上训练了5万步,在NQ数据集上则训练了10万步。
进入大模型时代,Rerank模型的开发范式也发生了新的变化,主要体现在两个方向:一是模型本身的功能越来越集成化;二是从数据到训练的全流程都开始由大模型来驱动。
BGE-M3的目标是打造一个“三多”模型:多语言、多功能、多粒度。它希望用一个模型同时解决密集检索、稀疏检索(也称词法检索)和多向量检索等多种任务。
下图直观地展示了BGE-M3模型的多语言、多功能、多粒度这三个核心特性。
为了实现这个目标,BGE-M3采用了一项核心的训练技术——自知识蒸馏(Self-Knowledge Distillation)。简单来说,就是让模型自己教自己。模型内部不同功能模块(如密集检索模块和稀疏检索模块)的打分结果,可以被融合成一个更强大的集成分数 ,这个分数被当作“教师”信号。然后,每个单独的“学生”模块(例如密集检索 )的训练目标,就变成了去拟合这个更准确的教师信号。损失函数可以被定义为学生预测与教师信号之间的KL散度:
下图清晰地展示了BGE-M3的多阶段训练流程,其中自知识蒸馏(Self-Knowledge Distillation)是其微调阶段的关键一环。
在训练范式上,BGE-M3非常强调高质量数据的重要性。它的训练数据来自三个方面,互为补充:1)从海量多语言语料中无监督挖掘的12亿文本对;2)整合已有的高质量有监督数据集;3)利用GPT-3.5合成在长文档等场景下稀缺的训练数据。整个训练流程也分为多个阶段:首先在海量无监督数据上进行2万步的对比学习预训练,然后在有监督和合成数据上,利用自知识蒸馏方法进行约6000步的微调。这个过程动用了包括32卡A100和96卡A800在内的大规模GPU集群。
Qwen3 Reranker的出现,标志着Rerank模型的训练范式正在被大模型彻底改变。它基于Qwen3这样强大的基础语言模型构建,并充分利用了基础模型本身的世界知识和文本理解能力。
下图左侧是Qwen3-Embedding的模型架构,右侧是Qwen3-Reranker的架构,展示了它们如何利用Qwen3基础模型进行构建。
其核心创新在于LLM驱动的数据工程与训练范式。首先,研究人员利用Qwen3-32B模型,大规模地合成了约1.5亿对高质量、任务多样、语言丰富的训练数据,这从根本上解决了特定场景下训练数据不足的问题。其次,它将重排任务本身构建成了大模型的一个监督微调(SFT)任务。模型被要求在一个特定的提示(Prompt)下,对(查询,文档)对的相关性做出“yes”或“no”的判断。在推理时,最终的排序分数则从模型对 "yes" 和 "no" 这两个词的预测概率中导出:
这种方式完全对齐了LLM的交互习惯。
下图展示了Qwen3系列模型的训练流程。对于Embedding模型,包含弱监督预训练、监督微调和模型合并;对于Reranker模型,则主要包括监督微调和模型合并两个阶段。
通过回顾Rerank模型从RankNet到Qwen3的演进,我们可以清晰地看到一条技术发展的脉络。
我们学到了,排序问题最初是通过成对的概率模型(如RankNet)被引入机器学习领域的。随后,随着深度学习的发展,基于深度上下文交互的Cross-Encoder模型(如BERT for Rerank)通过端到端的语义匹配大幅提升了效果。然而,效率成为了新的瓶颈,这催生了以ColBERT为代表的延迟交互架构,在效率和效果之间找到了巧妙的平衡。接着,研究者们开始不满足于将排序任务简化为分类,而是追求更直接地优化排序指标,以RankT5为代表的列表级损失函数应运而生。
而到了今天,Rerank模型的开发范式正经历着两场深刻的变革:一是以BGE-M3为代表的,通过自知识蒸馏等技术将多种检索功能集于一身;二是以Qwen3 Reranker为代表的,完全由大模型来驱动数据合成与模型训练的全流程。
理解了这些模型的演进和它们各自解决的核心问题,我们也就明白了为什么现代RAG系统越来越依赖于一个强大的Rerank组件。正是这些不断进步的技术,让我们离“搜得准”这个目标越来越近。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-08-02
RAG与Agentic RAG:智能AI系统的进化之路
2025-08-02
不止于相似度:混合搜索如何重塑 RAG 的未来
2025-08-02
RAG应用如何进行有效的文本切分
2025-08-02
提升RAG表现的15个实战分块技巧
2025-08-01
96.3%准确率!Routine框架:让企业级Agent告别“不靠谱”
2025-08-01
中小企业AI破局:RAG 部署从 “能用” 到 “能用好” 的 10 条经验
2025-08-01
关于一个RAG功能需求分析案例——、怎么优化RAG的检索精确度
2025-08-01
踩了无数坑后,我终于搞定了RAG系统的"胡说八道"问题
2025-06-06
2025-05-30
2025-06-05
2025-05-19
2025-05-08
2025-05-10
2025-06-05
2025-05-20
2025-06-05
2025-05-09
2025-07-28
2025-07-09
2025-07-04
2025-07-01
2025-07-01
2025-07-01
2025-07-01
2025-06-30