向量搜尋簡介

本文件將概略說明 BigQuery 中的向量搜尋。向量搜尋是一種使用嵌入物比較相似物件的技術,可用於 Google 產品 (包括 Google 搜尋、YouTube 和 Google Play)。您可以使用向量搜尋功能進行大規模搜尋。當您在向量搜尋中使用向量索引時,可以利用倒轉檔案索引 (IVF) 和 ScaNN 演算法等基礎技術。

向量搜尋是建立在嵌入基礎上。嵌入是高維度數值向量,用來表示特定實體,例如文字或音訊檔案。機器學習 (ML) 模型會使用嵌入來編碼這類實體的語意,方便推理及比較。舉例來說,在聚類、分類和推薦模型中,常見的操作是評估嵌入空間中向量之間的距離,找出語意最相似的項目。

在嵌入空間中,這個語意相似度和距離的概念可透過視覺化方式呈現,讓您瞭解不同項目的繪製方式。舉例來說,獅子等詞彙都代表動物類型,由於它們具有共同的語意特性,因此會在這個空間中彼此靠近。同樣地,卡車和更通用的車輛等字詞也會形成另一個叢集。如下圖所示:

語意相似的概念 (例如「貓」、「狗」和「獅子」) 或「車」、「卡車」和「車輛」等,在嵌入空間中會彼此靠近。

您可以看到動物和車輛叢集彼此相距甚遠。群組之間的間隔說明瞭這個原則:在嵌入空間中,物件越靠近,其語義相似度就越高,距離越遠,語義相似度就越低。

BigQuery 提供端對端體驗,可產生嵌入項目、為內容建立索引,以及執行向量搜尋。您可以單獨完成每項工作,也可以在單一旅程中完成。如需說明如何完成所有這些工作,請參閱「執行語意搜尋和檢索增強生成」一文。

如要使用 SQL 執行向量搜尋,請使用 VECTOR_SEARCH 函式。您可以選擇使用 CREATE VECTOR INDEX 陳述式建立向量索引。使用向量索引時,VECTOR_SEARCH 會使用近似最鄰近搜尋技術來提升向量搜尋效能,但這會導致回溯率降低,因此會傳回較為近似的結果。在沒有向量索引的情況下,VECTOR_SEARCH 會使用暴力搜尋來評估每筆記錄的距離。即使有向量索引,您也可以選擇使用暴力搜尋來取得確切結果。

本文件著重於 SQL 方法,但您也可以在 Python 中使用 BigQuery DataFrames 執行向量搜尋。如需 Python 方法的示範筆記本,請參閱「使用 BigQuery DataFrames 建構向量搜尋應用程式」。

用途

結合嵌入產生和向量搜尋功能,可實現許多有趣的用途。以下是一些可能的用途:

  • 檢索增強生成 (RAG)在 BigQuery 中剖析文件、對內容執行向量搜尋,並使用 Gemini 模型產生自然語言問題的摘要回覆。如需說明此情境的筆記本,請參閱「使用 BigQuery DataFrames 建構向量搜尋應用程式」。
  • 推薦替代品或相符產品:根據客戶行為和產品相似性,推薦替代產品,提升電子商務應用程式的效益。
  • 記錄檔分析:協助團隊主動篩選記錄中的異常狀況,加快調查速度。您也可以使用這項功能為 LLM 增強內容,以改善威脅偵測、鑑識和疑難排解工作流程。如需說明此情境的 Notebook,請參閱「使用文字嵌入 + BigQuery 向量搜尋功能,偵測及調查記錄異常」。
  • 叢集和指定目標:精確區隔目標對象。舉例來說,連鎖醫院可以使用自然語言筆記和結構化資料將病患分組,行銷人員也可以根據查詢意圖指定廣告。如需說明這項情境的 Notebook,請參閱「Create-Campaign-Customer-Segmentation」。
  • 實體解析和去重:清理及整合資料。舉例來說,廣告公司可以刪除重複的個人識別資訊 (PII) 記錄,或是房地產公司可以找出符合的郵寄地址。

定價

VECTOR_SEARCH 函式和 CREATE VECTOR INDEX 陳述式會使用 BigQuery 運算定價

  • VECTOR_SEARCH 函式:系統會根據以量計價或版本定價,向您收取相似搜尋費用。

    • 以量計價:系統會根據在基礎資料表、索引和搜尋查詢中掃描的位元組數向您收費。
    • 版本定價:系統會根據您在預留版本中完成工作所需的時間長度向您收費。較大且複雜的相似度計算作業會產生較高的費用。

  • CREATE VECTOR INDEX 陳述式:只要索引表格資料的總大小低於每個機構的限制,建立和重新整理向量索引所需的處理作業就不會產生費用。如要支援超過此限制的索引,您必須自行提供保留空間,以便處理索引管理工作。

儲存空間也是嵌入和索引的考量因素。以嵌入和索引形式儲存的位元組數量,會產生動態儲存空間費用

  • 向量索引在啟用時會產生儲存空間費用。
  • 您可以使用 INFORMATION_SCHEMA.VECTOR_INDEXES 檢視畫面查看索引儲存空間大小。如果向量索引的涵蓋率尚未達到 100%,您仍會針對已建立索引的內容付費。您可以使用 INFORMATION_SCHEMA.VECTOR_INDEXES 檢視畫面查看索引涵蓋範圍。

配額與限制

詳情請參閱「向量索引限制」。

限制

包含 VECTOR_SEARCH 函式的查詢不會由 BigQuery BI Engine 加速。

後續步驟