什么是 交叉编码器(Cross-Encoder)?
交叉编码器(Cross-Encoder)是一种排序模型架构,它联合编码查询和候选文档或片段,并输出相关性分数。
工作原理
交叉编码器会把查询和片段放在一起评估,使注意力可以跨越两段文本。这通常比比较独立嵌入产生更好的相关性判断,尤其适合细致问题、否定表达、约束条件和短片段。代价是延迟:每个查询-片段对都必须在请求时打分。因此,交叉编码器通常作为重排器使用,在 BM25、稠密检索或混合搜索先产生可管理候选集之后再排序。
主要特点
- 在打分前联合读取查询和候选片段
- 在许多重排任务上比双编码器更精确
- 计算成本较高,因为每个查询-文档对都要单独评估
- 适合处理否定、约束和细微措辞差异
- 通常只应用于 top-k 候选,而不是整个语料库
常见用途
- 在把上下文送入 LLM 前重排前 50 个稠密检索结果
- 改善第一阶段检索返回噪声候选时的 RAG 答案
- 根据详细合规问题排序政策片段
- 为检索评估打分查询-文档对
- 把 BM25 和向量候选整合为最终排序列表
示例
loading...
Loading code...常见问题
为什么交叉编码器通常比双编码器更准确?
它联合处理查询和片段,因此模型可以在输出相关性分数前直接比较约束、实体和措辞。
为什么不把交叉编码器用于全部检索?
在大规模语料上成本太高,因为每次查询都需要与每个文档或分块成对计算。
交叉编码器在 RAG 中放在哪一步?
它通常在 BM25、稠密检索或混合检索产生候选集后进行重排,再组装最终上下文。
LLM 可以充当交叉编码器重排器吗?
LLM 可以为片段打分或比较片段,但专用交叉编码器重排器在高频检索中通常更便宜、更稳定。