什么是 双编码器(Bi-Encoder)?

双编码器(Bi-Encoder)是一种检索模型架构,它分别把查询和文档编码为嵌入向量,使二者可以通过相似度搜索高效比较。

工作原理

双编码器使用一个编码器处理查询、另一个编码器处理文档,二者通常共享权重,然后用点积、余弦相似度或其他向量度量比较嵌入。由于文档嵌入可以提前计算,双编码器足够高效,适合大规模检索,也广泛用作 RAG 的第一阶段检索器。代价是模型在检索时不会联合阅读完整查询-文档对,因此细粒度相关性判断通常交给交叉编码器重排器。

主要特点

  • 将查询和文档独立编码到同一向量空间
  • 允许文档嵌入预先计算并存入向量数据库
  • 适合在大规模语料上做第一阶段候选召回
  • 在细粒度相关性判断上通常不如交叉编码器精确
  • 生产 RAG 管线中常用于重排之前的快速召回

常见用途

  1. 为 RAG 索引中的文档分块生成嵌入
  2. 从向量数据库检索 top-k 候选结果
  3. 为大型知识库提供低延迟语义搜索
  4. 使用兼容嵌入构建多语言检索系统
  5. 把快速候选召回与较慢的交叉编码器重排结合

示例

loading...
Loading code...

常见问题

为什么双编码器速度快?

文档嵌入可以离线计算。查询时系统只需要编码查询,并执行向量相似度搜索。

查询编码器和文档编码器一定是同一个模型吗?

不一定。有些系统共享权重,也有系统使用针对查询和文档不同分布训练的非对称编码器。

双编码器的主要限制是什么?

它比较的是压缩后的向量表示,而不是联合阅读完整查询和文档,因此可能遗漏细粒度相关性信号。

双编码器和交叉编码器是什么关系?

双编码器通常用于快速召回,交叉编码器则在较小候选集上进行更精确的成对打分和重排。

相关工具

相关术语

相关文章