今年AI大模型應(yīng)用呈井噴式發(fā)展,其中,LangChain、Haystack等端到端大語(yǔ)言模型應(yīng)用框架更是將向量數(shù)據(jù)庫(kù)推出了新熱點(diǎn)。
向量數(shù)據(jù)庫(kù)(vector database,也有人稱(chēng)矢量數(shù)據(jù)庫(kù)),簡(jiǎn)單地說(shuō),它們是以向量格式管理、存儲(chǔ)和檢索數(shù)據(jù)的數(shù)據(jù)庫(kù)。
因?yàn)樗谔幚砀呔S數(shù)據(jù)方面具有先天優(yōu)勢(shì),從圖像處理到推薦系統(tǒng),向量數(shù)據(jù)庫(kù)無(wú)疑是幕后的英雄。它的主要功能包括:
管理:向量數(shù)據(jù)庫(kù)以原始數(shù)據(jù)形式處理數(shù)據(jù),能夠有效地組織和管理數(shù)據(jù),便于AI模型應(yīng)用。
存儲(chǔ):能夠存儲(chǔ)向量數(shù)據(jù),包括各種AI模型需要使用到的高維數(shù)據(jù)。
檢索:向量數(shù)據(jù)庫(kù)特別擅長(zhǎng)高效地檢索數(shù)據(jù),這一個(gè)特點(diǎn)能夠確保AI模型在需要的時(shí)候快速獲得所需的數(shù)據(jù)。這也是向量數(shù)據(jù)庫(kù)能夠在一些推薦系統(tǒng)或者檢索系統(tǒng)中得到應(yīng)用的重要原因。
因此,我們說(shuō)向量數(shù)據(jù)庫(kù)讓AI有了記憶,這個(gè)記憶不僅僅是記錄存儲(chǔ)、也包括檢索和管理。就像人類(lèi)的記憶一樣,我們通過(guò)同學(xué)的畢業(yè)照總是能夠認(rèn)得這個(gè)人是誰(shuí);我們?cè)诤团笥蚜奶斓臅r(shí)候也常常會(huì)一起回憶過(guò)去。
向量數(shù)據(jù)庫(kù)的核心是通過(guò)使用數(shù)學(xué)模型來(lái)管理向量數(shù)據(jù)。
那么什么又是向量?簡(jiǎn)單地說(shuō),向量是一個(gè)既有方向又有大小的數(shù)字對(duì)象。在向量數(shù)據(jù)庫(kù)中,向量可以用于表示復(fù)雜的數(shù)據(jù),例如:圖像、文本。
每個(gè)數(shù)據(jù)片段都被轉(zhuǎn)換成高維空間中的向量管理起來(lái)。當(dāng)我們需要查找相似的數(shù)據(jù)片段時(shí),數(shù)據(jù)庫(kù)不需要遍歷篩選選每個(gè)條目。而是通過(guò)計(jì)算向量之間的距離來(lái)匹配,向量越接近,數(shù)據(jù)就越相似。這種方式非常高效,通過(guò)這種方式檢索數(shù)據(jù)可以比傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)更快地處理大批量數(shù)據(jù)。
下面是個(gè)文本向量存儲(chǔ)的示例圖:
下面是圖片向量化存儲(chǔ)與檢索的示例圖:
大家都知道,通用大模型的運(yùn)行涉及巨大的計(jì)算資源,因此許多大模型都基于MaaS,私有化成本很高。與之相矛盾的是在具體行業(yè)大模型應(yīng)用中往往對(duì)數(shù)據(jù)安全要求高,并且需要與相關(guān)業(yè)務(wù)或領(lǐng)域知識(shí)深入融合,才能做到安全、專(zhuān)業(yè)。LangChain等大模型應(yīng)用框架為行業(yè)大模型應(yīng)用提供了一個(gè)經(jīng)典解決方案,而開(kāi)源的向量數(shù)據(jù)庫(kù)又為L(zhǎng)angChain等大模型應(yīng)用解決方案提供了基礎(chǔ)支撐,其實(shí)向量數(shù)據(jù)庫(kù)在許多應(yīng)用場(chǎng)景(如:企業(yè)知識(shí)庫(kù)、推薦系統(tǒng)、檔案管理等)也非常有用。因此,向量數(shù)據(jù)庫(kù)也成為大模型應(yīng)用發(fā)展的一個(gè)熱門(mén)技術(shù)。
開(kāi)源社區(qū)對(duì)向量數(shù)據(jù)庫(kù)的發(fā)展功不可沒(méi),許多開(kāi)源向量數(shù)據(jù)庫(kù)項(xiàng)目在性能、靈活性和魯棒性方面表現(xiàn)都非常優(yōu)秀,下面列舉8個(gè)目前最佳的開(kāi)源向量數(shù)據(jù)庫(kù)項(xiàng)目,這些開(kāi)業(yè)項(xiàng)目應(yīng)該能夠?yàn)槟愕腁I解決方案提供最佳技術(shù)選型。
Chroma
https://github.com/chroma-core/chroma
Chroma是一個(gè)開(kāi)源嵌入式向量數(shù)據(jù)庫(kù)?;贑hroma可以輕松構(gòu)建LLM應(yīng)用程序。Chroma的設(shè)計(jì)非常簡(jiǎn)單、易用、靈活,可以滿(mǎn)足各種場(chǎng)景下的應(yīng)用。它支持使用第三方的embedding模型執(zhí)行查詢(xún)和元數(shù)據(jù)過(guò)濾。
下面是Chroma與OpenAI embedding搭配使用的架構(gòu)示意圖:
Chroma的主要特點(diǎn)包括:
簡(jiǎn)單:類(lèi)型完整、測(cè)試全面、文檔完整
整合:支持LangChain(python和js)、LlamaIndex等等。
開(kāi)發(fā)、測(cè)試、生產(chǎn)過(guò)程:在python notebook中運(yùn)行的API可直接應(yīng)用到集群環(huán)境。
功能豐富:查詢(xún)、過(guò)濾、密度估計(jì)等
以上這些開(kāi)源向量數(shù)據(jù)庫(kù)每一個(gè)都有自己獨(dú)特的一面。選擇使用哪一款取決于項(xiàng)目的具體需求。一個(gè)合適的向量數(shù)據(jù)庫(kù)可以成為AI解決方案當(dāng)中的記憶海綿體,讓AI不僅能推理還能記憶、檢索,提升AI應(yīng)用的效果。
聯(lián)系客服