核心概念

重排器(Reranker / Cross-Encoder)是資訊檢索管線中的第二層精篩元件。它不負責從千萬文件中找到候選,而是對已檢索出的 Top-K 結果做細粒度的相關性重新排序。

2026 年 5 月 19 日,Hugging Face 研究員 Tom Aarsen 發布 Ettin Reranker 家族——六個從 17M 到 1B 參數不等的重排器,全部基於 Johns Hopkins NLP 實驗室的 Ettin ModernBERT 編碼器訓練,並同步公開 1.43 億訓練三元組與完整訓練腳本(Apache 2.0)。

嵌入模型 vs 重排器

特性 嵌入模型(Bi-Encoder) 重排器(Cross-Encoder)
編碼方式 查詢與文件各自獨立編碼 查詢 + 文件聯合編碼
速度 快(向量可預先計算) 慢(每對都要跑一次)
精度 較低 較高

生產實踐是兩層串聯:嵌入模型基礎與選型 負責從大語料快速取回 Top-100 候選,再讓重排器精篩,最終呈現 Top-5 或 Top-10。這正是 RAG 檢索增強生成架構 中「檢索後重排」步驟的核心。

六個模型規格

模型 參數量 隱藏層 層數
ettin-reranker-17m-v1 17.6M 256 7
ettin-reranker-32m-v1 32.8M 384 10
ettin-reranker-68m-v1 68.6M 512 19
ettin-reranker-150m-v1 150.9M 768 22
ettin-reranker-400m-v1 401.6M 1024 28
ettin-reranker-1b-v1 1.00B 1792 28

關鍵要點

架構創新:無填充 Transformer + Flash Attention 2

傳統 BERT 系模型批次推論時需對不等長序列做 padding,Flash Attention 2 在 padded 輸入上無法發揮完整效能。Ettin Reranker 使用模塊化 Transformer 元件支援序列 unpadding,讓 FA2 只對有效 token 做計算、跳過填充位置,帶來:

模型大小 bf16+FA2 unpadded 加速(vs fp32 基準)
17M 1.71×
68M 3.60×
150M 4.83×
400M 6.53×
1B 8.26×

評測:每個尺寸都是同規模 SOTA

MTEB (eng, v2) Retrieval NDCG@10 關鍵對比:

  • 17M(0.5576)超越 33M 的 ms-marco-MiniLM-L12-v2(0.5066)
  • 32M(0.5779)超越 568M 的 BAAI/bge-reranker-v2-m3,參數量縮 17 倍
  • 1B(0.6114)幾乎追平 1.54B 教師模型(0.6115)

H100 推論吞吐量(pairs/s)也全面領先:

  • 17M:7,517(對比教師 387,快 19 倍)
  • 150M:3,237(對比同尺寸競品 1,418,快 2.3 倍)
  • 1B:928(對比教師 387,快 2.4 倍)

更多推論加速技術細節可參考 非同步連續批次推論:LLM 推論的 CPU/GPU 並行加速

訓練方法:刻意簡單的單階段 MSE 蒸餾

損失函數只用 MSELoss,直接對教師(mxbai-rerank-large-v2,1.54B)的原始 logits 做均方誤差,不做任何縮放。資料集共 1.43 億條 (query, document, teacher_score) 三元組。

採樣策略(每個查詢從 2,048 個候選中取 256 個):

  • 32 個正例 + 最難負例
  • 32 個中等難度負例(從排名中段區域採樣)

這種「量化-錨點」採樣讓模型同時學到正例識別與難例區分,且每個模型只跑 1 個 epoch,主要調整學習率與批次大小。

評估方法方面,Open ASR Leaderboard:私有測試集對抗基準污染 提到的基準污染問題同樣值得注意——Ettin 使用 NanoBEIR 做動態驗證,部分抵禦污染風險。

尺寸選型建議

場景 推薦 理由
CPU / 邊緣裝置 17M CPU 吞吐 267 pairs/s
成本敏感雲端服務 68M NDCG@10=0.5915,超越 596M Qwen3
高精度需求 400M 或 1B 接近最強教師水準

實務應用

from sentence_transformers import CrossEncoder

model = CrossEncoder("cross-encoder/ettin-reranker-32m-v1")
scores = model.predict([
    ("Where was Apple founded?", "Apple Inc. was founded in Cupertino..."),
    ("Where was Apple founded?", "The Fuji apple is an apple cultivar..."),
])
# [11.39, 2.97] — 分數越高越相關

若啟用 Flash Attention 2 加速:

model = CrossEncoder(
    "cross-encoder/ettin-reranker-32m-v1",
    model_kwargs={"dtype": "bfloat16", "attn_implementation": "flash_attention_2"},
)

Hugging Face 推論供應商生態系:DeepInfra 整合實錄 所描述的推論服務架構搭配,可讓重排器在不部署本地 GPU 的情況下直接接入 HF Inference API;搭配 Granite Embedding Multilingual R2:開源多語言嵌入的效能突破 等開源嵌入模型,可建立完整的開源雙層檢索管線。

延伸觀點

從近期研究看,Ettin Reranker 的發布符合 RAG 領域幾個更廣泛的收斂共識。

跨編碼器對比雙編碼器的優勢已有充分實證。 多篇 2024-2025 年研究(包括電商知識圖譜上的 RAG 管線比較)均確認,加入 Cross-Encoder 重排後的 Hit@1 可提升 20% 以上,且在不同的底層檢索器(BM25、FAISS dense retrieval)上效果一致。Ettin 家族的 MTEB 數據與此吻合——即便是最小的 17M 模型,也能對嵌入模型的召回結果做有意義的重排精篩。

專化重排器優於通用 LLM 重排。 這是多篇論文的共同發現,理由在於:LLM 作為重排器時推論成本高(每對都需要完整 prompt),且沒有針對相關性判斷優化。Ettin 的 68M 模型在 MTEB 上超越 596M 的 Qwen3-Reranker-0.6B,再次驗證「專化小模型 > 通用大模型」的規律在重排任務上同樣成立。

新興架構方向:Set-Encoder(集合式編碼器)。 點式(Pointwise)Cross-Encoder 的限制是每個文件獨立評分,無法建模文件間的相對關係。近年出現的 Set-Encoder 架構透過置換不變(permutation-invariant)的注意力機制,在單次前向傳播中同時處理所有候選文件,並讓文件之間相互注意。這讓 Ettin 目前的設計仍有改進空間——未來若引入文件間交互,可進一步提升難例排序精度。

Ettin 的最大貢獻是基礎設施層的開放。 相比精度數字,更值得關注的是 1.43 億訓練三元組的完整開源——這是目前公開規模最大的重排器訓練資料集之一,為後續研究者提供了可直接複現、可繼續蒸餾的基礎,降低了自訓重排器的門檻。

反向連結

以下頁面引用了本頁: