RAG開發者必看Google新論文MUVERA:讓多向量檢索與單向量搜尋一樣快

正在進行 RAG 開發的工程師們務必參考 Google 這篇資訊檢索領域的新論文,該論文介紹了一種名為 MUVERA 的先進檢索演算法。此演算法能巧妙地將複雜的多向量檢索問題,簡化為單向量的最大內積搜尋,從而在保持高精確度的同時,實現與單向量搜尋媲美的速度。

背景:從單向量到多向量

神經嵌入模型是現代資訊檢索(IR)的基石。無論是搜尋引擎還是推薦系統,其核心任務都是根據使用者的查詢(例如「聖母峰有多高?」),從海量資料中找到最相關的資訊。嵌入模型能將每個資料點(如文件、圖片)轉換為一個數值向量,即「嵌入」,並確保語義相近的資料點在數學上也相互靠近。

傳統做法是為每個資料點生成一個單一的向量嵌入。透過計算向量間的內積相似度,系統可以利用高效的最大內積搜尋(MIPS)演算法,快速找到匹配結果。然而,近年來以 ColBERT 為代表的多向量模型展現了更優越的效能。這類模型為每個資料點生成一組向量,而非單個向量,並採用更複雜的相似度函數(如 Chamfer 相似度)來捕捉更豐富、更細膩的語義關係。儘管多向量方法提升了準確度,但也帶來了巨大的計算開銷,使得檢索過程變得異常昂貴。

多向量檢索的挑戰

多向量表示儘管在可解釋性和泛化能力上表現出色,但其檢索過程面臨著嚴峻的挑戰:

1. 嵌入數量劇增:為每個詞元(token)都生成嵌入,導致需要處理的向量數量急劇增加。

2. 相似度計算複雜:Chamfer 匹配這類相似度計算是一種非線性操作,需要進行矩陣乘法,其計算成本遠高於單向量的點積。

3. 缺乏高效的搜尋方法:單向量檢索可以受益於空間劃分等高度最佳化的次線性搜尋演算法,避免全域暴力比較。但多向量相似度的複雜性使得這些快速的幾何技術難以直接應用。

因此,一個文件可能因為某個詞元與查詢高度相關而被關注,但整體上卻並非最佳匹配。這要求必須採用更複雜且計算密集的檢索方法。

MUVERA 的解決方案:固定維度編碼(FDE)

為了解決上述問題,論文《MUVERA: Multi-Vector Retrieval via Fixed Dimensional Encodings》提出了一種創新的多向量檢索演算法。其核心思想是,透過一種巧妙的數學變換,將一組多向量壓縮成一個固定維度的單一向量,即固定維度編碼(Fixed Dimensional Encoding, FDE)。

這種變換的關鍵在於,經過壓縮後,兩個 FDE 向量之間的內積能夠高度近似原始多向量集合之間的 Chamfer 相似度。這樣一來,複雜的多向量檢索問題就被成功地簡化為單向量的最大內積搜尋(MIPS)問題。

MUVERA 的工作流程可以分解為以下三步:

1. FDE 生成:透過特定的映射函數,將查詢和文件的多向量集合轉換成固定長度的 FDE 向量。

2. 基於 MIPS 的檢索:使用標準的 MIPS 索引和演算法,對文件的 FDE 向量進行高效檢索,快速召回一批最相似的候選文件。

3. 重新排序:對召回的候選集,使用原始且更精確的 Chamfer 相似度進行重新排序,以確保最終結果的準確性。

MUVERA 的一個顯著優勢是其 FDE 變換過程與具體資料集無關,這使得它對資料分佈的變化具有很強的穩健性,也非常適合流式資料處理的應用場景。更重要的是,FDE 能夠保證在特定誤差範圍內近似真實的 Chamfer 相似度。因此,經過重排後,MUVERA 能夠確保找到最匹配的多向量表示。

查詢 FDE 建構示意圖:圖示中,每個詞元(token)被映射到一個高維向量。高維空間透過超平面被隨機切割成不同區域。輸出的 FDE 向量中,每個座標塊對應一個區域,其值等於所有落入該區域的查詢向量的座標之和。

文件 FDE 建構示意圖:文件 FDE 的建構過程與查詢類似,區別在於落入同一區域的向量座標是進行平均化處理,而非求和。這種不對稱的設計能夠更準確地捕捉 Chamfer 相似度的特性。

理論基礎

該方法的理論靈感來源於概率樹嵌入,這是幾何演算法理論中的一個強大工具,並針對內積和 Chamfer 相似度進行了適配。

FDE 生成的核心在於對嵌入空間進行隨機劃分。如果查詢和文件中的相似向量恰好落入同一個劃分區域,它們的相似度就可以被高效地近似計算。透過隨機化的劃分方案,可以從機率上保證整體的近似效果。論文中提供了嚴格的理論證明,證實了 FDE 對 Chamfer 相似度的近似能力,為使用單向量代理進行多向量檢索提供了堅實的理論基礎。

實驗結果

在 BEIR 基準測試的多個資訊檢索資料集上,MUVERA 的表現非常出色。實驗表明,相較於之前的頂尖方法(如 PLAID),MUVERA 在顯著降低延遲的同時,獲得了更高的檢索召回率。

主要發現包括:

1. 更高的召回率:與常見的多向量檢索方法(單向量啟發式)相比,MUVERA 在檢索少得多的候選文件(5-20 倍)的情況下,就能達到同等甚至更高的召回率。

圖片

2. 極低的延遲:與高度最佳化的多向量檢索系統 PLAID 相比,MUVERA 在 BEIR 基準測試中的平均召回率高出 10%,而延遲則驚人地降低了 90%。

圖片

此外,實驗還發現 MUVERA 的 FDE 可以透過乘積量化技術進行有效壓縮,在對檢索品質影響極小的情況下,將記憶體佔用減少 32 倍。

結論

MUVERA 是一種新穎、高效的多向量檢索演算法,其近似品質和實際效能都得到了理論和實驗的驗證。透過將多向量搜尋簡化為單向量 MIPS,它充分利用了現有的最佳化搜尋技術,以極高的效率實現了最先進的效能。

這項工作為高效的多向量檢索開闢了新的道路,對於搜尋引擎、推薦系統、RAG 等應用都至關重要。

相關資源

話說回來,MUVERA 這個新方法能有效地提升 RAG 檢索階段的效率,現階段連 Python 函式庫都有了,需要的同學可以試試。

論文地址: http://research.google/blog/muvera-making-multi-vector-retrieval-as-fast-as-single-vector-search/

Chamfer 相似度: http://sciencedirect.com/topics/engineering/chamfer-matching

Python 函式庫: http://github.com/sigridjineth/muvera-py

主標籤:資訊檢索

次標籤:RAG機器學習演算法多向量檢索


上一篇:【萬字長思】AI 時代程式設計師的新定位:人機協作的 6 個核心原則

下一篇:阿里巴巴深夜開源「王牌」Agent!硬槓OpenAI,性能全面超越SOTA!

分享短網址