模型層 開放閱讀

Cross-Encoder

Cross-Encoder

概念 ID
cross-encoder
更新時間
2026-05-29
來源數量
待補

Cross-Encoder

3 秒看懂

Cross-Encoder 是一種將兩段文本拼接後整體輸入一個 Transformer 編碼器、直接輸出一個相關性分數的模型架構。它與 Bi-Encoder(雙塔)的核心區別在於:Cross-Encoder 在 Transformer 內部的每一層自注意力(self-attention)中都能看到 query 和 document 的全部 token,從而實現深度互動。精度高,但推論時無法預計算文件表示,速度慢一個數量級以上——因此在工業界主要用於 reranking(重排序) 階段,而非第一輪檢索。

3 分鐘產業解釋

為什麼需要 Cross-Encoder?

現代檢索系統(搜尋引擎、RAG 問答、推薦系統)普遍採用兩階段管線(two-stage pipeline)

  1. 第一階段:召回(Retrieval)——從百萬級候選池中快速篩選出數百條候選結果。速度優先,常用 BM25(關鍵詞匹配)、Bi-Encoder(雙塔向量檢索)或混合方案。
  2. 第二階段:重排序(Reranking)——對召回的數百條候選精打細算,給出精準排序。精度優先,這正是 Cross-Encoder 的主戰場。

Cross-Encoder 的價值在於:它是精度-成本曲線的上界參考。在給定候選集規模(通常 50–1000 條)下,Cross-Encoder 的排序質量顯著優於 Bi-Encoder,代價是推論延遲從微秒級提升到毫秒-十毫秒級。

產業位置

在 RAG(Retrieval-Augmented Generation)管線中,Cross-Encoder 承接”粗篩→精排→生成”的中間環節。當前主流做法:

使用者 Query → BM25/Bi-Encoder 召回 Top-K → Cross-Encoder Rerank → Top-K' → LLM 生成

Cohere Rerank、Jina Reranker、Voyage AI 等 API 均提供 Cross-Encoder 級別的重排序服務,按查詢次數計費。在企業級搜尋/問答場景,這一環往往是準確率提升最大且成本可控的槓桿點

15 分鐘專家深入

架構本質

Cross-Encoder 本身並不是一種全新的網路結構,而是一種輸入範式(input paradigm)。它通常複用 Encoder-only Transformer(如 BERT、RoBERTa、DeBERTa 等),將 query 和 document 拼接為單一輸入序列:

[CLS] query tokens [SEP] document tokens [SEP]

模型最後一層的 [CLS] 隱狀態通過一個線性層對映為標量相關性得分。

與 Bi-Encoder 的本質差異

維度Bi-Encoder(雙塔)Cross-Encoder
輸入方式query 和 doc 各自獨立編碼query 和 doc 拼接後聯合編碼
注意力範圍各自內部 self-attentionquery-doc 之間全層交叉注意力
文件表示可否預計算✅ 可離線計算並索引❌ 必須線上逐對計算
檢索複雜度O(N + M),可近似 O(1) ANNO(N × M)
典型應用場景第一輪召回第二輪重排序
精度(以 MRR@10 或 NDCG@10 衡量)較低顯著更高
單次推論延遲(GPU,base 模型,512 token)~1–5 ms~5–50 ms/對

關鍵洞察:Bi-Encoder 丟失了 token 級別的細粒度互動。一個 query token 無法在編碼階段”看到”任何 document token,反之亦然——只能通過最終向量的點積做全域性壓縮匹配。Cross-Encoder 沒有這個瓶頸。

為什麼精度高?

Transformer 自注意力在每一層計算:

\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V

當 query 和 document 拼接輸入時,$Q$、$K$ 矩陣橫跨兩個文本的所有 token。這意味著:

  • 第 1 層開始,每個 query token 就能 attend 到每個 document token,反之亦然。
  • 到第 $L$ 層,資訊已經過 $L$ 輪交叉融合,模型可以捕捉複雜的匹配模式(如否定、因果、推論鏈)。
  • Bi-Encoder 僅有 單次點積 作為資訊瓶頸(information bottleneck),其表達能力遠弱於此。

推論成本的量級差異

設候選文件池大小為 $M$,查詢數為 $N$:

  • Bi-Encoder:文件側編碼一次(離線),總計算 ≈ M \cdot C_{\text{doc}} + N \cdot C_{\text{query}},線上檢索可用 FAISS/ScaNN 等 ANN 索引,O(\log M) 或 $O(1)$ 量級。
  • Cross-Encoder:每對 (query, document) 需要完整前向傳播一次,線上總計算 ≈ N \times M \times C_{\text{pair}}

因此 Cross-Encoder 只能用於小規模候選集的精排,不能用於百萬級語料庫的直接檢索。


技術原理

模型架構(以 BERT-base 為例)

┌─────────────────────────────────────────────────────┐
│  Input: [CLS] q1 q2 ... qn [SEP] d1 d2 ... dm [SEP]│
│              ↓ Token Embedding + Segment Embedding   │
│  ┌───────────────────────────────────────────┐       │
│  │  Transformer Encoder Layer × 12 (base)    │       │
│  │  - Multi-Head Self-Attention (full span)  │       │
│  │  - Feed-Forward Network                   │       │
│  │  - LayerNorm + Residual                   │       │
│  └───────────────────────────────────────────┘       │
│              ↓                                       │
│  [CLS] hidden state (768-d for base)                 │
│              ↓                                       │
│  Linear(768 → 1) → sigmoid → relevance score ∈ [0,1]│
└─────────────────────────────────────────────────────┘

輸入表示

  • Token Embedding + Position Embedding + Segment Embedding(query 段標記為 0,document 段標記為 1,是 Cross-Encoder 區分兩段文本的關鍵訊號)
  • 最大輸入長度通常 256–512 token(受計算量制約)

輸出頭

  • Pointwise:單樣本得分,用 sigmoid + BCELoss 訓練
  • Pairwise:用 Margin-based Loss(如 BCE on score difference 或 Triplet Loss),訓練時輸入 (query, positive, negative) 三元組
  • Listwise:對同一 query 的多候選做 softmax + CrossEntropy(更貼近排序目標)

訓練資料範式

典型的監督訊號來源:

  • 人工標註:TREC、MS MARCO 等資料集提供的 query-document 相關性標籤
  • 弱監督:BM25 或 Bi-Encoder 的 Top-K 結果作為正樣本(偽標籤)
  • 知識蒸餾:用更大的 Cross-Encoder(或 LLM-based reranker)的輸出分數作為 soft label,訓練更小更快的 Cross-Encoder——這是當前工業界高頻使用的策略
  • 對比學習輔助:在 Cross-Encoder 訓練中加入對比損失作為正則化

推論最佳化技術

由於 Cross-Encoder 無法預計算,推論最佳化極為關鍵:

技術說明
Dynamic Batching將同一 batch 內多個 (query, doc) pair 一起推論
ONNX / TensorRT 量化INT8 量化可降低延遲 2-4×,精度損失通常可控
Early Exit淺層即可判斷”明顯不相關”的 pair 提前退出,節省計算
Truncation 策略對 document 截斷到前 128/256 token,降低序列長度(犧牲少量精度)
Flash Attention降低長序列的視訊記憶體和計算開銷
Speculative Reranking先用輕量模型粗排,再用完整 Cross-Encoder 對 Top-K’ 精排

技術演進史

時間里程碑說明
~2000sBM25 / TF-IDF純詞法匹配,無語義理解
2013–2015Word2Vec / GloVe早期語義匹配:平均詞向量 + cosine,表達力有限
2015–2018CNN/LSTM-based Sentence Pair ModelsESIM、DecompAttention 等,NLI 任務推動 pair modeling
2018.10BERT 釋出Encoder-only 架構 + NSP 預訓練天然適配句對任務
2019Sentence-BERT (Reimers & Gurevych)明確對比 Bi-Encoder vs Cross-Encoder 範式;在 STS/MNLI 等任務建立基準
2019MS MARCO Leaderboard 催化大規模檢索基準推動 BERT Cross-Encoder 在 reranking 上成為 SOTA
2020DeBERTa / ELECTRA更強的預訓練目標帶來 Cross-Encoder 精度進一步提升
2020–2021蒸餾潮MiniLM、TinyBERT 等將 Cross-Encoder 蒸餾為更小模型
2022ColBERT v2 / Late Interaction介於 Bi-Encoder 和 Cross-Encoder 之間的折中方案出現
2023–2024LLM-as-Reranker用 GPT-4、Cohere Command 等 LLM 做 listwise reranking,精度高但成本高
2024–2025開源 Cross-Encoder 蒸餾自 LLM如 RankGPT 思路→開源蒸餾模型,平衡精度與成本

產業趨勢:Cross-Encoder 作為 reranker 的核心範式地位未被撼動,但 LLM-based reranker 在特定場景開始替代傳統 Cross-Encoder,催生”LLM 教師 → Cross-Encoder 學生”的蒸餾範式。


技術路線對比

維度BM25Bi-EncoderCross-EncoderLate Interaction (如 ColBERT)LLM-based Reranker
語義能力無(詞法)中等中強最強
互動粒度詞匹配向量點積(全域性)token-to-token(全層)token-to-token(僅最後一層)生成式推論
可預計算✅ 倒排索引✅ 向量索引✅(token-level 向量索引)
線上延遲(Top-100 rerank, GPU)<1 ms<5 ms5–50 ms10–30 ms100–2000+ ms
典型 NDCG@10(MS MARCO Passage, 大致量級)~0.23 [估算]~0.34 [估算]~0.39–0.41 [估算]~0.37 [估算]~0.42+ [估算]
部署成本極低低(GPU 推論 + ANN 索引)中(GPU 密集推論)中高(大索引 + 推論)高(LLM 推論)
適用規模百萬–十億級百萬–十億級百–千級候選百萬級(折中)十–百級候選

注:NDCG@10 數字為不同論文/公開排行榜中大致量級的估算,不同資料集、模型大小差異顯著,此處僅用於定性對比。


上下游

上游:依賴什麼?

  • 預訓練 Encoder 模型:BERT、RoBERTa、DeBERTa、ELECTRA、ModernBERT 等。預訓練質量直接決定 Cross-Encoder 上限。
  • 訓練資料:標註好的 query-document 相關性對。MS MARCO(約 50 萬 query,約 880 萬 passage)、TREC DL 是標準基準。
  • 第一階段檢索器:Cross-Encoder 自身無法檢索,必須依賴 BM25 / Bi-Encoder / 混合方案先召回候選。
  • 推論硬體:GPU(NVIDIA A100/H100 等)對高吞吐 reranking 至關重要;邊緣/端側可用量化後的小模型。

下游:被什麼使用?

  • RAG 管線:ChatGPT with retrieval、企業搜尋、知識庫問答的 reranking 環節
  • 搜尋引擎:Google/Bing 的 Learning-to-Rank 模組中,Cross-Encoder 類模型是候選排序器之一
  • 推薦系統:多模態或文本側的精排模型借鑑 Cross-Encoder 思路
  • 對話系統:候選回覆選擇 / 對話檢索
  • 程式碼搜尋:CodeBERT-based Cross-Encoder 用於 query-to-code reranking

關鍵指標

指標含義典型範圍
MRR@10前 10 結果中首個正確結果的倒數排名均值MS MARCO 上 0.35–0.41 [估算,模型相關]
NDCG@10前 10 結果的歸一化折扣累計增益TREC DL 上 0.65–0.75 [估算]
Latency (p50/p99)單次 rerank 的中位數/尾部延遲GPU 上 5–50 ms/pair(base 模型)
Throughput每秒可 rerank 的 pair 數取決於 batch size、模型大小、序列長度、硬體
Model Size引數量22M (MiniLM-L6) → 340M (DeBERTa-large)
Max Input Length支援的最大拼接序列長度通常 256–512 token
Rerank Depth (K)從召回階段接收的候選數典型 50–1000

供需與市場資料

⚠️ 以下為定性分析和公開可得資訊的彙總,非精確市場資料。

需求側

  • RAG 市場爆發:幾乎所有企業級 AI 應用都包含檢索增強環節,Cross-Encoder reranking 是精度提升的標準配置。
  • 搜尋/廣告:Google、Bing、百度等搜尋引擎的排序模組中大量使用 Cross-Encoder 或其變體。
  • API 呼叫量:Cohere Rerank、Jina Reranker 等 SaaS 產品以 API 計費,反映下游需求旺盛。

供給側

  • 開源模型sentence-transformers 庫提供豐富的預訓練 Cross-Encoder 模型(如 cross-encoder/ms-marco-MiniLM-L-6-v2 等),大幅降低使用門檻。
  • 商業 API:Cohere Rerank、Voyage AI、Jina AI 等提供託管服務。
  • 推論成本:一個 base 模型在 A100 上 rerank 100 條候選的延遲約 10–30 ms(估算),成本約 $0.001–0.01/query 級別(自部署,不含硬體折舊)。

競爭格局

Cross-Encoder 面臨來自兩個方向的競爭:

  1. LLM-based Reranker:GPT-4o / Command R+ 直接做 listwise reranking,精度可能更高但成本高 10–100×。
  2. Late Interaction 模型(如 ColBERT):在保持一定精度的同時支援預計算,延遲接近 Bi-Encoder。

代表公司與資本對映

公司/組織產品/貢獻說明
CohereRerank API商業化 Cross-Encoder reranking 的代表,B 輪融資估值超 $50B [公開報道]
Jina AIJina Reranker / jina-reranker-v2開源 + 商業 API 雙模式
Voyage AIReranker API獲得融資,專注嵌入與重排序
Hugging Facesentence-transformers 庫開源 Cross-Encoder 訓練/推論架構的事實標準
MicrosoftMiniLM、DeBERTa提供高效 Cross-Encoder 的基礎模型
GoogleBERT → 私有排序模型搜尋排序中的 Cross-Encoder 思路
MetaColBERT 相關研究Late Interaction 路線的推動者

投資邏輯

看好因素

  1. RAG 管線中的剛需環節:只要 LLM 依賴檢索增強,Cross-Encoder(或其衍生)reranking 就是不可或缺的精度層。
  2. 價效比優勢明顯:相比 LLM-based reranker,Cross-Encoder 的推論成本低 1–2 個數量級,適合高 QPS 場景。
  3. 蒸餾範式打通”大型模型 → 小模型”的產業路徑:用 LLM 的排序知識蒸餾到輕量 Cross-Encoder,兼顧精度和成本。
  4. API 化趨勢:Reranking-as-a-Service 模式正在形成,如 Cohere Rerank。

風險因素

  1. 被 LLM 端到端替代:如果未來 LLM 推論成本大幅下降(如 100×),直接用 LLM 做 reranking 可能使獨立 Cross-Encoder 層變得多餘。
  2. 被 Late Interaction 替代:ColBERT 等方案在精度和延遲之間有更好的 trade-off,可能蠶食 Cross-Encoder 的份額。
  3. 頭部效應:開源模型(sentence-transformers 生態)高度可用,商業化壁壘有限。

常見誤讀糾偏

誤讀 1:「Cross-Encoder 是一種獨立的網路架構」

糾偏:Cross-Encoder 不是一種新架構,而是一種輸入範式。它複用標準的 Encoder-only Transformer(BERT、RoBERTa 等),關鍵區別在於將兩段文本拼接輸入以實現交叉注意力,而非改變網路結構本身。真正改變架構的創新(如 ColBERT 的 token-level late interaction)才是新架構。

誤讀 2:「Cross-Encoder 可以替代 Bi-Encoder 做大規模檢索」

糾偏:不行。Cross-Encoder 的推論複雜度是 O(N \times M)($N$ 查詢 × $M$ 文件),無法預計算文件表示。對於百萬級語料庫,即使用最激進的量化和硬體最佳化,線上逐對計算也不現實。Cross-Encoder 只適合對 Bi-Encoder/BM25 已召回的少量候選(通常 50–1000)做精排。它與 Bi-Encoder 是互補關係,不是替代關係。

誤讀 3:「Segment Embedding 不重要,去掉也行」

糾偏:在 Cross-Encoder 中,Segment Embedding(token type embedding)是告訴模型哪些 token 屬於 query、哪些屬於 document 的唯一結構化訊號。雖然位置編碼在理論上也能部分割槽分,但實驗表明去掉 Segment Embedding 通常會帶來可測量的精度下降,尤其在短 query + 長 document 的典型場景下。

誤讀 4:「Cross-Encoder 只能做二分類(相關/不相關)」

糾偏:輸出頭的設計靈活。可以是二分類(sigmoid),也可以是迴歸(連續相關性分數),還可以用 listwise softmax 對多個候選同時打分並歸一化。訓練方式也多樣化:pointwise、pairwise、listwise loss 各有適用場景,listwise 在排序目標上通常更優。


學習路徑

入門(1–2 天)

  1. 閱讀 Sentence-BERT 論文(Reimers & Gurevych, 2019)——建立 Bi-Encoder vs Cross-Encoder 的基本概念
  2. 使用 sentence-transformers 庫的 Cross-Encoder 示例跑通推論和評估
  3. 在 MS MARCO 資料集上評估一個預訓練 Cross-Encoder 的 MRR@10

進階(1–2 周)

  1. 閱讀 ColBERT 論文(Khattab & Zaharia, 2020)——理解 Late Interaction 作為折中方案
  2. 閱讀 RankGPT / LLM-based Reranking 相關工作——理解 LLM 教師蒸餾到 Cross-Encoder 的範式
  3. 自己實現 Cross-Encoder 的 pairwise/listwise 訓練迴圈
  4. 嘗試 ONNX 量化和 TensorRT 部署,測量 latency 吞吐

專家(持續追蹤)

  1. 追蹤 MTEB Reranking 排行榜上的最新模型
  2. 研究 multi-vector / late interaction 方案(ColBERTv2、PLAID 等)對 Cross-Encoder 的替代潛力
  3. 關注 LLM 推論成本曲線——這是決定 Cross-Encoder 長期競爭力的關鍵變數

一句話總結

Cross-Encoder 以 token 級全層交叉注意力 換取排序精度的上界,以無法預計算的 $O(NM)$ 代價限定在 reranking 環節——它是 RAG 管線中精度-成本 trade-off 最優的重排序方案,但其長期地位取決於 LLM 推論成本下降和 Late Interaction 技術的演進。


延伸閱讀與來源

  • Reimers & Gurevych (2019): Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks — 奠定 Bi-Encoder vs Cross-Encoder 對比架構
  • Nogueira & Cho (2019): Passage Re-ranking with BERT — BERT Cross-Encoder 在 passage reranking 上的早期應用
  • Khattab & Zaharia (2020): ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT — Late Interaction 折中方案
  • Sun et al. (2023): Is ChatGPT Good at Search? Investigating Large Language Models as Re-Ranking Agent (RankGPT) — LLM-based reranking
  • sentence-transformers 文件https://www.sbert.net/cross_encoder.html)— 實踐入口
  • MTEB Leaderboardhttps://huggingface.co/spaces/mteb/leaderboard)— 模型評測排行
  • MS MARCO Leaderboardhttps://microsoft.github.io/msmarco/)— 檢索/reranking 基準
  • ⚠️ 本頁中的 benchmark 數字和市場資料為基於公開資訊的估算,非精確定量資料,具體數值因模型版本、資料集版本、評測設定而異。
source: 公開揭露與公開資料整理 本頁僅用於產業鏈學習、資訊檢索和研究輔助;不構成投資建議,不預測漲跌,不提供買賣、部位或目標價建議。
完整概念頁 複盤 13 節結構 公司投研頁 沿產業鏈找到受益公司 投資課 把概念轉成可跟蹤模型