模型层 开放阅读

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 节结构 公司投研页 沿产业链找到受益公司 投资课 把概念转成可跟踪模型