RAG 常漏掉「文件裡明明有、但整段主題不夠像」的答案,Multi-Vector 正是為這種問題而來。 Sentence Transformers 8 月 18 日加入 MultiVectorEncoder,讓 ColBERT 類 Late Interaction 模型有一致的編碼、評測與後端介面。不過它不是免費升級:檢索更細,索引也更大。
單向量 embedding 會把段落壓成一個位置,便宜、成熟,適合大規模初篩;Multi-Vector 則保留查詢與文件中的多個 Token 表徵,逐一找最相似配對後加總。原始 ColBERT 論文把這種做法稱為 Late Interaction:文件可預先編碼,查詢到來時才進行細粒度 MaxSim 比對。
它改善的是哪種漏檢
假設文件同時談合約、資料保存與刪除期限。使用者只問一個很短的刪除條款,整段單向量可能被主要主題拉走;Multi-Vector 還保留「刪除」「期限」等局部訊號,更有機會把它找回。這不會修好錯誤切塊、缺文件或生成模型亂答,應先完成RAG 基礎流程與引用驗證。
| 架構 | 優點 | 主要成本 | 適合情境 |
|---|---|---|---|
| 單向量 | 索引小、近似搜尋成熟 | 細節可能被壓平 | 大量候選初篩、一般語意搜尋 |
| Multi-Vector | 保留局部語意、詞項配對可解釋 | 每份文件存多個向量 | 法規、技術文件、精細問答 |
| 單向量加重排 | 成本集中在少量候選 | 多一個服務階段 | 多數既有 RAG 的漸進升級 |
官方用相同訓練資料、ModernBERT 骨幹與 149M 參數,比較 LateOn Multi-Vector 和 DenseOn 單向量。在 NanoBEIR 十三個子集上,前者勝出九個,平均 NDCG@10 為 0.6868,後者為 0.6764;FiQA2018、SciFact 等四組反而是單向量較好。這是作者選定模型與 benchmark 的結果,足以證明有取捨,不足以保證你的中文文件也提升。
索引空間才是導入關卡
一份文件若保留每個 Token 的向量,索引可比單向量大很多。Sentence Transformers 範例的原始 float32 Token 向量占 311.5 MB;將相鄰表徵分層池化後,兩倍 pool factor 約降至 156.4 MB。相關Token Pooling 論文報告可壓縮索引且只造成有限品質損失,但壓縮效果仍要用自己的資料量測。
Qdrant 的 Multi-Vector 教學也把 Late Interaction 放在候選重排脈絡。原因很實際:先對全庫做便宜的單向量或關鍵字搜尋,再對數十至數百筆候選算 MaxSim,比逐份掃描全部 Token 容易維持延遲。已有向量搜尋基礎的團隊,可以先加第二階段,不必一夜重建主索引。
用你的問題集決定,不看單一榜單
先從客服紀錄、站內搜尋零結果與 RAG 錯答收集查詢,保留「應該命中的段落」與「容易混淆的負例」。比較 recall、最終回答引用正確率、P95 延遲、索引容量與每次更新時間。只有 retrieval 分數提升,生成答案仍引用錯段,就不算成功。
推論後端也會改變成本。Sentence Transformers 效率文件提供 PyTorch、ONNX 與 OpenVINO 等路徑;官方測量不能替代你的 CPU、GPU 與文件長度。套件可下載也不代表每個 checkpoint 採相同授權,商用或重發模型前仍要逐一查模型卡。尤其中文切詞、長表格、程式碼和多語資料,Token 數量與查詢形狀都不同。
我不建議內容少、查詢簡單的小型知識庫直接全面改 Multi-Vector。若 BM25 加單向量已能穩定找對段落,額外索引與運維未必划算。反之,當錯誤集中在細粒度條款、專有名詞與長文件,才值得以兩階段方式小範圍驗證。
常見問題
Multi-Vector embedding 和一般 embedding 差在哪?
一般做法常用一個向量代表整段文字;Multi-Vector 會保留多個 Token 或片段向量。查詢時能比對更多局部細節,但索引與計算成本也較高。
RAG 換成 ColBERT 就一定比較準嗎?
不一定。公開比較中仍有資料集由單向量勝出,中文文件、切塊與真實查詢也可能不同。應以自己的標註問題集比較召回與最終引用正確率。
既有向量資料庫要全部重建嗎?
未必。可先保留現有索引做候選召回,只為候選文件建立 Multi-Vector 表徵並重排;確認收益後,再決定是否擴大。
參考來源
- Hugging Face Blog:Multi-Vector (Late Interaction) Embedding Models with Sentence Transformers(2026-08-18)
- arXiv:ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT(2020-04-27)
- arXiv:Reducing the Footprint of Multi-Vector Retrieval with Minimal Performance Impact via Token Pooling(2024-09-23)
- Qdrant Documentation:Using Multivector Representations(2026-08-24 查核)
- Sentence Transformers Documentation:Speeding up Inference(2026-08-24 查核)