向量搜尋簡介
本文件將概略說明 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 加速。
後續步驟
- 進一步瞭解如何建立向量索引。
- 瞭解如何使用
VECTOR_SEARCH
函式執行向量搜尋。 - 請試試使用向量搜尋功能搜尋嵌入項目教學課程,瞭解如何建立向量索引,然後針對有和沒有索引的嵌入項目執行向量搜尋。
請試試執行語意搜尋和檢索增強生成教學課程,瞭解如何執行下列工作:
- 產生文字嵌入。
- 在嵌入資料上建立向量索引。
- 使用嵌入值執行向量搜尋,找出相似的文字。
- 使用向量搜尋結果來增強提示輸入內容,並改善結果,執行檢索增強生成 (RAG)。
請試試在檢索增強生成管道中剖析 PDF 檔案教學課程,瞭解如何根據剖析的 PDF 內容建立 RAG 管道。