Qwen3-Reranker
Qwen3-Reranker 家族(0.6B / 4B / 8B)是基于 Qwen3 的 Apache 2.0 重排序模型,32K 上下文,支持 100+ 种语言,并且可以接收任务指令。在 Qwen 自己的测试里,4B 和 8B 在他们跑的每一项上都领先 bge-reranker-v2-m3 和 gte-multilingual-reranker —— 英文、中文、多语言、长文档和代码。这些是 Qwen 在自己的设置下测出的数字:替换 bge 或托管 API 之前,请先在你自己的标注数据上验证。
模型变体
| 模型 | 参数量 | 层数 | 最适合 |
|---|---|---|---|
Qwen/Qwen3-Reranker-0.6B | 0.6B | 28 | 最轻;仍然更适合在 GPU 上跑 |
Qwen/Qwen3-Reranker-4B | 4B | 36 | 自建部署首选 —— 三者中英文和指令跟随得分最高 |
Qwen/Qwen3-Reranker-8B | 8B | 36 | 在中文、多语言、长文档和代码上领先 —— 最多领先 1.5 分 |
三者均为:32K 上下文、100+ 种语言、Apache 2.0。
建议:在一张现代 GPU 上从 4B 开始。只有显存吃紧时才降到 0.6B;只有在标注评测显示 NDCG 有明显、值得付出成本的提升时,才换到 8B。
分数,以及是谁测的
| 模型 | MTEB-R | CMTEB-R | MMTEB-R | MLDR | MTEB-Code | FollowIR |
|---|---|---|---|---|---|---|
| bge-reranker-v2-m3 | 57.03 | 72.16 | 58.36 | 59.51 | 41.38 | −0.01 |
| Qwen3-Reranker-0.6B | 65.80* | 71.31 | 66.36 | 67.28 | 73.42 | 5.41 |
| Qwen3-Reranker-4B | 69.76* | 75.94 | 72.74 | 69.97 | 81.20 | 14.84 |
| Qwen3-Reranker-8B | 69.02* | 77.45 | 72.94 | 70.19 | 81.22 | 8.05 |
以上为 Qwen 自己的测试结果,取自模型卡:MTEB 的检索子集(英文 v2、中文 v1、多语言 MMTEB 和代码),长文档用 MLDR,指令跟随用 FollowIR,每项都是对 Qwen3-Embedding-0.6B 召回的前 100 个候选重排。MTEB-R 是英文 NDCG@10 均值,但不是 BEIR 套件,所以这些数字不能和其他厂商的 BEIR 分数放在同一列比较。
一个外部参照:Jina 2026 年的评测里,Qwen3-Reranker-4B 在 13 个 BEIR 数据集上为 62.28* —— 略低于 jina-reranker-v3.5,但在多语言、法律 / 医疗和结构化数据检索上领先它(见 Jina 专页)。2026 年 10 月之前,本页拿 Qwen 的分数去和「bge(约 60)」「mxbai(约 62)」比较;这两个数字都没有出处,模型对比表现在列出的是 BAAI 和 mixedbread 实际公布的数字。
快速上手
sentence-transformers
pip install sentence-transformers
from sentence_transformers import CrossEncoder
model = CrossEncoder("Qwen/Qwen3-Reranker-4B")
# Default instruction: "Given a web search query, retrieve relevant
# passages that answer the query" — override it per task:
model = CrossEncoder(
"Qwen/Qwen3-Reranker-4B",
prompts={"support": "Prefer official help articles with step-by-step instructions"},
default_prompt_name="support",
)
ranked = model.rank(query, documents) # [{"corpus_id": i, "score": s}, ...]
模型卡里的做法是直接用 sentence-transformers 的 CrossEncoder 加载。模型卡也给了一条直接用 transformers(需 ≥ 4.51)的路径,通过 Qwen 的对话模板给 yes/no 的 logits 打分 —— 模板一旦写错,质量会下降,但不会报错。
在 RAG 流水线中
# Pseudocode — same two-stage pattern as any cross-encoder
candidates = vector_db.search(query, top_k=80) # or hybrid
scores = qwen3_rerank(query, candidates) # official template
top = sorted(zip(scores, candidates), reverse=True)[:8]
answer = llm.complete(context=top, query=query)
什么时候选 Qwen3
- 适合:你有 GPU,需要多语言质量,并且想要没有按次调用成本的开源权重。
- 适合:需要处理长段落 —— 三个尺寸都支持 32K token。
- 适合:相关性需要按任务调整。这些模型可以接收任务指令;Qwen 建议为每个任务单独写指令(多语言数据也用英文写),并称通常能带来 1–5% 的提升。见指令跟随重排序。
- 不太适合:只有 CPU 或边缘设备 —— 优先考虑 bge-v2-m3、mxbai,演示用可选 Jina tiny。
优缺点
优点
- 从 0.6B 到 8B,每个尺寸都是 Apache 2.0
- 100+ 种语言,32K 上下文
- 可接收任务指令 —— Qwen 的表里 4B 的 FollowIR 得分最高
- 可直接用 sentence-transformers 的
CrossEncoder加载 - 自建部署后没有按次调用成本
缺点
- 想跑得顺畅需要 GPU(或重度量化)
- 直接用
transformers时必须严格套用 Qwen 的提示模板 - 厂商公布的是 MTEB-R,不是 BEIR
- 体量太大,无法放进本站的浏览器 Demo