Ettin Reranker 系列 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 Reranker 系列包含六個 CrossEncoder 模型,參數規模從 1700 萬到 10 億不等,皆以 Apache 2.0 授權釋出。每個模型皆基於 Johns Hopkins University 的 Ettin 套件中的相應 Ettin 編碼器,並使用單輪點對點 MSE 損失,從教師模型 mxbai-rerank-large-v2 於約 1.43 億 (查詢、文件、分數) 三元組資料集上蒸餾而成。

架構細節

六個重新排序模型皆採用相同的模組化架構,唯一差異在於 Ettin 編碼器的骨幹大小。該架構包括一個 Transformer(以 AutoModel 載入以支援未填充的輸入)、CLS 池化、一個 dense‑GELU 區塊、LayerNorm,以及輸出單一相關性分數的最終 dense 層。隱藏層大小、層數與總參數量(含頭部)如下:

  • 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 模型較 33M 的 ms-marco-MiniLM-L12-v2(0.5066)高出 +0.051 NDCG@10。

速度基準

吞吐量於單顆 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 上的 MSELoss(範圍約為 [−12, 22])。訓練資料為釋出的資料集 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 Reranker 系列提供了強大且高效的即插即用替代方案,取代傳統的 MiniLM 重新排序模型,於全尺寸範圍內皆具備更佳的準確度與速度。17M 與 32M 模型特別適合對延遲敏感的應用,而 1B 模型則以四分之一的參數量與 2.4 倍的吞吐量,匹配 1.5B 教師模型的品質。

Sources