什麼是向量資料庫?

向量資料庫是可讓您儲存、建立索引和查詢向量嵌入或非結構化資料 (例如文字、圖片或音訊) 之數值表示的任何資料庫。

Google Cloud 將這些企業級功能直接整合至代管服務,包括 AlloyDB for PostgreSQLSpannerBigQuery,協助您建構智慧型應用程式,不必管理個別基礎架構。

向量資料庫:解鎖語意搜尋!

什麼是向量嵌入?

向量嵌入是資料的數值表示法,通常定義為浮點數陣列。將文字、圖像或音訊等複雜的非結構化資料,轉換成機器學習模型可處理的格式。

嵌入會將資料對應至向量空間,藉此擷取語意,相似項目會彼此靠近,不相似的項目則會相距較遠。這種空間關係可協助系統根據脈絡和意義,而非僅僅是關鍵字比對,找出資料點之間的關聯。

其他支援的資料類型

雖然某些專用資料庫僅支援向量嵌入,但其他資料庫除了向量嵌入外,也支援許多其他資料和查詢類型。如果想利用豐富的實際資料建構生成式 AI 應用程式,就必須支援各種資料類型和查詢類型。隨著使用向量嵌入進行語意查詢的好處變得顯而易見,大多數資料庫也將新增向量支援。因此,我們確信未來每個資料庫都會成為向量資料庫。

瞭解 Vertex AI 向量搜尋如何助您建構高效能的生成式 AI 應用程式。Vertex AI 的向量搜尋採用 Google 研究開發的 Scalable Nearest Neighbor Search (簡稱 ScaNN) 向量搜尋技術,兼具擴充性與效率,非常適合用來處理大型資料集和即時搜尋需求。歡迎觀看下方影片,進一步瞭解向量搜尋和嵌入,並參閱這份快速入門指南,開始使用這項功能。

觀看影片,瞭解如何運用嵌入、向量搜尋和 RAG,建構 LLM 輔助應用程式。

向量資料庫如何運作?

有效率地查詢大量向量需要專用的索引和搜尋策略,這與傳統文字或數值欄位不同。由於向量沒有單一邏輯順序,向量資料庫會透過下列機制擷取資料:

  • 最鄰近搜尋 (KNN):最常見的用途是找出與查詢向量最接近的「k」個向量。這項技術會使用點積距離、餘弦相似度或歐幾里得距離等距離指標,衡量向量空間中的鄰近程度。
  • 近似最近鄰 (ANN):計算查詢向量與其他所有向量之間的確切距離,可能需要大量運算資源。為降低這項成本,資料庫會使用 ANN 演算法。這些演算法會犧牲少量準確率 (召回率),但可大幅提升搜尋速度,對大多數語意搜尋應用程式來說,這是可接受的取捨。
  • 向量索引:為了加快查詢速度,向量索引會整理資料,將鄰近向量的叢集歸為一組。常見的結構包括清單 (代表向量叢集)、圖表 (將向量連結至鄰點) 和樹狀結構 (分支代表叢集的子集)。在查詢速度、記憶體用量和索引建立時間方面,每種索引類型各有優缺點。
  • 中繼資料篩選:大多數應用程式不只需要語意相似度。舉例來說,使用者可能想搜尋類似「關於魚的溫馨故事」的書籍 (向量搜尋),但將結果限制在「$20 美元以下」的商品 (中繼資料篩選器)。進階向量資料庫會結合這些 SQL 述詞與向量相似度,執行強大的混合型查詢。

向量資料庫的用途

向量嵌入可擷取複雜資料的語意。搭配可有效建立索引和擷取資料的向量資料庫,開發人員就能打造各種智慧型應用程式和資料處理工具。

開發人員可將向量資料庫做為大型語言模型 (LLM) 的外部知識庫。應用程式會在將提示詞傳送給模型前,先擷取相關的專屬背景資訊,藉此減少幻覺,並提供符合事實和準確的領域專屬回覆。這對建構 AI 輔助客服專員、法律文件分析器和內部知識管理系統至關重要。

開發人員可運用向量資料庫,建構超越協同過濾的個人化系統。應用程式可將使用者行為和產品屬性表示為向量,即時找出類似項目,或為使用者推薦符合偏好的內容。這項架構支援電子商務產品建議、內容動態饋給和媒體串流推薦。

與傳統關鍵字搜尋不同,向量資料庫可支援語意搜尋應用程式,瞭解使用者的意圖。開發人員可以建構搜尋體驗,讓使用者透過概念而非確切措辭進行查詢。此外,由於向量可在同一空間中代表不同資料類型,因此您可以建構多模態搜尋工具,讓使用者透過文字說明搜尋圖片,或使用輸入圖片尋找相關文件。

向量資料庫可協助找出大量資料集中的異常模式。建立代表「正常」行為或交易的向量空間後,開發人員就能以程式輔助方式,偵測遠離既有叢集的離群值。對於建構金融詐欺偵測系統、網路安全監控工具,以及 IT 基礎架構健康狀態檢查機制,這項功能至關重要。

在資料工程工作流程中,向量資料庫可協助清理及整合不同資料集。系統可比較顧客記錄或產品資訊的嵌入,即使文字略有不同 (例如「Main St.」與「Main Street」),也能找出重複項目。有助於組織維持單一且準確的資料檢視畫面。

Google Cloud 的向量資料庫

AlloyDB for PostgreSQL

AlloyDB for PostgreSQL 結合 PostgreSQL 的相容性與 Google 的可擴充基礎架構。除了透過標準 pgvector 擴充功能,內建向量嵌入支援外,還採用 Google 的 ScaNN 索引,強化這項功能。這能加快向量查詢速度,並啟用「內嵌篩選」功能,同時評估向量相似度和中繼資料篩選器,進而提升混合型搜尋成效。

範例:房地產混合型搜尋

使用者想在房地產應用程式中尋找符合「氛圍」(例如「採光充足的現代中世紀風格」) 的房屋,同時嚴格遵守硬性限制 (例如「3 間臥室」、「低於 $80 萬美元」和「位於 A 學區」)。

  • 挑戰:標準向量搜尋可能會傳回價格為 $200 萬美元或位於錯誤區域的「中世紀」住宅;標準 SQL 查詢可以依價格篩選,但無法理解「中世紀風格」
  • 解決方案:AlloyDB 的內嵌篩選功能會掃描向量索引,並在單一傳遞中同時檢查 SQL 中繼資料篩選器 (價格、位置)
  • 結果:應用程式在幾毫秒內傳回符合美學和預算的房屋,且不會因後續篩選結果而影響效能

Google Cloud 將向量搜尋功能直接整合至核心資料庫服務,協助您運用現有資料和工作流程,將生成式 AI 投入實際運作。

Spanner

Google 的全球分散式資料庫 Spanner 支援交易應用程式的向量搜尋功能。可透過精確和近似最鄰近演算法,提供高可用性、可擴充的向量搜尋功能。因此,全球應用程式可以實作即時推薦或語意搜尋等功能,同時維持嚴格的一致性和可靠性。

範例:電子商務的即時推薦

一家全球電子商務平台想建構推薦引擎,處理「雨天最佳登山靴」等模糊的使用者搜尋查詢,同時立即確保產品供應情形。

  • 挑戰:傳統的關鍵字比對方式會遺漏相關產品,因為這些產品的說明可能不含確切的搜尋字詞 (例如,說明提到「防水」的產品,可能無法比對到「下雨」的搜尋字詞)。此外,在流量高峰期間,如果需要透過獨立的向量資料庫驗證庫存供應情形,可能會產生延遲,並造成資料一致性風險
  • 解決方案:平台在現有的 Spanner「Products」資料表中新增向量欄,並透過 SQL 使用 Vertex AI 生成嵌入;他們使用 Spanner 的向量搜尋功能執行混合型查詢,找出語意相似的產品,同時強制執行嚴格的庫存檢查 (InventoryCount > 0)
  • 結果:顧客收到準確的個人化產品推薦,保證有現貨,且延遲時間極短,全球一致性高,滿足即時交易所需的一切

BigQuery

BigQuery 可讓您對龐大的資料集執行向量分析,不必將資料移出資料倉儲。您可以使用 VECTOR_SEARCH 函式,透過標準 SQL 執行相似度搜尋。這項功能特別適合用於數據分析用途,例如根據行為將顧客分群,或從數十億列資料中找出類似的產品趨勢。

範例:大規模偵測網路安全威脅

為了找出惡意活動,資安團隊需要分析數 PB 的伺服器記錄。攻擊者通常會稍微修改程式碼,規避完全比對關鍵字搜尋。

  • 挑戰:關鍵字搜尋會遺漏已知攻擊的細微變化 (例如:變更惡意指令碼中的變數名稱)
  • 解決方案:團隊使用 BigQuery 為數十億筆記錄項目生成嵌入,然後執行 VECTOR_SEARCH 查詢,找出所有語意上與已知漏洞攻擊特徵相似的記錄,進而識別出新的攻擊變體
  • 成果:他們使用簡單的 SQL,就能偵測及彙整多年歷來資料的零時差威脅,不必將資料移至專門的向量資料庫

透過 Google Cloud 解決業務難題

新客戶可以獲得價值 $300 美元的免費抵免額,盡情試用各項 Google Cloud 功能。
與 Google Cloud 銷售專員聯絡,深入探討您面臨的特殊難題。

後續行動

運用價值 $300 美元的免費抵免額和超過 20 項一律免費的產品,開始在 Google Cloud 中建構產品與服務。