知识库检索(Retrieval Augmented Generation, RAG) 的效果受 Rerank(重排序)模型 的质量影响极大。Rerank 模型用于对初始检索出的候选文档重新打分和排序,从而提升最终生成回答的相关性和准确性。
目前主流和效果较好的 Rerank 模型主要基于 双塔模型(Dual Encoder) + 交叉编码器(Cross Encoder) 的组合,其中 Cross Encoder 用于精排,是效果最好的类别。以下是当前一些顶尖的 Rerank 模型及技术说明:
✅ 当前表现最好的 Rerank 模型及技术对比
模型名称 | 架构类型 | 预训练基础 | 语言支持 | 优势 | 说明 |
---|---|---|---|---|---|
Cohere Rerank v3 | Cross Encoder | 自研 | 多语言 | 准确率高,精度优于 OpenAI Embedding + rerank | Cohere API 提供,效果在多项评测中优异 |
BGE-Reranker-large(BAAI/bge-reranker-large) | Cross Encoder | RoBERTa/BERT | 多语言(含中英文) | 开源、无需调用外部API | 中文表现优异,推荐用于中文知识库 |
OpenAI text-embedding-3-large + rerank | 双塔 + Rerank | GPT基础模型 | 英文为主 | Embedding 精度高,结合 rerank 可提效 | 非 Cross Encoder,性能略逊 |
mcontriever + ColBERT | Dual Encoder + Late Interaction | 自研、开源 | 英文为主 | 查询速度快,适合大规模检索 | 精度不如 Cross Encoder,但可扩展性好 |
推荐模型详解
1. BGE-Reranker-large(推荐开源中文模型)
-
来源:北京智源(BAAI)
-
模型链接:https://huggingface.co/BAAI/bge-reranker-large
-
技术原理:采用 Cross-Encoder 架构,将 query 和 document 拼接输入模型中,通过一个句对分类器得分。
-
优点:
-
支持中文,在中文语义匹配、问答、文档相关性任务中表现优异;
-
精度高,远优于简单的向量相似度。
-
-
使用方式(例):
-
from transformers import AutoTokenizer, AutoModelForSequenceClassification import torch tokenizer = AutoTokenizer.from_pretrained("BAAI/bge-reranker-large") model = AutoModelForSequenceClassification.from_pretrained("BAAI/bge-reranker-large") # 输入格式:[CLS] query [SEP] document [SEP] inputs = tokenizer(["问题和候选文档拼接对1", "对2", ...], padding=True, truncation=True, return_tensors='pt') scores = model(**inputs).logits.view(-1)
2. Cohere Rerank v3(商业API)
-
提供者:Cohere.ai
-
架构:基于 Cross-Encoder 架构训练的 reranker
-
优点:
-
多语言支持;
-
在多项英文 benchmark 中排名前列;
-
接入简单,适合英文项目或预算充足的生产系统;
-
-
示例调用方式
-
import cohere co = cohere.Client("API_KEY") response = co.rerank( query="What is the capital of France?", documents=["Paris is the capital.", "Berlin is in Germany."], model="rerank-english-v3.0" ) reranked = response.results
3. OpenAI Embedding + rerank(搭配使用)
-
text-embedding-3-large 或 Ada v2 为基础向量;
-
可结合向量距离 + Reranker(如 Cohere、BGE)进行精排;
-
优点:
-
向量检索准确率高;
-
支持语义泛化;
-
-
缺点:
-
中文表现不如 BGE;
-
Rerank 需自行集成
✅ 配置建议
在 “知识库”设置中可指定 Rerank 模型:
-
若是 中文知识库,强烈推荐使用:
-
BAAI/bge-reranker-large
或BAAI/bge-reranker-base
-
-
若是 英文为主,推荐使用:
-
Cohere Rerank
(需申请 API Key) -
OpenAI Embedding + rerank
自研方案
-
-
🛠 技术架构图(简化)
User Query
↓
向量检索(Embedding 检索Top-K)
↓
Rerank 模型打分排序(如 BGE-Reranker)
↓
排序后的前N段上下文拼接
↓
送入 LLM 做回答生成