RAG检索模型选型:Bi-Encoder、Cross-Encoder、SPLADE与ColBERT的技术对比

构建RAG系统时,Bi-Encoder、Cross-Encoder、SPLADE、ColBERT通常会同时出现。它们都用于计算文本相关性,但优化目标不同:有的追求规模与速度,有的追求精度,有的强调词项匹配,有的在交互粒度上折中。

核心问题只有一个:如何在高召回与高精准之间取得平衡。


一、精准率与召回率

在检索系统中:

高精准率(Precision)

高召回率(Recall)

RAG系统通常采用两阶段甚至多阶段架构:

单一模型难以同时在“规模、速度、精度”三方面都达到最优,因此产生了分层架构。


二、Bi-Encoder:大规模语义召回基础

工作机制

Query和Document分别编码:

句子A → Encoder → 向量A  
句子B → Encoder → 向量B  
相似度(向量A, 向量B)

虽然称为“双编码器”,实际通常共享同一个Transformer编码器。

代表模型包括:


技术优势

  1. 文档向量可离线预计算
  2. 支持ANN近似最近邻搜索
  3. 易于水平扩展

常见向量索引系统:


局限


适用场景


三、Cross-Encoder:精度优先的重排序器

工作机制

Query与Document拼接后共同输入模型:

[CLS] Query [SEP] Document [SEP] → Score

典型实现基于:


技术特点


性能对比示例

若对10000个句子做两两评分:

复杂度差异本质是:


适用场景

在RAG中常见模式:

Bi-Encoder召回Top-100
Cross-Encoder重排Top-20


四、SPLADE:学习型稀疏检索

SPLADE属于“神经稀疏检索”。
不同于稠密向量,SPLADE输出的是词表维度的稀疏权重。
可以理解为“可学习版BM25”。

对比传统方法:


优势


局限


适用场景


五、ColBERT:延迟交互机制

ColBERT位于Bi-Encoder与Cross-Encoder之间。

工作机制

每个token生成向量:

score(query, doc) = Σ max cosine(q_token, d_token)

即“Late Interaction”。

代表模型:


优势


局限


六、多阶段混合架构(推荐方案)

实际工业级RAG系统通常采用混合架构:

flowchart TD
    A[Query] 
    B1[稀疏检索
BM25 / SPLADE] B2[稠密检索
Bi-Encoder] C[候选集合合并] D[Cross-Encoder重排序] E[Top-K文档块] F[LLM生成回答] A --> B1 A --> B2 B1 --> C B2 --> C C --> D D --> E E --> F

七、完整RAG流程示意

flowchart TD
    A[Query]
    B[编码Query
1次Transformer前向] C[ANN向量检索
Top-10000] D[筛选Top-20] E[Cross-Encoder重排
20次前向] F[返回Top-3~5文档块] A --> B B --> C C --> D D --> E E --> F

八、模型选择建议

场景 推荐模型
百万级语料快速召回 Bi-Encoder
精排优化 Cross-Encoder
强关键词场景 SPLADE
长文档高精匹配 ColBERT
工业级RAG 稀疏 + 稠密 + 精排

九、结论

RAG检索架构的本质不是“选一个最强模型”,而是通过分层设计在不同阶段优化不同目标函数。

在工程实践中:

高召回负责“不漏”
高精准负责“排好”
多阶段架构负责“可扩展”

真正成熟的系统,通常不是单模型系统,而是协同系统。