GTE 重排序模型
阿里巴巴的两个 GTE 重排序模型是小型编码器交叉编码器,不是基于大模型的:gte-reranker-modernbert-base(149M,英文)和 gte-multilingual-reranker-base(306M,70 多种语言)。两者都能接收 8,192 token,都是 Apache 2.0。它们的体量在 CPU 或小显卡上就能跑,英文模型甚至能在浏览器里运行。
两个模型
| 模型 | 参数量 | 语言 | 基于 | 可用的运行方式 |
|---|---|---|---|---|
Alibaba-NLP/gte-reranker-modernbert-base | 149M | 英文 | ModernBERT-base | transformers、sentence-transformers、transformers.js、Text Embeddings Inference |
Alibaba-NLP/gte-multilingual-reranker-base | 306M | 70+ | 阿里巴巴自家的编码器 | transformers(自定义代码)、sentence-transformers、Text Embeddings Inference、Infinity |
阿里云托管的 gte-rerank API 是相关模型,并不是这两份权重;托管版本见国内重排序指南。
分数,以及是谁测的
| 模型 | 评测 | 分数 | 测试方 |
|---|---|---|---|
| gte-reranker-modernbert-base | BEIR | 56.19* | 阿里巴巴,模型卡 |
| gte-reranker-modernbert-base | LoCo(长文档) | 90.68* | 阿里巴巴,模型卡 |
| gte-reranker-modernbert-base | CoIR(代码) | 79.99* | 阿里巴巴,模型卡 |
| gte-multilingual-reranker-base | MTEB-R(英文) | 59.51 | Qwen,Qwen3-Reranker 模型卡 |
| gte-multilingual-reranker-base | CMTEB-R(中文) | 74.08 | Qwen,Qwen3-Reranker 模型卡 |
| gte-multilingual-reranker-base | MMTEB-R(多语言) | 59.44 | Qwen,Qwen3-Reranker 模型卡 |
ModernBERT 模型的卡片没有说明用了哪些 BEIR 数据集、第一阶段是什么。多语言模型的结果阿里巴巴只以图表形式发布(模型卡和 mGTE 论文里),所以这里用的是 Qwen 的数字:Qwen 把它作为 Qwen3-Reranker 的对照基线,重排的是 Qwen3-Embedding-0.6B 召回的前 100 个结果。两个模型的这几行彼此不可比。
和阿里巴巴更新的 Qwen3-Reranker 相比,多语言模型处在低成本那一端:在同一批 Qwen 测试中,0.6B 的 Qwen3-Reranker 在 MTEB-R 上得 65.80*,在 CMTEB-R 上得 71.31,代价是两倍的参数量和大模型式的部署。
快速上手
sentence-transformers
pip install sentence-transformers
from sentence_transformers import CrossEncoder
model = CrossEncoder(
"Alibaba-NLP/gte-reranker-modernbert-base",
automodel_args={"torch_dtype": "auto"},
)
pairs = [
["what is the capital of China?", "Beijing"],
["how to implement quick sort in python?", "Introduction of quick sort"],
]
scores = model.predict(pairs) # 0–1: sentence-transformers applies an activation
多语言模型的卡片用普通 transformers 加 trust_remote_code=True 加载,并建议安装 xformers、开启 unpadding 以提速。
作为服务部署
docker run -p 8080:80 -v $PWD/data:/data \
ghcr.io/huggingface/text-embeddings-inference:cpu-1.7 \
--model-id Alibaba-NLP/gte-reranker-modernbert-base
curl localhost:8080/rerank -H "Content-Type: application/json" \
-d '{"query": "What is the capital of China?", "texts": ["Beijing"]}'
Hugging Face 的 Text Embeddings Inference 可以通过 /rerank 接口提供这两个模型,CPU 或 GPU 都行(去掉镜像标签里的 cpu- 并加上 --gpus all)。英文模型还能通过 transformers.js 在浏览器里运行,支持 fp32、fp16、q8、q4、q4f16。
什么时候选 GTE
- 适合:用 CPU 部署,或者显卡预算不够跑基于大模型的重排序。
- 适合:段落较长:两者都能接收 8,192 token,而很多小型交叉编码器只到 512。
- 适合:英文代码检索或长文档检索,这是阿里巴巴为 ModernBERT 模型给出成绩的两个方向。
- 可能不适合:需要指令,或者有 GPU 且要最好的多语言效果:Qwen3-Reranker 支持指令,在 Qwen 的测试里分数也更高。
优缺点
优点
- Apache 2.0,参数量 149M 和 306M
- 8,192 token 上下文
- 可用 Text Embeddings Inference 在 CPU 或 GPU 上部署
- 英文模型可通过 transformers.js 在浏览器里运行
缺点
- 不支持任务指令
- 阿里巴巴的 BEIR 分数没有说明数据集和第一阶段
- 多语言模型在 transformers 里需要自定义代码
- 在 Qwen 的多语言测试里落后于基于大模型的重排序