| Bi-Encoder | Cross-Encoder | |
|---|---|---|
| 主要功能 | 兩個(gè)句子分別傳入,分別輸出Embedding向量,計(jì)算兩個(gè)向量的余弦相似度最為兩個(gè)句子的相似度 | 兩個(gè)句子同時(shí)傳入,輸出一個(gè)0~1值,表示兩個(gè)句子的相似度 |
| 優(yōu)點(diǎn) | 余弦相似度,計(jì)算速度快 | 1. 可以同時(shí)獲取兩個(gè)句子的語義信息,相似度計(jì)算結(jié)果效果好 2. 相似度結(jié)果控制在0~1,方便確認(rèn)閾值 |
| 缺點(diǎn) | 相似程度通過距離遠(yuǎn)近對比獲得,無法確認(rèn)是否真的相關(guān);結(jié)果范圍廣,無法確定閾值 | 計(jì)算速度慢 |
| 使用場景 | 在數(shù)據(jù)量比較大的數(shù)據(jù)集中找到和某個(gè)句子相關(guān)的數(shù)據(jù) | 在小范圍數(shù)據(jù)集中,獲取數(shù)據(jù)與某個(gè)句子的相似度得分 |
| RAG 中的位置 | 用于數(shù)據(jù)檢索階段,從向量數(shù)據(jù)庫中獲取數(shù)據(jù) | 用于重排序階段,計(jì)算檢索結(jié)果與用戶問題的相似度,用于排序或者過濾 |
Bi-Encoder 和 Cross-Encoder 原理示意圖

Bi-Encoder 和 Cross-Encoder 原理示意圖
Retrieve & Re-Rank Pipeline
結(jié)合 Bi-Encoder 和 Cross-Encoder

pipeline 示意圖
參考:
使用樣例: