句子向量化與向量資料庫檢索流程

步驟 1: 原始句子與模型載入

原始句子
載入模型

SentenceTransformer: BAAI/bge-m3

步驟 2: 計算句子的向量

SentenceTransformer 編碼 (normalize_embeddings=True)
正規化句子的向量

使用 L2 正規化生成單位向量(長度為 1)。

步驟 3: 建立 FAISS 向量資料庫

向量資料庫建立時要決定使用哪種索引類型,一般而言有計算距離與計算相似度兩種方式

  1. 計算距離:IndexFlatL2(L2 距離),數值越小越相似
  2. 計算相似度:IndexFlatIP(內積),數值越大越相似
正規化句子的向量
FAISS IndexFlatIP

這裡選擇 使用內積索引(IndexFlatIP)儲存句子的向量而非 L2 距離,是因為向量已正規化,內積等於計算兩個向量的 Cosine 相似度。

原始程式:https://gist.github.com/peterju/00979bb20f2f0a8b193e2b0c34c21338