往下拉回到首頁
在截斷前先做 PCA 讓非 Matryoshka 嵌入向量可以壓縮:BGE-M3 實驗結果

在截斷前先做 PCA 讓非 Matryoshka 嵌入向量可以壓縮:BGE-M3 實驗結果

PCA Before Truncation Makes Non-Matryoshka Embeddings Compressible: Results on BGE-M3

大多數嵌入模型(embedding model)沒有用 Matryoshka 訓練方式,所以直接砍維度通常會毀掉效果。這篇文章測試了一個簡單的替代方案:先在一批嵌入向量上做一次 PCA,把向量旋轉到 PCA 基底空間,然後再截斷。概念很簡單——PCA 會把重要訊號集中在前面幾個維度,所以截斷就不再是隨意亂砍了。用 BGE-M3 的 1024 維向量測試,結果超驚人:512 維時,直接截斷的餘弦相似度掉到 0.707,但先做 PCA 的維持在 0.996;384 維時分別是 0.609 對 0.990。簡單說,這招讓你把嵌入向量壓到原本的一半或三分之一,品質卻幾乎沒損失——如果你在煩惱嵌入向量的儲存空間或推論速度,這絕對值得看。

關鍵字

PCAembedding compressionMatryoshka embeddingsdimension truncationcosine similarityBGE-M3