Ettin 重排序器系列 v1 发布说明
Ettin 重排序器系列 v1 发布说明
TL;DR
Hugging Face 发布了六款新的 Sentence Transformers CrossEncoder 重排序器(ettin-reranker-17m-v1 到 ettin-reranker-1b-v1),基于 Ettin ModernBERT 编码器构建,并通过对 mixedbread-ai/mxbai-rerank-large-v2 的点式 MSE 蒸馏进行训练。这些模型在各自规模上达到了业界领先水平,提供了更高的准确性和速度,适用于检索‑再排序流水线。
模型系列与发布
Ettin 重排序器系列包括六个 CrossEncoder 模型,参数规模从 1700 万到 10 亿不等,均在 Apache 2.0 许可证下发布。每个模型基于约翰斯·霍普金斯大学 Ettin 套件中的相应 Ettin 编码器,并使用单轮点式 MSE 损失在约 1.43 亿(查询、文档、分数)对的数据集上,从教师模型 mxbai-rerank-large-v2 进行蒸馏。
架构细节
所有六个重排序器共享相同的模块化架构,唯一的区别在于 Ettin 编码器的主干大小。该架构包括一个 Transformer(以 AutoModel 加载以支持未填充的输入)、CLS 池化、一个 dense‑GELU 块、LayerNorm,以及输出单一相关性分数的最终全连接层。隐藏层大小、层数和总参数量(包括头部)如下:
- 17M:隐藏维度 256,层数 7,参数量 17.6M
- 32M:隐藏维度 384,层数 10,参数量 32.8M
- 68M:隐藏维度 512,层数 19,参数量 68.6M
- 150M:隐藏维度 768,层数 22,参数量 150.9M
- 400M:隐藏维度 1024,层数 28,参数量 401.6M
- 1B:隐藏维度 1792,层数 28,参数量 1.00B 所有模型支持最多 8192 个 token 的上下文,这得益于 Ettin 编码器的 ModernBERT 风格预训练。
使用方法
这些发布的模型是标准的 Sentence Transformers CrossEncoder,可以通过三行代码加载。为获得最大吞吐量,请通过 model_kwargs 启用 bfloat16 和 Flash Attention 2。
from sentence_transformers import CrossEncoder
model = CrossEncoder(
"cross-encoder/ettin-reranker-32m-v1",
model_kwargs={"dtype": "bfloat16", "attn_implementation": "flash_attention_2"},
)
rank 方法返回查询及候选文档列表的排序索引和分数。端到端的检索‑再排序流水线使用快速嵌入模型(例如 sentence-transformers/static-retrieval-mrl-en-v1)获取前 K 个候选,然后使用重排序器对其重新排序。
检索结果 (MTEB)
在 MTEB(eng, v2)检索基准(NDCG@10 在六种嵌入模型配对上取平均)中,Ettin 重排序器取得了以下分数:
- ettin-reranker-1b-v1: 0.6114
- ettin-reranker-400m-v1: 0.6091
- ettin-reranker-150m-v1: 0.5994
- ettin-reranker-68m-v1: 0.5915
- ettin-reranker-32m-v1: 0.5779
- ettin-reranker-17m-v1: 0.5576 作对比,教师模型 mxbai-rerank-large-v2 的得分为 0.6115,1B 的 Ettin 模型与其相差不到 0.0001。最小的 17M 模型在 NDCG@10 上比 33M 的 ms-marco-MiniLM-L12-v2(0.5066)高出 +0.051。
速度基准
吞吐量在单块 NVIDIA H100 80GB 上使用 bfloat16 和最佳支持的注意力实现进行测量。结果(对/秒)如下:
- ettin-reranker-17m-v1: 7517
- ettin-reranker-32m-v1: 6602
- ettin-reranker-68m-v1: 4913
- ettin-reranker-150m-v1: 3237
- ettin-reranker-400m-v1: 1738
- ettin-reranker-1b-v1: 928 教师模型 mxbai-rerank-large-v2 的吞吐量为 387 对/秒,因此 1B 的 Ettin 模型在保持质量的同时实现了 2.4 倍的吞吐量。在 CPU(Intel Core i7-13700K)上,17M 模型达到 267.4 对/秒,显著快于 ms-marco-MiniLM-L6-v2(143.9 对/秒)。
训练方案
这些模型使用单轮点式 MSE 蒸馏方案进行训练。教师模型为 mixedbread-ai/mxbai-rerank-large-v2;损失函数为对原始教师 logits(范围约为 [−12, 22])使用 MSELoss。训练数据为已发布的数据集 cross-encoder/ettin-reranker-v1-data,包含约 1.43 亿(查询、文档、分数)三元组,来源于 lightonai/embeddings-pre-training 以及 lightonai/embeddings-fine-tuning 的重新打分子集。 随模型规模变化的超参数包括学习率和全局批量大小;其他设置保持不变(num_train_epochs=1,warmup_ratio=0.03,bf16=True,使用 NanoBEIR 的平均 NDCG@10 每 5% 步进行评估)。
- 17M:学习率 2.4e-4,全局批量 1024
- 32M:学习率 1.2e-4,全局批量 512
- 68M:学习率 3e-5,全局批量 256
- 150M:学习率 1.5e-5,全局批量 192
- 400M:学习率 7e-6,全局批量 256
- 1B:学习率 3e-6,全局批量 512 训练脚本使用模块化的 Transformer,以支持未填充的输入用于 Flash Attention 2,这也促成了观察到的加速效果。
结论
Ettin 重排序器系列提供了对传统 MiniLM 重排序器的强大且高效的直接替代方案,在整个规模范围内实现了更高的准确性和速度。17M 和 32M 模型尤其适用于对延迟敏感的应用,而 1B 模型在参数仅为 1.5B 教师的四分之一的情况下,仍能匹配其质量,并实现 2.4 倍的吞吐量。