由于預訓練的AI模型唾手可得,向量數(shù)據(jù)庫重新煥發(fā)了生機。雖然向量數(shù)據(jù)庫概念已存在了幾十年,但直到現(xiàn)在,在大型語言模型(LLM)盛行的這個時代,向量數(shù)據(jù)庫才能充分發(fā)揮潛力。
向量數(shù)據(jù)庫在推薦系統(tǒng)、圖像相似度搜索、異常檢測、人臉檢測和自然語言處理等應用領域特別有用。那么,向量數(shù)據(jù)庫到底是什么?它是如何工作的?何時應該使用它來增強AI的能力?
向量數(shù)據(jù)庫的定義
向量數(shù)據(jù)庫是一種通過使用向量來存儲信息的方法。與將數(shù)據(jù)組織成表格列表的平常數(shù)據(jù)庫不同,向量數(shù)據(jù)庫通過高維向量組織數(shù)據(jù)。這些向量隨后可以在數(shù)學空間中表示為向量嵌入(vector embeddings)。
向量數(shù)據(jù)庫之所以很重要,是由于它們包含這些向量嵌入,并提供索引、距離度量和基于向量嵌入的相似度搜索等功能。
向量數(shù)據(jù)庫是很容易與預訓練模型集成的服務,其中許多需要API密鑰才能訪問服務。
向量嵌入的定義
簡單地說,向量嵌入(簡稱嵌入)是主題或單詞的數(shù)字表示。比如說,二維嵌入可能看起來像“2,-3”,其中2表示沿x軸的正方向上的2個單位,而-3表示沿y軸的負方向上的3個單位。三維嵌入看起來像“2,- 3,5”,其中5表示沿z軸正方向的5個單位。
擁有更多的維度可以提供更多的上下文來了解某個數(shù)據(jù)應該是什么樣。向量數(shù)據(jù)庫中所使用的維度數(shù)量就自然語言處理而言常常在100個到300個,就計算機視覺而言常常是數(shù)百個。
向量嵌入的生成需要使用向量嵌入模型和工具,比如BERT、CNN和RNN。
為什么向量嵌入很重要?
向量嵌入能夠在數(shù)學空間繪制數(shù)據(jù)位置使計算機能夠理解數(shù)據(jù)點之間的關系以及它們彼此之間的相關性有多強。通過了解每個數(shù)據(jù)點之間的關聯(lián)程度,AI模型就能夠像人類一樣結合上下文理解查詢。
如果不理解語義或上下文,AI可能會提供邏輯正確但上下文錯誤的答案。比如說,AI可能會將“He had a heavy heart as He walked away”這句話誤解為一個患有心臟病的人,而不是一個感到悲傷或沉重的人。
向量數(shù)據(jù)庫如何幫助提升AI?
向量嵌入是訓練各類AI模型的重要組成部分。擁有一個可以存儲、索引和查詢向量嵌入的專門數(shù)據(jù)庫對于最大限度地發(fā)揮使用向量嵌入的好處必不可少。此外,向量數(shù)據(jù)庫作為一種快速、可靠、可擴展的數(shù)據(jù)庫,可以不斷幫助發(fā)展和訓練AI模型,從而提升您的AI。
由于向量數(shù)據(jù)庫可以擴展AI模型的功能,企業(yè)和組織可以將向量數(shù)據(jù)庫用于各種應用,包括如下:
搜索引擎:有時,人們在查詢時不知道使用哪些關鍵字。向量數(shù)據(jù)庫可以通過分析上下文,并檢索與查詢相關性最強的最接近的關鍵字,幫助系統(tǒng)理解您的查詢。
推薦系統(tǒng):鑒于向量數(shù)據(jù)庫在存儲和檢索數(shù)據(jù)方面非常有效,并結合大型語言模型和記憶力,AI系統(tǒng)可能會逐漸了解人們的喜好。然后,應用程序可以自動查詢這些信息,推薦某人可能感興趣的各種產(chǎn)品。
圖像和視頻分析:就視頻和圖像嵌入模型而言,AI模型可進行微調(diào),以便輔以圖像,查找與查詢相似的內(nèi)容。目前,許多在線購物應用程序和網(wǎng)站都在實施這一功能。
異常檢測:通過將動作記錄為嵌入,AI模型可以基于常態(tài)來檢測異常和某些異常值,從而提高安全性。AI異常檢測現(xiàn)在是一種用于欺詐檢測、系統(tǒng)監(jiān)控和網(wǎng)絡入侵的流行工具。
向量數(shù)據(jù)庫的工作原理
從生成向量嵌入到從向量數(shù)據(jù)庫查詢數(shù)據(jù),您的數(shù)據(jù)經(jīng)歷了三個步驟:
1. 向量嵌入的創(chuàng)建:基于數(shù)據(jù)類型,向量嵌入模型用來生成有待索引的向量嵌入。這些嵌入模型將文字、圖像、視頻和音頻轉(zhuǎn)換成數(shù)字/嵌入。
2. 索引:一旦向量嵌入已生成,它們現(xiàn)在可以存儲在Pinecone、Milvus和Chroma之類的向量數(shù)據(jù)庫上。這些向量數(shù)據(jù)庫使用各種算法,比如產(chǎn)品量化(PQ)和位置敏感散列(LSH),對每個嵌入進行索引,以便快速有效地存儲和檢索數(shù)據(jù)。
3. 查詢:當應用程序發(fā)出查詢時,該查詢必須先經(jīng)過用于生成存儲在向量數(shù)據(jù)庫上的數(shù)據(jù)的同一個向量嵌入模型。生成的向量查詢隨后被放到向量數(shù)據(jù)庫上,然后檢索最接近的向量作為最合適的查詢結果。
流行的向量數(shù)據(jù)庫
隨著公開可用的預訓練模型呈爆炸式增長,向量數(shù)據(jù)庫隨著這些模型的功能增加和微調(diào)速度而迅速流行起來。由于用戶對向量數(shù)據(jù)庫的需求很大,許多公司已經(jīng)開發(fā)了自己的向量數(shù)據(jù)庫服務,下面是一些最受歡迎的向量數(shù)據(jù)庫:
Pinecone:一種為快速相似度搜索而設計的云原生向量數(shù)據(jù)庫。它具有高可擴展性、分析能力和實時洞察力,非常適合推薦系統(tǒng)和圖像搜索。
Milvus:一種著眼于相似度搜索和AI應用的開源向量平臺。它為高維向量提供了快速有效的索引和搜索功能。此外,Milvus支持多種索引算法,并為各種編程語言提供SDK。
Redis:一種高性能向量數(shù)據(jù)庫,能夠支持實時應用程序、會話管理和高流量網(wǎng)站。Redis經(jīng)常用于實時分析、相似度搜索和推薦系統(tǒng)。
Weaviate:提供模式發(fā)現(xiàn)、實時更新、語義搜索和數(shù)據(jù)上下文化。由于這些功能,Weaviate經(jīng)常被用來為應用程序創(chuàng)建個性化的體驗系統(tǒng)。
向量數(shù)據(jù)庫的未來
由于圖像、視頻和文本等高維數(shù)據(jù)類型不斷增多,向量數(shù)據(jù)庫將在改進和擴展當前AI模型的功能方面發(fā)揮至關重要的作用。通過向量數(shù)據(jù)庫的不斷發(fā)展,我們有望在醫(yī)療、金融、電子商務和網(wǎng)絡安全等領域獲得更好的服務。
如果您想親自體驗和嘗試向量數(shù)據(jù)庫,可以嘗試安裝Auto-GPT,并實現(xiàn)像Pinecone這樣的向量數(shù)據(jù)庫。當然,您需要API密鑰才能使用其服務。