人工智慧(AI)為企業提供了全新的數據呈現方式,以便可以大規模進行數據分析與理解。AI 模型經過訓練,可以透過分析文字和其他數據編碼,為向量嵌入(vector embeddings)解讀其語義。這些嵌入代表編碼數據在向量空間中的相對位置,語義相似的嵌入在向量空間中相互接近,而語義不相似的嵌入則距離較遠。透過這種語義理解的編碼,應用於各種類型的數據,結合簡便的分析工具,企業能夠打破傳統數據分析的限制,開啟全新的分析方法。
Google Cloud 在今年九月宣布 BigQuery 向量搜尋全面可用,支援對 BigQuery 資料進行向量相似性搜尋。此功能通常也稱為近似最近鄰搜索,是使用大型語言模型 (LLM) 實現語義搜尋、相似性檢測和檢索增強生成 (RAG) 等眾多新資料和 AI 用例的關鍵。
BigQuery 向量搜尋最初於二月宣布,它整合了資料平台內嵌入的生成、管理和搜索,為異常檢測、多模態搜尋、產品推薦、藥物發現等用例提供無伺服器和整合向量分析解決方案
此外,用於 BigQuery 向量搜尋的倒排檔案索引 (IVF) 索引現在也已普遍可用。此索引使用 k-means 演算法對向量資料進行聚類,並將其與兩部分索引中的倒排行定位器結合,以便有效地搜尋資料的相似嵌入表示。自預覽版發布以來,IVF 包含多項新的增強功能:
- 改進的可擴展性:現在可以索引 100 億個嵌入,從而支援大規模應用程式。
- 保證正確性的託管索引:當底層資料發生變化時,使用現有的 k-means 模型自動更新向量索引。即使在系統完成修改資料的重新索引之前,向量搜尋始終會根據資料的最新突變傳回正確的結果。
- 儲存列:您現在可以在索引中儲存常用列,以避免在搜尋結果中檢索其他資料時進行昂貴的聯結。在結果集基數較高的情況下,此最佳化會產生最顯著的效能改進,例如,當您的查詢資料包含大量嵌入時,或當您需要高 top_k. 例如,對於具有10 億個 96 維嵌入的表,與不使用存儲列相比,使用具有存儲列的向量索引返回 1,000 個最相似的嵌入候選者的速度要快約 4 倍,槽數要少約 200 倍。
- 預先篩選器:結合儲存資料列,可以透過將基底表語句重寫為具有篩選器的查詢來對向量搜尋結果進行預先篩選。與在函數之後添加 WHERE 子句的後過濾相比 VECTOR_SEARCH(),預過濾提高了查詢性能,提高了搜尋質量,並最大限度地降低了丟失結果的風險。
客戶使用 BigQuery 向量搜尋來尋找類似的常見查詢,以加快獲得洞察的時間。如 Vilya 是一家尖端的計算生物技術公司,主要創造新型藥物,以精準地靶向疾病生物學。Vilya 使用 BigQuery 向量搜尋進行原型設計,使用大規模的藥物發現數據負,能簡單地將其推送至生產環境。甚至只需按定價和預算評估工具,可以快速無縫地擴展到以容量計費的模型。
「BigQuery 能夠擴展到搜尋新型大環化合物,以精確定位疾病生物學所需的生物數據大小,這給我們留下了深刻的印象。 BigQuery 的向量搜尋的易用性和可擴展性使我們能夠快速搜尋數十億個此類宏環。」– Patrick Salveson,Vilya 聯合創始人兼首席技術官
Microfusion 宏庭科技身為 Google Cloud 菁英夥伴,曾協助全球零售企業,將數據分析系統轉移至 GCP BigQuery,並結合Vertex AI 量身打造專屬的缺貨推薦系統,在 Vertex AI 建立多個模型,達成客製化推薦需求,不僅成功提升銷售與轉換率,更可以依照客戶習慣,個人化推薦,優化客戶體驗。可參考宏庭科技客戶成功案例,查看更多應用細節。
入門實戰教學
剛開始使用 BigQuery 向量搜尋?不用擔心,以下將帶您一起實戰真實範例。
想像一下,您想要將問題發佈到企業內部問答平台,但在此之前,您想先尋找是否存在與您的問題相似的問答,避免有重複問題產生。假設我們已經產生了問題的嵌入並將其儲存在 <my_posts_questions> 表中。完成後,您可以建立向量索引,並將常用的列(例如標題、內容、標籤)儲存在索引中以獲得更好的效能。
CREATE OR REPLACE VECTOR INDEX `<index_name>`
ON `<my_posts_questions>`(embedding) STORING (title, content, tags) OPTIONS(distance_type=’COSINE’, index_type=’IVF’) |
儘管 VECTOR_SEARCH() 即使沒有向量索引也可以工作,但建立索引通常會帶來更好的查詢效能。準備好後,您可以 VECTOR_SEARCH() 與 ML.GENERATE_EMBEDDING 結合使用來搜尋類似的問題,例如「使用 RSS 的 Android 應用程式崩潰」。為了更好地細化結果,您可以在「標籤」列上使用過濾器來限制搜尋空間。
SELECT query.query, base.title, base.content, distance
FROM VECTOR_SEARCH( ( SELECT * FROM <my_posts_questions> WHERE SEARCH(tags, ‘android’) ), ’embedding’, ( SELECT ml_generate_embedding_result AS embedding, content AS query FROM ML.GENERATE_EMBEDDING( MODEL <LLM_embedding_model>, (SELECT ‘Android app using RSS crashing’ AS content) ) )) |
另外,Google Cloud 最近也發布了一種基於 Google 開發的 ScaNN 預覽版的新索引類型,可以進一步提高搜尋效能。隨著 BigQuery 向量搜尋的發展,它已成為多模態檢索增強生成 (RAG) 解決方案的關鍵組件,該解決方案在成熟的 BigQuery 知識庫之上使用最先進的 Gemini 模型,該知識庫由結構化、非結構化、和多模態資料。
本文內容翻譯並改寫自 Google Cloud 官方部落格,為您提供最前沿的科技趨勢與應用實例。本篇文章深入探討了 AI 如何透過向量嵌入技術重新定義數據分析的可能性,並介紹了 BigQuery 向量搜尋的最新進展,展示其在大規模應用中的強大潛力。無論是語義搜尋、相似性檢測,還是增強生成 (RAG) 等應用場景,這些技術正不斷幫助企業突破傳統數據處理的界限,實現數位轉型的目標。宏庭科技作為 Google Cloud 的菁英合作夥伴,將持續致力於推動這些創新技術的實際應用,協助企業客戶在 AI 驅動的時代中抓住全新的商業契機。若您有興趣了解如何運用 BigQuery 向量搜尋及其他 AI 技術來加速您的數位化進程,歡迎與我們聯繫,宏庭科技期待成為您數位轉型的最佳夥伴。