導語:沒有通用的“最 佳”向量數據庫——選擇取決于您的需求。評估可擴展性、功能性、性能以及與用例的兼容性至關重要。
在當今數據驅動的世界里,非結構化數據的指數增長是一個需要我們關注的現象。生成性人工智能和大型語言模型(LLM)的興起為這次數據爆炸增添了更多的燃料,將我們的重點引向了突破性技術:向量數據庫。作為人工智能時代的重要基礎設施,向量數據庫是存儲、索引和搜索非結構化數據的強大工具。
隨著全世界的注意力牢牢地集中在向量數據庫上,一個緊迫的問題出現了:您如何選擇適合您業務需求的數據庫?在比較和評估向量數據庫時,需要考慮哪些關鍵因素?這篇文章將深入研究這些問題,并從可擴展性、功能和性能角度提供見解,幫助您在這個動態環境中做出明智的決策。
什么是向量數據庫?
傳統的關系數據庫系統以預定義格式的結構化表管理數據,它們擅長執行精確的搜索操作。相比之下,向量數據庫專門通過稱為向量嵌入的高維數字表示來存儲和檢索非結構化數據,如圖像、音頻、視頻和文本。
向量數據庫以相似性搜索而聞名,采用近似最近鄰(ANN)算法等技術。ANN算法根據空間關系排列數據,并在廣泛的數據集中快速識別離給定查詢最近的數據點。
開發人員使用向量數據庫構建推薦系統、聊天機器人和應用程序來搜索類似的圖像、視頻和音頻。隨著ChatGPT的興起,向量數據庫已成為解決大型語言模型幻覺問題的有益問題。
向量數據庫與其他向量搜索技術
各種技術可用于向量數據庫之外的向量搜索。2017年,Meta開源FAISS,大大降低了與向量搜索相關的成本和障礙。2019年,Zilliz推出了Milvus,這是一個專門構建的開源向量數據庫,引領了該行業。從那時起,出現了許多其他向量數據庫。隨著Elasticsearch和redis等許多傳統搜索產品的進入以及GPT等LLM的廣泛使用,向量數據庫的趨勢在2022年起飛。
所有這些向量搜索產品之間的相似之處和不同之處是什么?我大致將它們分為以下類型:
向量搜索庫。這些是沒有基本數據庫功能的算法集合,如插入、刪除、更新、查詢、數據持久性和可擴展性。FAISS就是一個主要例子。
輕量級向量數據庫。這些建立在向量搜索庫上,使它們在部署中重量輕,但可擴展性和性能較差。Chroma就是這樣一個例子。
向量搜索插件。這些是依賴傳統數據庫的向量搜索附加組件。然而,他們的架構是針對傳統工作負載的,這可能會對其性能和可擴展性產生負面影響。Elasticsearch和Pgvector是主要例子。
專門構建的向量數據庫。這些數據庫是專門用于向量搜索的,與其他向量搜索技術相比具有顯著優勢。例如,專用向量數據庫提供分布式計算和存儲、災難恢復和數據持久性等功能。Milvus就是一個主要例子。
如何評估向量數據庫?
在評估向量數據庫時,可擴展性、功能和性能是最重要的三個指標。
可擴展性
可擴展性對于確定向量數據庫是否能夠有效處理指數增長的數據至關重要。在評估可擴展性時,我們必須考慮水平與垂直的可擴展性、負載平衡和多重復制。
水平與垂直可擴展性
不同的向量數據庫采用不同的擴展技術來適應業務增長需求。例如,Pinecone和Qdrant選擇垂直縮放,而Milvus采用水平縮放。水平可擴展性比垂直擴展提供更大的靈活性和性能,上限更少。
負載均衡
調度對于分布式系統至關重要。它的速度、粒度和精度直接影響負載管理和系統性能,如果不正確優化,會降低可擴展性。
多個副本支持
多個副本可實現對各種查詢的差異響應,提高系統的速度(以每秒查詢、QPS為單位)和整體可擴展性。
不同的向量數據庫迎合了不同類型的用戶,因此他們的可擴展性策略不同。例如,Milvus專注于數據量迅速增加的場景,并使用具有存儲-計算分離的水平可擴展架構。Pinecone和Qdrant專為數據量和縮放需求更溫和的用戶而設計。LanceDB和Chroma優先考慮輕量級部署而不是可擴展性。
我把向量數據庫的功能分為兩大類,即面向數據庫的特征和面向向量的特征。
面向向量的特征
向量數據庫使許多用例受益,例如檢索增強生成(RAG)、推薦系統和使用各種索引的語義相似性搜索。因此,支持多種索引類型的能力是評估向量數據庫的關鍵因素。
目前,大多數向量數據庫支持HNSW(分層可導航小世界)索引,其中一些還支持IVF(倒置文件)索引。這些指數適用于內存操作,最適合資源豐富的環境。然而,一些向量數據庫在硬件資源有限的情況下選擇基于mmap的解決方案。雖然更容易實施,但基于mmap的解決方案以性能為代價。
Milvus是歷史最悠久的向量數據庫之一,支持11種索引類型,包括基于磁盤和基于GPU的索引。這種方法確保了對各種應用場景的適應性。
面向數據庫的功能
許多有利于傳統數據庫的功能也適用于向量數據庫,如更改數據捕獲(CDC)、多租戶支持、資源組和基于角色的訪問控制(RBAC)。Milvus和一些配備向量插件的傳統數據庫有效地支持這些面向數據庫的功能。
表現指標
性能是評估向量數據庫的最關鍵指標。與傳統數據庫不同,向量數據庫進行近似搜索,這意味著檢索到的前k個結果不能保證100%的準確性。因此,除了每秒查詢(QPS)和延遲等傳統指標外,“召回率”是量化檢索準確性的向量數據庫的另一個基本性能指標。
我推薦兩個公認的開源基準測試工具來評估不同的指標:ANN-Benchmark和VectorDBBench。
ANN-Benchmark
向量索引是向量數據庫的一個關鍵和資源密集型方面。其性能直接影響整體數據庫性能。ANN-Benchmark是由Martin Aumueller、Erik Bernhardsson、Alec Faitfull和其他幾位貢獻者開發的領先基準測試工具,用于評估各種向量索引算法在一系列真實數據集中的性能。
ANN-Benchmark允許您根據任何一個預計算數據集,繪制各種算法每秒測試召回/查詢的結果。它繪制了x軸上的召回率與y軸上的QPS,說明了每個算法在不同檢索精度級別上的性能。
向量DBBench
雖然ANN-Benchmark對于選擇和比較不同的向量搜索算法非常有用,但它沒有提供向量數據庫的全面概述。我們還必須考慮資源消耗、數據加載能力和系統穩定性等因素。此外,ANN-Benchmark忽略了許多常見的場景,例如過濾向量搜索。
VectorDBBench是我們在Zilliz創建的開源基準測試工具,可以解決上述限制。它專為Milvus和Weaviate等開源向量數據庫以及Zilliz Cloud和Pinecone等全管理服務而設計。由于許多完全托管的向量搜索服務不會公開其用戶調優的參數,VectorDBBench會分別顯示QPS和召回率。
有關基準測試結果,請參閱VectorDBBench網站。
在向量數據庫的動態領域,許多產品表現出獨特的重點和優勢。沒有通用的“最 佳”向量數據庫;選擇取決于您的需求。因此,評估向量數據庫的可擴展性、功能、性能以及與特定用例的兼容性至關重要。
Li Liu是Zilliz的首席工程師,領導向量搜索研究和開發。在加入Zilliz之前,Liu是Meta的高級工程師,設計和塑造了許多廣告流數據框架。他擁有卡內基梅隆大學的碩士學位,在數據庫和大數據方面擁有豐富的經驗。李劉在技術和創新方面的專業知識繼續推動向量搜索的進步,對該領域產生了持久的影響。