Bi-Encoder (双塔模型) 和 Cross-Encoder (交互模型) 是自然语言处理 (NLP) 中用于计算两个文本句子相似度或相关性的两种主要架构。 在 RAG (检索增强生成) 系统中,理解它们的区别对于构建既快又准的检索流水线至关重要。 --- 一、 核心区别 (Core Differences) 1. Bi-Encoder (双塔编码器) 架构:将两个输入(如 Query 和 Document)分别送入两个独立的 BERT 模型(通常共享权重)。这两个模型互不干扰,各自输出一个句向量(Embedding)。 计算方式: 1. 2. 3. 特点: 独立性:文档的向量可以预先计算并存储在向量数据库中。 交互时机:仅在最后一步计算余弦相似度时发生交互。 优点:检索速度极快。适合在大规模数据集中进行初步筛选(ANN 搜索)。 缺点:精度相对较低。因为将长文本压缩成一个固定长度的向量会丢失细节,且 Query 和 Document 在编码阶段没有信息交互。 2. Cross-Encoder (交叉编码器) 架构:将两个输入拼接在一起,作为一个整体送入同一个 BERT 模...