Skip to content
On this page

能力·重排模型:检索里的"精挑细选"

向量模型把"相关的资料"从大海里捞了上来,但捞上来的还有不少"看着像、其实不对"的。这时候就需要重排模型出场——它是个挑剔的筛子,负责在已经捞上来的候选里,再做一次更精细的排序

如果你接触过 RAG,八成见过"先粗筛,再精排"的说法,精排这一步的"裁判"就是重排模型。这篇讲清楚它是谁、为什么需要它、用什么架构。


它是干嘛的:在候选里做"二次精排"

先理清分工:

  • 向量模型(粗筛):从百万条里,快速挑出可能相关的几十条——要的是"快、广",宁滥勿缺;
  • 重排模型(精排):对这几十条,一个个仔细比对,重新打一个更准的分数,排出谁最相关、谁其次。

打个比方:向量模型是"海选面试官",一眼扫过几百份简历圈出几十个;重排模型是"终面考官",对圈出的人仔细盘问,排出真正的名次。

为什么海选后还要终面? 因为粗筛为了"快",用的方式比较"省力气",只能抓个大方向,难免把"看着像、细想不对"的也放进来。精排就是用更贵的力气,做更准的判定。


它的原理:把问题+资料"合起来逐字比对"

重排和向量有个根本差别,这点很关键:

向量模型,是把"问题和资料"各自单独算成坐标,再比坐标远近。 问题看一眼,资料看一眼,然后比一比——这叫**"双编码"(Bi-Encoder)**,快,但不精细。

重排模型,是把"问题 + 这一段资料"拼成一句话,整体从头到尾读一遍,直接判断"这两者配不配"。 这叫**"交叉编码"(Cross-Encoder)**——问题里的每个字和资料里的每个字,都能互相'对视'、深度交互,结果自然更准,但慢、贵。

一句话说透:向量是"分别看再比对"(快而粗),重排是"拼起来一起看再判断"(准而贵)。 RAG 用它俩搭配,既保住速度,又拿到准确。


它通常选什么架构

重排模型的主流是 Transformer 的编码器(Encoder)架构,和向量模型同族,但关键在"输入方式"不同:

它用的是"拼接式交叉编码"。

  • 把「问题」和「一段资料」拼在同一个输入序列里;
  • Transformer 编码器整段读进去;
  • 最后输出一个分(0~1 的"相关度打分"),表示这两者有多匹配。

为什么选这个架构?

  • 编码器的"整段读取、整体理解"能力,正好支撑"问题+资料一起研判";
  • 关键在于"交叉":让问题和资料的每个位置都能互相参照,这是准确度的来源;
  • 代价是只能一对一对地判,不能像向量那样一次性排千百万,所以注定用来"精排少数量候选"。

它和向量模型常常是"同一个模型家族里的两个岗位":一个当粗筛海选官(编码器、算坐标、比距离),一个当终面精排官(交叉编码、整体打分)。


它的优缺点

优点:

  • :交叉理解,比向量"看个大概"精细得多;
  • 明显提升 RAG 答复质量(过滤掉"像但不对"的资料);
  • 和向量搭配,"又快又准"。

缺点 / 代价:

  • 慢、贵:一次只能判一对,不能海量预筛;
  • 必须配合前面的粗筛(它吃"候选",不是自己扫全库);
  • 本身不产答案,也只是"打分裁判"。

在 Agent 里的用处:RAG 的"质检阀门"

Agent 做 RAG 时,标准流程是两段式

用户提问
   ↓  ① 向量模型(粗筛): 从全库捞最像的 30~50 条
   ↓  ② 重排模型(精排): 从这 30~50 条里排出最准的 5~10 条
   ↓  ③ 交给对话大脑: 用精排后的资料组织成回答

有没有重排,常常是"普通问答"和"靠谱问答"的分水岭——没有精排,Agent 可能被"看起来相关其实跑题"的资料带偏。


小结

内容
干什么对候选做二次精排,打出更准的相关度分
原理交叉编码:把「问题+资料」拼起来逐字比对后打分
常用架构Transformer 编码器,输入拼接式
为什么交叉理解比"比对坐标"精细,更准但更贵
优缺点准;但慢贵、只能处理少量候选
在 Agent 里RAG 的质检阀门,"粗筛→精排→作答"的中间裁判

要保持清醒 永远不抱有意外的幻想 凭空的期待最要命