重排序(Re-rank):召回一堆后,怎么优先展示更相关的回答
你在使用企业知识库问答时,是不是遇到过这种情况:输入的问题看着很具体,返回的前几条片段却各说各话,点开才发现更相关的那条排在第七位,可能没有进入大模型的上下文,答案于是答非所问。麻烦多半出在最后一步,召回把相关候选都捞了上来,通常缺少环节去分辨哪条更直接地回答问题。重排序补的就是这一环,在初步召回的候选里用更强的模型重新打分,把更相关的内容排到前面。本文拆解重排序的定义、原理、工程价值、落地用法与常见误区,帮你在搭建或评估检索系统时判断这一步该不该省。

什么是重排序:在候选集里二次打分
重排序(Re-rank)是在初步召回的候选集合里,用更强的模型逐条重新计算相关度,把真正匹配查询的那几条排到头部。召回阶段常用 Bi-Encoder,把查询和文档分别编码成向量,靠相似度从海量数据里快速捞出几十条到几百条候选。这一步追求快和广,代价是精度有限,捞上来的结果里难免混进字面或语义相近、却没有真正回答问题的内容。重排序换用 Cross-Encoder,把查询和单条候选拼在一起送进模型,让模型同时看到两边的完整上下文再做判断,相关度分数的区分度通常高于单纯的向量距离。
原理拆解:粗召回保速度,精排保精度
整个流程分两段。第一段是粗召回,向量检索或关键词检索从百万级文档里筛出百条左右的候选,目标是别漏掉可能相关的,速度优先。第二段是精排,对这百条候选用 Cross-Encoder 逐对打分,模型直接比较查询和候选是否真的对口,输出一个可比较的相关分,再按分数重新排队。
Cross-Encoder 准在哪里?它做交叉注意力,能捕捉查询词和文档词之间的细粒度对应。用户问"A800 显存不够怎么办",召回可能把讲 A800 硬件规格的、讲显存优化的、讲集群部署的都捞上来,精排能分辨哪一条更直接地回应显存不足这个具体问题。
工程意义
召回保覆盖,重排保精度。只召回不重排,排在前面的片段往往是"看着像、实则偏",这些片段被截取送进大模型上下文,生成答案可能产生偏离。重排序把算力集中在少量候选上,用更重的模型换更高的判别力,而整体延迟通常可保持在可控范围内,因为它只在几十到几百条候选上跑,不在全量数据上跑。它不改变召回的覆盖范围,只重新排列已有候选的次序,所以和召回是互补,不是替代。评估一条检索链路,把重排前后 top-5 的相关度拉出来对比,差距通常较为明显。
重排模型怎么选?
常见的重排模型有 BGE Re-ranker(如 BAAI 出品的 bge-reranker-v2-m3)、Cohere Rerank、Jina Reranker 等。BGE Re-ranker 是开源方案,支持多语言,可以本地部署,适合对数据出域有要求的场景。Cross-Encoder 类模型的参数量从几十兆到数吉不等,越大通常判别力越强,但单条推理的延迟和调用成本也随参数量上升。工程上通常对召回候选的靠前部分做重排,再取排序靠前的若干条送大模型,在效果和开销之间取平衡。候选量过大时可以先截断再重排,避免重排阶段变成新的性能瓶颈。
落地用法:混合检索之后接一层重排
典型的检索增强生成链路是这样走的:用户提问,先经混合检索(向量加关键词)召回约一百条候选,再用重排序模型对这百条重新打分,最后取靠前的几条送大模型生成答案。混合检索已经融合了语义匹配和字面匹配,但融合后的排序本质是各路分数的加权,不一定反映真实的语义相关度,重排序补上这最后一环。重排之后的片段噪声通常更低,大模型拿到的上下文准确性有所提升,大模型幻觉的概率有助于降低。这套链路对技术文档问答、客服知识库、法规条款检索这类重事实的场景较为适用。
常见误区
觉得召回阶段已经排过序,再加重排纯属多此一举,为了省那几十毫秒直接砍掉这一步,是第一种常见做法。后果是关键片段排在后面没被截取进上下文,答案质量可能受到影响,排查时定位难度可能增加。认为重排模型参数越大效果越好,闭眼选规模大的型号,是第二种。重排要对每条候选单独做一次前向推理,候选越多、模型越大,延迟可能明显增加,成本也可能上升,得按业务的时延预算选型号,而不是一味追大。还有人把重排当成召回的替代,觉得只要精排够强,召回漏掉也无所谓。重排只在已有候选里重新排,候选池里根本没有的内容,它变不出来,召回该做的覆盖仍需重视。
召回解决"找不找得到",重排解决"排不排得对"。两者职责不同,合在一起有助于构成更可靠的检索增强生成链路。搭建问答系统时,别只盯着召回率这一项指标,把重排前后的结果摆到一起看,差异可能较为明显。
小艾智能体的检索增强生成链路里,混合检索召回之后可以接一层重排序,再选取靠前的片段送进大模型。系统在文档处理阶段用 BGE-M3 把文本转成向量存入 Milvus,同时用 Elasticsearch 做关键词检索,两路召回的候选经过重排模型重新打分,相关度更高的片段优先进入上下文。 这一做法配合知识图谱补充实体与关系,有助于提升问答所依据来源的准确性,大模型作答时偏离事实的可能有所降低。小艾的 Agent 工作流支持用 JSON 或 YAML 配置,把重排节点接在检索步骤之后,团队可以按数据规模挑选不同的索引算法和重排模型组合,通常无需改动代码。
立即咨询