什么是 Rerank(重排序)?
Rerank,中文叫重排序,是搜索与 RAG(检索增强生成)系统中的一道“精加工”工序。用户提问后,系统先用向量检索等方式从海量文档里快速捞出几十上百条“大致相关”的候选,这一步叫召回;随后重排模型把这些候选逐条与问题深度比对,重新打分、重新排队,只把最相关的几条交给大模型作答。
一句话理解:召回负责“把可能相关的都捞出来”,重排负责“把真正相关的排到最前面”。
业界常把 Rerank 称为 RAG 的精度放大器:它不改动大模型、不用重建知识库,只需在检索链路中插入一个轻量模型,就能明显减少答非所问、引用错段落的情况,是性价比最高的优化手段之一。
Rerank 是怎么运作的?
一次完整的 RAG 检索,像一场“海选+决赛”:
- 召回(海选):用向量或关键词检索从百万级文档中筛出 Top 50~100 候选,毫秒级完成;
- 重排(决赛):将问题与每条候选拼接后送入重排模型,逐条计算相关性分数;
- 截断输出:按新分数排序,只保留 Top 3~10 条,填入大模型上下文用于生成答案。
为什么重排更准?
关键在模型结构。召回普遍采用双塔(Bi-Encoder)结构:问题和文档各自独立编码成向量再算相似度,快、可建索引,但两者没有充分“对话”,细节相关性容易丢失;重排普遍采用交叉编码器(Cross-Encoder):问题与文档拼在一起进入模型,深度交互后再输出分数,理解更细腻、精度更高,代价是更慢——所以只对小规模候选精排。
| 对比维度 | 召回(向量检索) | 重排(Rerank) |
|---|---|---|
| 模型结构 | 双塔,问题与文档分别编码 | 交叉编码器,联合编码 |
| 处理对象 | 百万至亿级全库文档 | 几十至几百条候选 |
| 速度 | 毫秒级,可用索引加速 | 较慢,逐条打分 |
| 精度 | 粗排,保证“不漏” | 精细,保证“排对” |
| 角色 | 海选,追求高召回率 | 决赛,追求高精确率 |
此外还有大模型重排(LLM Rerank):直接让大语言模型阅读问题与候选并给出排序,效果不错但成本和延迟更高,常作补充手段。
代表产品与工具
- 智源 BGE-Reranker:北京智源研究院开源的系列模型(如 bge-reranker-v2-m3),中英文表现均衡,可免费本地部署,是国产开源重排模型的事实标准;
- 阿里云百炼 gte-rerank:通义团队的重排 API,与百炼的向量检索、知识索引服务无缝衔接,开箱即用;
- 智谱开放平台 Rerank 接口:与 GLM 系列大模型、Embedding 服务同平台提供,适合搭建国产化 RAG 链路;
- 硅基流动(SiliconFlow):国内大模型云平台,托管 BGE-Reranker 等开源重排模型,注册即可 API 调用,国内可直连;
- 网易有道 BCEmbedding:开源的向量模型+重排模型组合,在中文问答检索上表现突出;
- 平台内置方案:Dify、FastGPT、RAGFlow 等国内流行的知识库平台已内置重排开关,填入模型 API 即可启用。
另外,DeepSeek、通义千问、Kimi 等通用大模型也能客串“重排器”:在自建流程中让模型对候选段落逐一评判取舍,是零训练成本的轻量方案。
典型应用场景
- 企业知识库问答:从海量制度、合同、手册中精准定位依据,降低大模型幻觉;
- 智能客服:优先引用最匹配的工单与 FAQ,一次答对;
- 电商与站内搜索:把“既相关又可能成交”的商品排到前面;
- AI 编程助手:在大型代码库中找出真正相关的函数与文档;
- 法律、医疗检索:条文措辞相近,重排可显著降低误引风险。
常见问题
有了向量检索,为什么还要重排?
向量检索追求速度与覆盖面,属于“宁可惜查一百,不可漏掉一个”,其双塔结构天生会损失细节相关性;重排只处理少量候选,可以用更重的模型区分“真相关”与“看起来相关”。二者是分工而非替代:召回管广度,重排管精度。
加重排会让回答变慢吗?
会增加一些延迟,通常在几十到几百毫秒量级,因为只需为几十条候选打分。可通过减少候选数、选用蒸馏小模型、批量推理与缓存来控制开销。相比答错带来的返工成本,这点延迟通常非常值得。
不会写代码也能用上重排吗?
可以。Dify、FastGPT、RAGFlow 等可视化平台已在知识库设置里内置重排选项,选择模型并保存即可生效;豆包、Kimi 等产品的文件问答与知识库功能背后,很多也默认启用了类似的重排机制。
辽公网安备21021102001760号