向量數(shù)據庫最初是為(wèi)了解決大(dà)規模數(shù)據的相似性搜索和(hé)推薦問題而設計(jì)的,比較著名的有(yǒu)Annoy和(hé)FAISS等。随着互聯網時(shí)代海量數(shù)據的爆炸式增長,傳統搜索引擎在處理(lǐ)這些(xiē)數(shù)據時(shí)顯得(de)力不從心,而向量數(shù)據庫憑借其高(gāo)效的數(shù)據表達和(hé)檢索能力迅速成為(wèi)推薦系統的核心引擎。
在大(dà)語言模型興起之前,向量數(shù)據庫已經被廣泛應用于搜索和(hé)推薦場(chǎng)景。它通(tōng)過将數(shù)據向量化,實現對語義級别的理(lǐ)解和(hé)匹配。然而,随着ChatGPT等大(dà)型模型的出現,人(rén)工智能産業正在經曆重塑,同時(shí)也凸顯了向量數(shù)據庫的優勢。
大(dà)語言模型雖然在知識廣度方面具有(yǒu)優勢,但(dàn)對于領域知識卻有(yǒu)一定的局限性。而集成向量數(shù)據庫的語義搜索和(hé)分析能力,則能夠彌補這一缺陷,提升大(dà)語言模型的知識應用能力。當前,向量數(shù)據庫正在加速演進,有(yǒu)望使大(dà)語言模型在實際場(chǎng)景中發揮更大(dà)的價值。
圖1 向量數(shù)據庫應用流程
圖源:https://www.pinecone.io/learn/vector-database/
向量數(shù)據庫是一類專門(mén)存儲向量數(shù)據的數(shù)據庫。所謂的向量數(shù)據是由數(shù)值向量組成的數(shù)據集合,每個(gè)向量由一組有(yǒu)序的數(shù)值組成,這些(xiē)數(shù)值可(kě)以是實數(shù)或離散值。可(kě)以将其簡單地理(lǐ)解為(wèi)一個(gè)矩陣,這些(xiē)向量通(tōng)常來(lái)源于各類數(shù)據的轉換,如語音(yīn)、文字、圖片等。
在向量數(shù)據庫中,主要存儲的是向量數(shù)據。然而,具體(tǐ)包含哪些(xiē)數(shù)據類型還(hái)取決于數(shù)據庫的設計(jì)。例如,Milvus不僅僅存儲向量數(shù)據,還(hái)可(kě)以存儲大(dà)部分關系型數(shù)據庫中的數(shù)據內(nèi)容。在人(rén)工智能領域,隻有(yǒu)将現實世界中的事物轉化為(wèi)向量,才能進行(xíng)計(jì)算(suàn),一切皆可(kě)向量化。舉個(gè)例子,“我愛(ài)學習”可(kě)以被轉化為(wèi)向量表示:
我:[0.2,0.35,0.26,...,0.36,0.38,0.53]
愛(ài):[0.7,0.935,0.526,...,0.346,0.238,0.653]
學習:[0.42,0.635,0.226,...,0.436,0.838,0.053]
通(tōng)常使用預訓練模型将圖片、語音(yīn)、文字等轉化為(wèi)向量。不同的應用場(chǎng)景選擇不同的模型,例如文本可(kě)以使用M3e模型,圖片可(kě)以采用CLIP模型。這些(xiē)預訓練模型可(kě)以看作(zuò)是複雜的函數(shù),輸入模型的變量後,可(kě)以得(de)到對應的輸出向量。這些(xiē)向量經過一定的技(jì)術(shù)存儲到向量數(shù)據庫中(如圖1所示),用戶就可(kě)以進行(xíng)快速檢索了。當然,用戶的輸入可(kě)能是圖片或文字等,查詢的前提是需要将其轉化為(wèi)向量。為(wèi)了采用統一的标準表達數(shù)據,通(tōng)常會(huì)使用相同的預訓練模型進行(xíng)向量轉化。
圖2 向量數(shù)據的組織方式圖解
向量數(shù)據庫與傳統數(shù)據庫的不同之處在于,我們通(tōng)常在搜索中使用關鍵字搜索和(hé)全文搜索,搜索結果一定是滿足查詢條件的。然而,向量數(shù)據庫的查詢結果不一定完全符合條件,而是相對符合條件的。具體(tǐ)來(lái)說,當搜索內(nèi)容是“小(xiǎo)明(míng)的生(shēng)日是什麽時(shí)候”時(shí),查詢的結果可(kě)能是“小(xiǎo)明(míng)是1992年11月1日出生(shēng)”,這可(kě)能是數(shù)據庫中最符合條件的查詢結果,因此可(kě)以認為(wèi)該查詢是近似最相鄰的。
過去,當我們忘記了一個(gè)文件的名稱,隻記得(de)大(dà)緻內(nèi)容時(shí),很(hěn)難找到該文件。然而,向量數(shù)據庫的出現解決了這個(gè)問題。我們可(kě)以将文件、圖片、語音(yīn)等非結構化數(shù)據存儲到向量數(shù)據庫中,通(tōng)過文字、語音(yīn)、圖片等作(zuò)為(wèi)查詢條件,可(kě)以根據查詢內(nèi)容而不是文件名來(lái)搜索最符合條件的結果。這就是向量數(shù)據庫的魅力,而傳統數(shù)據庫無法實現這一點。
電(diàn)商應用通(tōng)常利用用戶的曆史行(xíng)為(wèi)數(shù)據生(shēng)成用戶向量,通(tōng)過計(jì)算(suàn)這些(xiē)用戶向量之間(jiān)的相似度,實現個(gè)性化商品推薦。我們經常能感受到這種推薦,比如在浏覽某個(gè)商品後,電(diàn)商會(huì)向我們推薦類似的物品。類似地,短(duǎn)視(shì)頻應用也使用相同的方法,向用戶推薦視(shì)頻。這些(xiē)背後都是将數(shù)據轉化為(wèi)向量,存儲到向量數(shù)據庫中,以便後續的查詢和(hé)推薦。
人(rén)臉圖像經過向量化處理(lǐ)後,可(kě)以快速計(jì)算(suàn)兩張人(rén)臉圖像向量的相似度,以輔助識别是否為(wèi)同一人(rén)。例如,銀行(xíng)應用使用攝像頭采集客戶的人(rén)臉圖像,通(tōng)過運算(suàn)提取面部特征并完成向量化。随後,與存儲在數(shù)據庫中的人(rén)臉向量進行(xíng)比對,判斷是否為(wèi)同一人(rén),實現快速驗證。
向量數(shù)據庫在社交媒體(tǐ)分析領域支持相似性查詢和(hé)聚合操作(zuò),能夠快速識别和(hé)提取社交媒體(tǐ)數(shù)據中的模式和(hé)趨勢,包括情感分析、主題建模和(hé)社區(qū)發現等。
向量數(shù)據庫的興起依賴于大(dà)模型的發展,那(nà)麽如何将它們結合起來(lái)解決大(dà)模型的知識缺乏問題呢?
首先,可(kě)以将行(xíng)業內(nèi)的非結構化知識(例如長文本)進行(xíng)分段處理(lǐ),然後使用預訓練模型生(shēng)成相應的向量,并将其存儲在向量數(shù)據庫中,從而構建外部知識庫。
在使用大(dà)模型進行(xíng)行(xíng)業問題回答(dá)時(shí),可(kě)以快速加載和(hé)查詢向量數(shù)據庫中的文本向量數(shù)據,這些(xiē)數(shù)據可(kě)以作(zuò)為(wèi)大(dà)模型的外部知識輸入。簡單來(lái)說,當你(nǐ)獲取到某個(gè)知識,比如'小(xiǎo)明(míng)是一個(gè)程序員',你(nǐ)可(kě)以将這個(gè)知識存儲在向量數(shù)據庫中,然後再問大(dà)模型,'小(xiǎo)明(míng)是做(zuò)什麽的?',它肯定會(huì)回答(dá)'小(xiǎo)明(míng)是程序員'。
向量數(shù)據庫的出現為(wèi)非結構化數(shù)據的搜索提供了新的解決方案,同時(shí)與大(dà)模型的結合也為(wèi)解決大(dà)模型知識缺乏問題提供了有(yǒu)效手段。
圖3 向量數(shù)據庫與大(dà)模型結合的流程圖
(圖片來(lái)源于網絡)
根據 VectorDBBench.com 的數(shù)據,在2023年7月的國産向量數(shù)據庫排行(xíng)榜中,排名前十的向量數(shù)據庫分别為(wèi):Milvus、Milvus Cloud、Tencent Cloud VectorDB、Zilliz Cloud、TensorDB、cVector、Om-iBASE、Vearch、Transwarp Hippo 和(hé) Proxima。它們的具體(tǐ)得(de)分如下表所示:表1 2023年7月國産向量數(shù)據庫排行(xíng)榜
● Milvus是國內(nèi)首個(gè)支持海量向量數(shù)據存儲和(hé)查詢的開(kāi)源向量數(shù)據庫,具有(yǒu)高(gāo)性能、高(gāo)擴展性和(hé)易用性強的特點。
● Milvus Cloud是Milvus的雲服務版本,提供了雲端向量數(shù)據庫服務,可(kě)以快速搭建雲端向量數(shù)據庫平台,支持多(duō)種數(shù)據源接入和(hé)多(duō)種查詢語言,同時(shí)還(hái)提供了可(kě)視(shì)化界面和(hé)API接口,方便用戶進行(xíng)數(shù)據管理(lǐ)和(hé)查詢。
● Tencent Cloud VectorDB是騰訊雲推出的向量數(shù)據庫産品,具有(yǒu)高(gāo)性能、高(gāo)擴展性和(hé)高(gāo)安全性的特點,支持多(duō)種數(shù)據類型和(hé)多(duō)種查詢語言。
● Zilliz Cloud是一個(gè)向量數(shù)據庫雲平台,支持多(duō)種數(shù)據類型和(hé)多(duō)種查詢語言,具有(yǒu)高(gāo)性能、高(gāo)擴展性和(hé)高(gāo)安全性的特點。
● TensorDB是一個(gè)分布式向量數(shù)據庫系統,具有(yǒu)高(gāo)性能、高(gāo)擴展性和(hé)易用性強的特點,支持多(duō)種數(shù)據類型和(hé)多(duō)種查詢語言。
數(shù)據庫的發展經曆了從文件系統到關系數(shù)據庫再到分布式數(shù)據庫和(hé)NoSQL數(shù)據庫的演變,不斷提高(gāo)了數(shù)據管理(lǐ)和(hé)處理(lǐ)的效率及可(kě)靠性。這為(wèi)各行(xíng)業的信息化建設提供了強有(yǒu)力的支持。作(zuò)為(wèi)一種新興的數(shù)據庫技(jì)術(shù),向量數(shù)據庫帶來(lái)了革命性的改進,為(wèi)數(shù)據存儲和(hé)檢索提供了更高(gāo)效、更強大(dà)、更靈活的能力。
向量數(shù)據庫具備快速存儲和(hé)檢索大(dà)規模向量的能力,加速了複雜數(shù)據的查詢和(hé)匹配過程。它還(hái)支持高(gāo)級的數(shù)據分析和(hé)挖掘功能,可(kě)以進行(xíng)相似性搜索、聚類分析等複雜操作(zuò)。此外,向量數(shù)據庫具有(yǒu)良好的數(shù)據存儲和(hé)擴展性,可(kě)以應對快速增長的數(shù)據量和(hé)需求變化。
綜上(shàng),向量數(shù)據庫作(zuò)為(wèi)一種創新的數(shù)據庫技(jì)術(shù),具有(yǒu)許多(duō)優勢和(hé)廣泛的應用前景。它将進一步推動數(shù)據管理(lǐ)和(hé)分析的發展,助力各行(xíng)業實現更高(gāo)效、更智能的信息化建設。