重排序器
重排序器是一种模型,它会在 RAG 流程中对向量搜索返回的 top-k 结果进行精炼,重新排列,让真正最相关的文本块排到最前。一次检索是"快速找到大量候选",而重排序则是"挑出真正值得引用的那些"。
重排序器是一种模型,它会在 RAG 流程中对向量搜索返回的 top-k 结果进行精炼,重新排列,让真正最相关的文本块排到最前。一次检索是"快速找到大量候选",而重排序则是"挑出真正值得引用的那些"。
为什么重要
仅靠向量检索会混入一些语义相似但其实并非答案的文本块。Cohere 和 Anthropic 的研究表明,在 RAG 流程中加入重排序器平均能将检索准确度提升 15% 到 40%,并显著降低 LLM 最终回答中的幻觉。到 2026 年,主流的 AI 搜索引擎(Perplexity、ChatGPT Search、Gemini AI Mode)内部都使用了重排序器。
工作原理
RAG 流程通常采用两阶段检索:
- 检索:向量数据库按嵌入相似度返回 top 50 到 100 个文本块,速度快但较粗糙。
- 重排序:重排序模型将查询和候选放在一起打分,缩减到 top 3 到 10 个。速度较慢,但准确得多。
- 生成:将排名靠前的文本块注入 LLM 的上下文并进行生成。
双编码器 vs 交叉编码器
双编码器(Bi-encoder):嵌入模型所使用的方式。查询和文档被分别编码成向量再进行比较。速度快,但会遗漏查询与文档之间的细粒度关系。
交叉编码器(Cross-encoder):重排序器所使用的方式。查询和文档被一起送入,在一次前向传播中打分。速度较慢,但准确得多。
两阶段检索的精髓就在于结合二者之长:用快速的双编码器做初筛,用精确的交叉编码器做重排序。
主流重排序器
- Cohere Rerank:托管 API,支持多语言,是生产级 RAG 中最常见的选择
- Voyage rerank:Anthropic 推荐的高性能重排序器
- BGE Reranker:开源,支持多语言(包括韩语)
- Jina Reranker:开源,在长文档上表现出色
- LLM 作为重排序器:直接用 GPT-4o 或 Claude 来重排序。准确度最高,成本也最高
对 GEO 的意义
重排序器考量的不只是语义相似度,这会影响你的写法。
直接的答案句:重排序器会在查询和文本块的关系中识别"答案性"。讲"什么是 X?"的一节,应该以"X 是……"开头。
具体性与实用性:包含具体数字和示例的文本块,比抽象的解释获得更高的重排序得分。
模仿用户查询的方式:看起来像真实用户向 AI 搜索提出的问题的小标题,更容易被重排序器匹配。
削减噪声:冗长或重复的段落得分更低。简短、自成一体、主旨前置的段落更占优势。
Sources: