← 返回题库
RAG 检索增强困难

RAG 重排序:Cross-Encoder 与 Bi-Encoder 区别?ColBERT 呢?

#重排序#cross-encoder#bi-encoder#late interaction

题目

RAG 系统中常在初检后加重排序(Rerank)。请对比 Cross-Encoder、Bi-Encoder 与 ColBERT 的原理与适用场景。

参考答案

Bi-Encoder(双编码器,初检用)

  • Query 与文档分别独立编码成向量,用点积/余弦相似度比较。
  • 文档向量可预计算并索引,查询时只需编码 query + 向量检索。
  • 速度快(O(1) 检索),但 query 与文档无交互,精度有限。
  • 代表:bge、gte、jina 等 embedding 模型。

Cross-Encoder(交叉编码器,精排用)

  • 把 query 与文档拼接后一起送入 Transformer,输出单一相关分。
  • query 与文档每个 token 在注意力层充分交互,精度高
  • 无法预计算(每对都要前向),对大库逐对打分不现实。
  • 用法:初检召回 Top-K(如 50–100),再用 Cross-Encoder 精排到 Top-5。
  • 代表:bge-reranker、ms-marco-MiniLM。

ColBERT(Late Interaction,折中方案)

  • query 与文档分别编码成 token 级向量序列(而非单向量),保留细粒度。
  • 相似度用 MaxSim:对 query 每个 token,找文档中最相似的 token 向量,求和。
MaxSim(q,d)=iqmaxjd(qidj)\text{MaxSim}(q, d) = \sum_{i \in q} \max_{j \in d} (q_i \cdot d_j)
  • 文档 token 向量可预计算(late interaction),查询时只算交互。
  • 精度接近 Cross-Encoder,速度接近 Bi-Encoder,是优雅的折中。

对比表

方案交互预计算速度精度适合
Bi-Encoder极快初检
Cross-Encoder全交互不可精排(小集合)
ColBERT延迟交互部分中等规模精排

工程实践

  • 标配:Bi-Encoder 初检 Top-50 → Cross-Encoder 精排 Top-5 → 喂 LLM
  • 中等规模(百万级文档)可考虑 ColBERT 直接做检索 + 精排一体化。

面试加分点

  • 指出”初检是召回率游戏(别漏),精排是精度游戏(别错)“——两段式是性能与精度的工程权衡。
  • ColBERT 的”late interaction”思想影响深远,ColBERTv2 + PLAID 把延迟压到可用范围。
  • rerank 对 RAG 效果提升常比换 embedding 模型更显著,是高性价比优化点。

出处:LlamaIndex 文档、ColBERT 论文《ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT》、RAG 面经。

内容来源

整理自 LlamaIndex 文档与 ColBERT 论文相关面经

本站内容整理自公开面经与开源仓库,仅供学习交流,严禁杜撰。