使用者希望他們遇到的每個應用程式和網站都具有搜尋功能。然而,超過80%的業務資料是非結構化的,以文本、圖像、音頻、視訊或其他格式存儲。是以,我們需要一種跨非結構化資料的搜尋方式。
什麼是矢量資料庫(vector database)?
矢量資料庫(vector database),也叫向量資料庫,是一種以矢量或資料點的數學表示形式存儲資料的資料庫類型。得益于自然語言處理和計算機視覺方面的發展,人工智能和機器學習使這種“将非結構化資料轉化為數字表示(矢量)的方式”成為可能。
矢量相似性搜尋(Vector Similarity Search),簡稱VSS,它是矢量資料庫的一個關鍵特征,是在矢量資料庫中尋找與給定查詢矢量相似的資料點的過程。VSS是一種進階搜尋方法,用于衡量不同資料之間的相似性。雖然它适用于結構化資料,但在比較非結構化資料(例如圖像、音頻或長文本)的相似性時,VSS确實表現更出色。流行的VSS用途包括推薦系統、圖像和視訊搜尋、自然語言處理和異常情況檢測。例如,如果要建立一個推薦系統,則可以使用VSS來尋找并推薦給使用者感興趣或者相似的産品。
如何從圖像或文本生成矢量?
這就是 AI/ML 發揮作用的地方。
預訓練機器學習模型的廣泛應用使得“将任何類型的非結構化資料(圖像、音頻、長文本)轉換為矢量嵌入”變得簡單。例如,專注于自然語言了解(NLU)的初創公司Hugging Face提供對數百個最先進模型的免費通路,這些模型将原始文本資料轉換為其矢量表示(嵌入)。
這些模型的巧妙之處在于,隻有當兩個句子的含義在語義上相似時,為兩個句子生成的嵌入才會彼此 "接近"。
二維矢量空間中矢量嵌入的簡化表示
在上圖中,你可以了解句子的嵌入是如何相關的。如果您檢視為{與“手機”相關的句子}生成的嵌入,您會注意到它們彼此“接近”(參見圖表的左上部分)。更重要的是,這兩種嵌入都明顯遠離為{與食品補充劑産品相關的句子}生成的嵌入(圖表的右下部分)。嵌入之間的“距離”代表了它們的語義相似性,甚至有些模型還可以捕捉多種語言句子的語義相似性。在計算機視覺領域,有一個圖形庫:Torchvision,一個用于計算機視覺的PyTorch庫。它提供了許多預訓練模型,可用于{為給定圖像生成矢量}。與Hugging Face模型類似,隻有當圖像在視覺上相似時,Torchvision為兩幅圖像生成的嵌入才會彼此接近。開發人員可以在他們的應用程式中利用這些免費模型。
但是,生成矢量表示或嵌入隻是第一步。你需要一個資料庫來存儲矢量、為它們建立索引并執行矢量相似性搜尋。
使用Redis Enterprise作為矢量資料庫
矢量相似性搜尋的核心是存儲、索引和查詢矢量資料的能力,這些是矢量資料庫所需的基本功能。
Redis企業版的VSS功能是作為RediSearch子產品的新功能建構的,它允許開發人員像在 Redis哈希中存儲其他任何字段一樣輕松地存儲矢量。它提供在大型矢量空間中執行低延遲搜尋所需的進階索引和搜尋功能,通常範圍從數萬到數億個分布在多台機器上的矢量。
1.實時搜尋性能
搜尋和推薦系統必須運作得非常快。Redis Enterprise中的VSS功能保證了低搜尋延遲,無論資料集合是數萬個還是數億個對象,以及是否分布在多個資料庫節點上。
2.内置容錯和彈性
為確定您的搜尋應用程式永遠不會出現停機,Redis Enterprise使用無共享叢集架構。它在所有級别都具有容錯能力,在流程級别、單個節點和跨基礎設施可用性區域具有自動故障轉移。為確定您的非結構化資料和矢量永遠不會丢失,Redis Enterprise 包括可調的持久性和災難恢複機制。
3.降低架構和應用程式的複雜性
如果您正在使用Redis滿足緩存需求。與其啟動另一個昂貴的單點解決方案,不如擴充您的資料庫以在您的應用程式中利用VSS。開發人員可以像在Redis 哈希或JSON對象中存儲任何其他字段一樣輕松地存儲矢量。
4.跨雲和地域的靈活性
可以選擇資料庫的運作位置。Redis Enterprise可以部署在任何地方、任何雲平台、本地或多雲或混合雲架構中。
親身體驗我們的 Redis VSS 示範
我們提供一個點選時尚産品搜尋器,此示範使用 Redis Enterprise 的内置矢量搜尋功能來展示如何使用圖像和文本等非結構化資料來建立強大的搜尋引擎。您也可以聯系虹科雲科技為您示範!
Redis VSS的用例
1.推薦系統
Redis Enterprise幫助推薦引擎以低延遲向使用者提供最新、相關性高的推薦,以幫助他們找到與購物者喜歡的産品相似的産品。
2.文獻檢索
Redis Enterprise使用自然語言和語義搜尋,可以更輕松地從大量文檔中發現和檢索資訊。
3.AI問答
Redis Enterprise幫助問答系統利用來自OpenAI和Cohere的流行模型在知識庫中利用語義搜尋和生成AI工作流。
Redis VSS的特征
1.矢量索引算法
Redis Enterprise在索引資料結構中管理矢量,以實作平衡搜尋速度和搜尋品質的智能相似性搜尋。根據您的資料和用例,從兩種流行的技術中進行選擇,FLAT(一種蠻力方法)和HNSW(一種更快的近似方法)。
2.矢量搜尋距離度量
Redis Enterprise使用距離度量來衡量兩個矢量之間的相似性。從三個流行的名額中選擇—歐幾裡得、内積和餘弦相似度—用于計算兩個矢量“接近”或“相距”的程度。
3.強大的混合過濾
利用Redis Enterprise查詢和搜尋中可用的全套搜尋功能。通過将矢量相似度的強大功能與更傳統的數字、文本和标簽過濾器相結合來增強您的工作流程。将更多業務邏輯合并到查詢中并簡化用戶端應用程式代碼。
4.實時更新
實時搜尋和推薦系統會生成大量不斷變化的資料,新圖像、文本、産品或中繼資料等……随着資料集的不斷變化,Redis Enterprise可以無縫地對搜尋索引執行更新、插入和删除,減少資料停滞所帶來的影響。
5.矢量範圍查詢
傳統的矢量搜尋是通過找到“前K個”最相似的矢量來執行的。Redis Enterprise還支援在預定義的相似性範圍或替代門檻值内發現相關内容,并提供更靈活的搜尋體驗。
“借助Redis VSS,我們可以為客戶提供矢量搜尋,并确信它可靠的、速度極快的。與我們最初基于Lucene的實施相比,我們發現延遲減少了80%。”
——Jacky,Relevance AI 首席執行官
虹科是Redis企業版資料庫的中國區戰略合作夥伴,了解更多【企業級資料庫解決方案】及體驗【Redis VSS 示範】,歡迎前往虹科雲科技官網!