當知識庫規模達到百萬甚至數億級文檔時,向量索引的存儲和查詢效率成為關鍵瓶頸。向量量化是一類用較低比特表示近似向量的方法,大幅壓縮內存占用并加速相似度計算。PQ(Product Quantization)是其中最著名的方法之一,被Faiss等庫廣泛實現。PQ的思想是將高維向量劃分為多個子向量,然后分別對每個子空間進行K-Means聚類,用簇中心索引代表原向量該部分的取值。比如將128維拆成8個16維子向量,各自訓練256個質心,那么每個子向量就可以用一個256大小的代碼本索引(8位)來表示。整條向量就由8個字節拼成(共表示128維的近似值),相比原始128×4字節(float32)壓縮了約97%。兩個向量的距離可通過預先計算好的查表快速得出近似值,無需逐維計算。實驗證明,使用PQ能在基本不損失召回率的前提下,將向量存儲壓縮幾十倍,并使搜索速度提高數倍。特別是結合分段式倒排(IVF)進一步減少比較次數,實現對非量化索引上百倍的加速。
另一項優化是高效的近似算法