Appearance
能力·重排模型:检索里的"精挑细选"
向量模型把"相关的资料"从大海里捞了上来,但捞上来的还有不少"看着像、其实不对"的。这时候就需要重排模型出场——它是个挑剔的筛子,负责在已经捞上来的候选里,再做一次更精细的排序。
如果你接触过 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 的质检阀门,"粗筛→精排→作答"的中间裁判 |