返回首頁

RAG/向量檢索

txtai 9.13 將 ColBERT 多向量壓成單一索引,但大型語料仍須重調 Faiss

txtai 9.13 正式整合 LEMUR,以學習式固定維度向量近似逐 token 的 MaxSim 分數。初步測試兼顧索引容量與檢索品質,但預設 IVF 在較大資料集上可能明顯降低召回率。

user:snowyowls · CC BY-SA 2.0 · Image source
zh-Hant

NeuML 在 8 月 27 日發布 [txtai 9.13.0](https://github.com/neuml/txtai/releases/tag/v9.13.0),把 LEMUR(Learned Multi-Vector Retrieval)正式納入這套開源搜尋框架。ColBERT 類 late-interaction 模型會為每個 token 保留向量,以 MaxSim 計算查詢與文件的細粒度相關性;品質通常優於單一密集向量,代價卻是索引更大,也難以直接利用一般 ANN 基礎設施。

LEMUR 先以淺層特徵編碼器學習 MaxSim,再把查詢表示成 token 特徵總和、把文件表示成相對於樣本 token 的最小平方法權重。兩者的固定向量內積可近似原始分數,因此能直接交給 Faiss 等單向量索引。訓練產物包含 `config.json`、`model.safetensors` 及正規化統計,但它與語料分布綁定,建立新索引前仍須額外訓練。

作者在單張 RTX 4080 SUPER、ColBERTv2 與三個 BEIR 資料集的精確搜尋測試中,以 2,048 維 LEMUR 對比 10,240 維 MUVERA;索引容量約縮至五分之一,NDCG@10 仍提高 8.4%至22.9%。新版也加入可設定的 token 向量均值置中,以緩解 LateOn 等模型的向量各向異性。

限制同樣具工程意義:[實作報告](https://huggingface.co/blog/NeuML/txtai-lemur)只涵蓋一款模型、三個資料集及精確搜尋;資料量超過 5,000 筆後,txtai 預設切換 IVF,而 scifact 測試中的 LEMUR NDCG@10 因此下降 43%。團隊下一步應測量自己的中文語料、調整 IVF 參數,並比較訓練與重建索引的總成本,而不能直接套用精確搜尋成績。

來源

  1. txtai v9.13.0 release notes
  2. LEMUR and Mean Centering for Late-Interaction Retrieval in txtai
  3. LEMUR: Learned Multi-Vector Retrieval