在 AlloyDB AI 中選擇向量索引

本頁說明 AlloyDB AI 向量搜尋策略,並解釋各策略的適用時機。根據預設,AlloyDB 會使用 K 近鄰搜尋 (KNN) 尋找與查詢類似的向量。向量索引會實作稱為「近似最鄰近」(ANN) 的搜尋策略。建立向量索引時,AlloyDB AI 會使用 ANN,效能優於 KNN。請注意,選取向量索引時,您需要平衡查詢延遲和召回率。

召回率可衡量搜尋功能擷取特定查詢所有相關項目的效率。舉例來說,假設您有 100 個嵌入內容,每個內容都代表資料庫中的實體。您可以使用目標向量查詢嵌入項目,並將結果限制為 10 個。KNN 向量搜尋會使用暴力計算方法找出 10 個最接近的確切向量,因此召回率為 100%。如果未建立或選擇向量搜尋索引,AlloyDB AI 預設會使用這個方法。在 PostgreSQL 適用的 AlloyDB 中建立向量索引時,系統通常會使用 ANN,這可能會根據相似度分割向量,以利加快擷取速度。因此,使用 ANN 時,先前範例中傳回的 10 個向量,可能不是距離最接近的 10 個向量。如果檢索到的 10 個向量中,只有 8 個是空間中最接近查詢向量的向量,則召回率為 80%。

查詢延遲:定義搜尋結果的生成速度。舉例來說,延遲時間的計算依據是您提交查詢後,系統在搜尋中花費的時間,以及傳回向量的時間。

選擇搜尋策略

在 AlloyDB 中執行向量搜尋時,請選擇下列其中一種搜尋策略:

搜尋策略 說明 用途
K-近鄰演算法 (KNN)

這項演算法會找出與指定查詢資料點最接近的 k 個資料點。如果您在執行向量搜尋時未建立索引,系統預設會執行 KNN 搜尋。

如要進一步提升 KNN 搜尋的效能,請將嵌入欄位和與查詢相關的其他欄位,新增至資料欄引擎中的資料欄存放區。您可以手動新增資料欄,也可以使用自動分欄功能新增資料欄

  • 您的應用程式對準確度非常敏感,需要最接近的完全相符結果。
  • 向量數量少於 100,000 個。
最鄰近搜尋 (ANN) 這項演算法會找出最接近的資料點。ANN 會根據相似性,將現有顧客資料點分成小群組。
  • 您的應用程式需要低延遲。
  • 您有超過 100,000 個向量。

Google 建議您建立向量索引,盡量提升向量搜尋查詢的效能。如要進一步瞭解如何使用 ANN 索引進行相似性搜尋,請參閱「使用 ScaNN 建立索引」。

如要加快 KNN 篩選搜尋速度,請使用資料欄引擎

後續步驟