返回首頁

檢索與 RAG 工具

Sentence Transformers 公開多向量領域微調配方,但索引成本仍遠高於密集向量

Sentence Transformers 為 `MultiVectorEncoder` 補上完整訓練流程,讓 ColBERT 式模型可直接以配對資料進行領域調整。醫療檢索實驗顯示預監督檢查點更容易適應新領域,但結論只來自單一資料與有限模型家族。

Daniel Jolivet · CC BY 2.0 · Image source
zh-Hant

Hugging Face 維護者公布 Sentence Transformers 多向量模型的完整微調配方,把 v6.0 新增的 `MultiVectorEncoder` 從載入與推論介面延伸至資料格式、損失函數、評估器及訓練器。這類 ColBERT 式模型不把整份文件壓成單一向量,而是保留每個 token 的小型向量;查詢時,每個 query token 尋找最相似的 document token,再以 MaxSim 累加分數。它能保留產品編號、姓名或函式名稱等局部訊號,代價是索引與評分量明顯增加。

新流程支援問答配對、帶多個候選文件的知識蒸餾資料,以及按欄位指定 query/document 路由。`CachedMultiVectorMultipleNegativesRankingLoss` 以 GradCache 把文件分塊編碼,使有效 batch size 不再完全受顯存限制;長短差異大的文件亦可用 token 預算而非文件數控制每個 mini-batch,減少偶發的顯存峰值。由於 MaxSim 會累加多個 token 相似度,其預設縮放值是 1.0,而不是密集式 cosine loss 常用的 20.0,直接沿用舊配方可能令 softmax 過度尖銳。

作者以 25,000 組醫療問題—段落配對比較六種起點。在 50,000 段落的保留測試中,`mLateOn-unsupervised` 的 NDCG@10 從 0.9087 升至 0.9398;相反,已完成通用監督微調的 GTE-ModernColBERT 檢查點由 0.9198 降至 0.9007。結果暗示通用監督對齊可能妨礙後續領域適應,從對比預訓練後、通用監督前的權重起步反而較好。不過這不是普遍定律:實驗只涵蓋醫療語料、兩個主要模型家族及單一評測設計。

部署端仍須計算索引代價。官方示例中,多向量 float32 索引約為 MiniLM 密集索引的 42 倍;token pooling、量化及 PLAID 可縮小差距,也可只把多向量模型放在第二階段重排。中文 RAG 團隊下一步應自行測試斷詞、長文件切分與罕見字詞召回,不能直接套用英語醫療數據的增益。

來源

  1. Training and Finetuning Multi-Vector Embedding Models with Sentence Transformers
  2. Sentence Transformers v6.0.0 release notes