ScaNN 向量查詢效能總覽

本頁面提供概念總覽,說明如何使用 ScaNN 索引提升向量查詢效能。

ScaNN 索引會使用以樹狀結構量化為基礎的索引。在樹狀結構量化技術中,索引會與量化 (或雜湊) 函式一起學習搜尋樹狀結構。執行查詢時,系統會使用搜尋樹狀結構來剪除搜尋空間,並使用量化來壓縮索引大小。這項修剪作業可加快查詢向量與資料庫向量之間相似度 (即距離) 的評分速度。

如要透過最鄰近查詢達到高每秒查詢次數 (QPS) 和高召回率,您必須以最適合資料和查詢的方式,分割 ScaNN 索引的樹狀結構。

目前這一代高維度嵌入模型的一項常見特徵是,即使維度大幅降低,仍可保留大量資訊,例如只用 20% 的嵌入維度,就能保留 90% 的資訊。為加快這類資料集的處理速度,AlloyDB ScaNN 會自動對已建立索引的向量執行主成分分析 (請參閱下方的 scann.enable_pca),進一步減少向量搜尋的 CPU 和記憶體用量。由於降維仍會導致索引中的召回率略有損失,因此 AlloyDB ScaNN 會先從索引中選取大量 PCA 向量候選項目,然後以原始向量重新排序,藉此補償損失 (請參閱 scann.pre_reordering_num_neighbors)。

後續步驟