誰也沒想到,向量數(shù)據(jù)庫(kù)會(huì)發(fā)展得這樣快!
時(shí)間回到 2018 年, FAIss 項(xiàng)目剛剛開源,Milvus 才寫下它的第一行代碼。我們也只預(yù)見到向量數(shù)據(jù)庫(kù)和嵌入式技術(shù)將會(huì)成為非結(jié)構(gòu)化數(shù)據(jù)領(lǐng)域的關(guān)鍵研究工具。
很快,LLM 時(shí)代到來,從 BERT 到 GPT3,再到 GPT4 以及開源大模型 LLaMa,大模型能力日漸增強(qiáng),生態(tài)逐步開發(fā)開放,加上向量提取技術(shù)的快速進(jìn)步,人們?cè)絹碓秸J(rèn)識(shí)到高維向量在信息檢索和生成中的重要地位。生成型 AI 大模型通常需要使用相似性搜索和匹配的結(jié)果作為 Prompt,以便提供精準(zhǔn)的回復(fù)、推薦或匹配結(jié)果,這種方法我們稱之為“檢索增強(qiáng)生成”。傳統(tǒng)的基于關(guān)鍵詞的搜索可能無法滿足復(fù)雜的語義和上下文需求,而隨著圖像、語音等多模態(tài)大模型的涌現(xiàn),向量數(shù)據(jù)庫(kù)已經(jīng)成為了大模型數(shù)據(jù)存儲(chǔ)的事實(shí)標(biāo)準(zhǔn)。
忽如一夜春風(fēng)來,千樹萬樹梨花開。大型模型的爆發(fā)使得大模型數(shù)據(jù)存儲(chǔ)成為構(gòu)建未來AI系統(tǒng)的關(guān)鍵環(huán)節(jié),同時(shí)也催生了眾多向量數(shù)據(jù)庫(kù)的出現(xiàn)。除了較早誕生的向量數(shù)據(jù)庫(kù) Milvus 和云服務(wù) Zilliz Cloud,我們還看到了 Pinecone、Weaviate、Qdrant、Chroma 等形態(tài)各異的向量數(shù)據(jù)庫(kù)和云服務(wù)的涌現(xiàn)。與此同時(shí),一些傳統(tǒng)數(shù)據(jù)庫(kù)廠商也紛紛加入向量處理能力的提供之列,如 PGVector、ElasticSearch、MongoDB 等都推出了對(duì)向量的支持(Lucene 對(duì) Dense Vector 的支持進(jìn)一步推動(dòng)了這一趨勢(shì))。
然而,隨著向量數(shù)據(jù)庫(kù)如雨后春筍般涌現(xiàn),如何科學(xué)地評(píng)價(jià)和選擇一個(gè)優(yōu)秀的向量數(shù)據(jù)庫(kù),成為了一個(gè)備受討論和爭(zhēng)議的話題。
正如我們?cè)谠u(píng)估大模型時(shí)會(huì)考慮其準(zhǔn)確性、多樣性、泛化能力、推理性能等諸多指標(biāo)一樣,本文也將嘗試從多個(gè)角度分析向量數(shù)據(jù)庫(kù)的異同,并為每種產(chǎn)品賦予獨(dú)特的價(jià)值定位。實(shí)際上,當(dāng)我們撥開表面的迷霧,聚焦向量數(shù)據(jù)庫(kù)本質(zhì)的時(shí)候,就會(huì)發(fā)現(xiàn)在向量數(shù)據(jù)庫(kù)的概念外殼下包含著各式各樣的內(nèi)在要素。向量數(shù)據(jù)庫(kù)作為一個(gè)獨(dú)特的產(chǎn)品類別,其存在必然包含著特殊的價(jià)值,且一定會(huì)進(jìn)化并分化出具有各自特點(diǎn)的產(chǎn)品。
01
向量數(shù)據(jù)庫(kù)- Just Another WrApper for Faiss?
根據(jù)微軟的定義,“向量數(shù)據(jù)庫(kù)是一種將數(shù)據(jù)存儲(chǔ)為高維向量的數(shù)據(jù)庫(kù),高維向量是特征或?qū)傩缘臄?shù)學(xué)表示。”拆解來看,向量數(shù)據(jù)庫(kù)有兩個(gè)關(guān)鍵要素,一是面向高維向量數(shù)據(jù)的處理能力,二是具備一個(gè)數(shù)據(jù)庫(kù)的基本能力,因此以下幾個(gè)因素是向量數(shù)據(jù)庫(kù)必須要具備的:
1)支持向量數(shù)據(jù)的增刪改查
2)高性能的向量檢索
3)支持?jǐn)?shù)據(jù)的持久化
4)支持一種易用的查詢語言
除了上述的基本需求,我們還可以從許多角度來評(píng)估向量數(shù)據(jù)庫(kù):系統(tǒng)的擴(kuò)展性、彈性、可用性,所采用的向量檢索算法,是否支持標(biāo)量過濾、混合查詢、多向量等功能,是否開源,是否提供云服務(wù),以及是否有完善的生態(tài)支持等等。“并非所有的向量數(shù)據(jù)庫(kù)都天生平等”,在研究和選擇向量數(shù)據(jù)庫(kù)時(shí),這些都是我們必須要考慮的因素。
Chroma 曾是一個(gè)建立在著名的實(shí)時(shí) OLAP 數(shù)據(jù)庫(kù) ClickHouse 之上的向量數(shù)據(jù)庫(kù),盡管因此被批評(píng)為“只是在ClickHouse 上加了一個(gè)輕量級(jí)的封裝”,但這個(gè)剛成立一年的初創(chuàng)公司還是憑借其向量搜索功能獲得了 1800 萬美元的種子輪融資。Chroma 在底層深度依賴 ClickHouse 和 HNSWlib,只是在向量檢索上增加了一層 Python/ target=_blank class=infotextkey>Python 封裝。這種依賴第三方構(gòu)建復(fù)雜軟件和服務(wù)的方法雖然快速,但會(huì)引發(fā)嚴(yán)重的性能問題,也會(huì)使得軟件迭代變得非常困難。
事實(shí)上,僅僅數(shù)月后,Chroma 就決定放棄對(duì) ClickHouse 的依賴,轉(zhuǎn)而基于 SQLite 重建其查詢引擎。Chroma 的經(jīng)歷證明,向量數(shù)據(jù)庫(kù)絕不是簡(jiǎn)簡(jiǎn)單單的功能組合,做好向量數(shù)據(jù)庫(kù)同樣需要良好的設(shè)計(jì)和大量的工程實(shí)踐。

0
2
傳統(tǒng)數(shù)據(jù)庫(kù)- 向量數(shù)據(jù)庫(kù)的終極選擇?
除了專屬向量數(shù)據(jù)庫(kù),傳統(tǒng)數(shù)據(jù)庫(kù)也紛紛支持了向量檢索能力,包括 PostgreSQL、ElasticSearch 和 redis 等在內(nèi)的數(shù)據(jù)庫(kù)廠商紛紛加入這一賽道。那么,向量數(shù)據(jù)庫(kù)是否會(huì)像很多 NoSQL 數(shù)據(jù)庫(kù)一樣,慢慢被關(guān)系型數(shù)據(jù)庫(kù)所取代呢?

盡管傳統(tǒng)數(shù)據(jù)庫(kù)已經(jīng)擴(kuò)展其功能以支持向量搜索,專門的向量數(shù)據(jù)庫(kù)在許多方面仍具有突出優(yōu)勢(shì)。首先,向量數(shù)據(jù)庫(kù)在易用性方面表現(xiàn)得更為優(yōu)秀。雖然對(duì)于許多開發(fā)者而言 SQL 的學(xué)習(xí)成本相對(duì)較低,但傳統(tǒng)數(shù)據(jù)庫(kù)對(duì) SQL 語法的兼容實(shí)際上成為了其功能迭代的包袱。相反,向量數(shù)據(jù)庫(kù)往往提供了更易于迭代和拓展的 Python、JAVA 和Restful API 接口,從而可以更方便地增加新的功能和語法。這使得向量數(shù)據(jù)庫(kù)能夠適應(yīng) AI 和大數(shù)據(jù)領(lǐng)域日新月異的變化,更符合開發(fā)者的需求。
其次,向量數(shù)據(jù)庫(kù)在處理高維向量數(shù)據(jù)時(shí)通常能夠提供更高的性能。這種性能優(yōu)勢(shì)不只是源于對(duì)向量索引的優(yōu)化,更多地在于向量數(shù)據(jù)庫(kù)對(duì)算力資源的有效利用和對(duì)數(shù)據(jù)分布的深入理解。優(yōu)秀的向量數(shù)據(jù)庫(kù)會(huì)基于 CPU SIMD、GPU 等算力進(jìn)行優(yōu)化,我們的測(cè)試結(jié)果顯示,GPU 索引的性能可能優(yōu)于 CPU 的十倍以上。相比之下,傳統(tǒng)數(shù)據(jù)庫(kù)雖然增加了對(duì)向量數(shù)據(jù)的支持,但其能力往往受限于已有的系統(tǒng)架構(gòu),因此很難充分利用算力資源。同時(shí),傳統(tǒng)數(shù)據(jù)庫(kù)也無法像專門針對(duì)向量數(shù)據(jù)設(shè)計(jì)的數(shù)據(jù)庫(kù)那樣,更有效地處理向量數(shù)據(jù)的分片、增量插入和刪除等問題。

向量數(shù)據(jù)庫(kù)的終極武器就是AI化,它不僅是DBfor AI的最佳實(shí)踐,查詢不需要100%準(zhǔn)確的特性也使得向量數(shù)據(jù)庫(kù)成為了AIfor DB的理想試驗(yàn)場(chǎng)。向量數(shù)據(jù)庫(kù)可以無縫地與 LLM 應(yīng)用集成,提供一站式的數(shù)據(jù)管理和處理解決方案,成為多模態(tài)數(shù)據(jù)之間的重要橋梁,這一生態(tài)優(yōu)勢(shì)是傳統(tǒng)數(shù)據(jù)庫(kù)難以超越的。同時(shí),向量數(shù)據(jù)庫(kù)本身重度依賴Embedding、Ranking、Clustering 等機(jī)器學(xué)習(xí)技術(shù),與傳統(tǒng)數(shù)據(jù)庫(kù)開發(fā)者之間存在較大的技術(shù)鴻溝,想完成跨界絕非易事。
正因?yàn)榇耍覀兛梢钥吹絺鹘y(tǒng)數(shù)據(jù)庫(kù)在向量檢索領(lǐng)域并沒有太多驚艷的實(shí)踐案例,且或多或少地存在更新困難、性能慢、標(biāo)量向量查詢無法打通、索引任務(wù)和查詢相互影響等問題。
03
優(yōu)秀的向量數(shù)據(jù)庫(kù),到底需要哪些能力?
那么,如何打造出一款出色的向量數(shù)據(jù)庫(kù)呢?在我看來,架構(gòu)、算法、計(jì)算能力以及對(duì)場(chǎng)景的深入理解是關(guān)鍵。
首先,我們談?wù)摷軜?gòu)。向量數(shù)據(jù)庫(kù)與傳統(tǒng)數(shù)據(jù)庫(kù)有很多不同之處,例如,向量索引構(gòu)建傾向于離線操作且消耗大量計(jì)算資源,這意味著將計(jì)算密集任務(wù) Offload 到數(shù)據(jù)庫(kù)的概念在向量數(shù)據(jù)庫(kù)中能得到更好的實(shí)現(xiàn)。實(shí)現(xiàn) Offload 計(jì)算任務(wù)的關(guān)鍵在于實(shí)現(xiàn)存儲(chǔ)計(jì)算分離,只有在系統(tǒng)完全無狀態(tài)化的情況下,才能解除數(shù)據(jù)和計(jì)算能力之間的耦合,實(shí)現(xiàn)真正的彈性。傳統(tǒng)的數(shù)據(jù)庫(kù)的架構(gòu)設(shè)計(jì)并沒有考慮向量數(shù)據(jù)本身的特性,比如索引的不可變性、計(jì)算資源的消耗、內(nèi)存使用成為主要瓶頸,這便帶來了一個(gè)問題——盡管傳統(tǒng)數(shù)據(jù)庫(kù)可以支持向量插件,但對(duì)增刪改查和存算分離等特性并不能進(jìn)行有力的支持。
目前,絕大多數(shù)向量數(shù)據(jù)庫(kù)直接使用如 Faiss 或者 HNSW 這樣的向量檢索庫(kù),這可以快速獲得不錯(cuò)的性能。然而,隨著向量數(shù)據(jù)庫(kù)使用場(chǎng)景的復(fù)雜化,傳統(tǒng)向量索引在滿足開發(fā)者對(duì)于標(biāo)量過濾、多向量混合查詢的需求方面變得力不從心,提升性能需要綜合考慮向量和標(biāo)量之間的關(guān)系。每種向量索引在性能、成本、功能上各有優(yōu)劣,無法一刀切,這也是我們決定重新自主研發(fā)向量數(shù)據(jù)查詢引擎的關(guān)鍵原因。
接下來,是底層硬件能力的應(yīng)用。這也是向量數(shù)據(jù)庫(kù)與傳統(tǒng)數(shù)據(jù)庫(kù)的重大區(qū)別之一。近年來,隨著 NVMe,RDMA 等技術(shù)的發(fā)展和普及,傳統(tǒng)數(shù)據(jù)庫(kù)的瓶頸逐漸從磁盤和網(wǎng)絡(luò)轉(zhuǎn)向了 CPU,但其計(jì)算密度仍然遠(yuǎn)遠(yuǎn)低于向量數(shù)據(jù)庫(kù)所需的稠密向量距離計(jì)算。隨著圖索引越來越成為向量檢索的主流,它帶來的內(nèi)存/IO 隨機(jī)訪問問題開始成為了向量數(shù)據(jù)庫(kù)進(jìn)一步優(yōu)化性能的關(guān)鍵挑戰(zhàn)。
最后,我們需要深度理解用戶場(chǎng)景。比如在大模型知識(shí)庫(kù)場(chǎng)景下,往往有多租戶查詢、行級(jí)權(quán)限管理、動(dòng)態(tài) Schema 等業(yè)務(wù)需求。對(duì)于訓(xùn)練數(shù)據(jù)的檢索,則需要非常靈活的標(biāo)量過濾能力,海量數(shù)據(jù)的離線導(dǎo)入能力以及磁盤索引的能力來降低海量數(shù)據(jù)的服務(wù)成本。如同十多年前的移動(dòng)互聯(lián)網(wǎng)浪潮成就了MongoDB,這一波AIGC的浪潮也一定會(huì)給數(shù)據(jù)庫(kù)帶來更多場(chǎng)景的需求和新的挑戰(zhàn)。
04
做好 Vector Database - 我們是專業(yè)的!
如今 Milvus 即將迎來誕生的第五個(gè)年頭,全面更新的 2.3 版本于上周發(fā)布。Milvus 2.3 版本正式支持了GPU索引、RangeSearch、MMap加載數(shù)據(jù)等更多能力,幫助用戶進(jìn)一步降低了向量檢索的使用成本。不僅如此,基于開源 Milvus 的托管云服務(wù) Zilliz Cloud已在國(guó)內(nèi)全面發(fā)布,用戶可以基于向量檢索服務(wù)和大模型 API 快速構(gòu)建自己的 AIGC 應(yīng)用。


對(duì)比開源的 Milvus,Zilliz Cloud更強(qiáng)調(diào)降低用戶的總體成本,包括硬件成本,開發(fā)成本以及維護(hù)成本。這不僅有助于快速推出用戶應(yīng)用以搶占市場(chǎng)份額,同時(shí)也確保了應(yīng)用的穩(wěn)定運(yùn)行。
以下是 Zilliz Cloud 的主要優(yōu)勢(shì)和提供的核心能力:
- 自研的 Cardinal 向量引擎:Zilliz Cloud 的 Cardinal 引擎優(yōu)化了圖索引算法,支持內(nèi)存和磁盤兩種模式。與開源的 SOTA 相比,Cardinal 引擎可以提供 3 倍以上的性能提升。此外,Cardinal 對(duì)于標(biāo)量過濾和增量更新等場(chǎng)景也有獨(dú)特的優(yōu)化方案,基于統(tǒng)計(jì)信息的過濾方案相對(duì)于傳統(tǒng)前過濾方案可以實(shí)現(xiàn)超過 10 倍的性能優(yōu)化。關(guān)注向量數(shù)據(jù)庫(kù)性能的用戶,請(qǐng)參考 VectorDB Benchmark。(https://Github.com/zilliztech/VectorDBBench)
- 智能索引調(diào)優(yōu):在向量檢索中存在著 CAP 理論,即成本(Cost)、性能(Performance)和召回率(Accuracy)三者之間只能取其二。用戶在調(diào)整查詢參數(shù)時(shí),除了需要關(guān)注這些指標(biāo),還需要考慮硬件資源、索引構(gòu)建速度、TopK、數(shù)據(jù)分布、數(shù)據(jù)規(guī)模等因素。Zilliz Cloud 的 AutoIndex 技術(shù)可以根據(jù)用戶的數(shù)據(jù)分布和查詢動(dòng)態(tài)選擇查詢參數(shù),以實(shí)現(xiàn)最佳查詢性能。這不僅降低了用戶的使用成本,同時(shí)也可以大幅提升處理大數(shù)據(jù)集時(shí)的查詢性能。
- 數(shù)據(jù)服務(wù):Zilliz Cloud 支持?jǐn)?shù)據(jù)備份恢復(fù)、數(shù)據(jù)遷移、數(shù)據(jù)導(dǎo)入、數(shù)據(jù)導(dǎo)出等服務(wù),它還將推出知識(shí)庫(kù)增強(qiáng)接口,幫助用戶更有效、安全和便捷地管理數(shù)據(jù),如同操作傳統(tǒng)數(shù)據(jù)庫(kù)一樣。
- 跨云跨機(jī)房:Zilliz Cloud 高度依賴云基礎(chǔ)設(shè)施,以確保數(shù)據(jù)的高可靠性。其企業(yè)版默認(rèn)采用 3AZ 容災(zāi)策略,也將推出跨可用區(qū)域的容災(zāi)能力,從而最大程度地保證服務(wù)的安全可用。針對(duì)需要海外部署和多云容災(zāi)的用戶,Zilliz Cloud 目前已支持 AWS、GCP、阿里云等主流云服務(wù)廠商,并即將推出對(duì) Azure、金山云的支持。
- SLA 保障:Zilliz Cloud 向用戶提供月 99.9% 的服務(wù)可用性保證。作為 Milvus 開源項(xiàng)目背后的商業(yè)化公司,Zilliz Cloud 集結(jié)了全球頂尖的工程師,能夠幫助用戶解決業(yè)務(wù)挑戰(zhàn),保證服務(wù)的穩(wěn)定性。
05
總結(jié)
向量數(shù)據(jù)庫(kù)作為大模型實(shí)現(xiàn)的重要補(bǔ)充,其價(jià)值不容忽視。隨著大模型的廣泛應(yīng)用與實(shí)際落地,用戶對(duì)于數(shù)據(jù)庫(kù)的性能、擴(kuò)展性和穩(wěn)定性等方面的需求不斷提升。然而,在眾多向量數(shù)據(jù)庫(kù)中選擇一款最適合自身業(yè)務(wù)的,無疑是一個(gè)富有意義卻頗具挑戰(zhàn)性的任務(wù)。如果你正在尋找一款讓人省心、定價(jià)合理的向量數(shù)據(jù)庫(kù),那么Zilliz Cloud無疑是最佳選擇,其高效穩(wěn)定的特性,絕對(duì)能滿足你的各項(xiàng)需求。
更多詳情可以訪問 Https://zilliz.com.cn。






