譯者 | 布加迪
審校 | 重樓
向量數(shù)據(jù)庫(kù)具有一系列廣泛的好處,特別是在生成式人工智能方面,更具體地說,是在大語(yǔ)言模型(LLM)方面。這些好處包括先進(jìn)的索引和精確的相似度搜索,有助于交付強(qiáng)大的先進(jìn)項(xiàng)目。
本文將對(duì)三種開源向量數(shù)據(jù)庫(kù):Chroma、Milvus和Weaviate進(jìn)行如實(shí)的比較。我們將探討它們的用例、關(guān)鍵特性、性能指標(biāo)及支持的編程語(yǔ)言等,以便全面公正地概述每種數(shù)據(jù)庫(kù)。
向量數(shù)據(jù)庫(kù)的定義
就最簡(jiǎn)單的定義而言,向量數(shù)據(jù)庫(kù)將信息存儲(chǔ)為向量(向量嵌入),向量是數(shù)據(jù)對(duì)象的數(shù)值版本。
正因?yàn)槿绱耍蛄壳度胧轻槍?duì)非常大的非結(jié)構(gòu)化或半非結(jié)構(gòu)化數(shù)據(jù)集進(jìn)行索引和搜索的強(qiáng)大方法。這些數(shù)據(jù)集可以由文本、圖像或傳感器數(shù)據(jù)組成,向量數(shù)據(jù)庫(kù)將這些信息排序?yàn)橐子诠芾淼母袷健?/p>
向量數(shù)據(jù)庫(kù)使用高維向量工作,高維向量可能含有數(shù)百個(gè)不同的維度,每個(gè)維度又都與數(shù)據(jù)對(duì)象的特定屬性相關(guān)聯(lián),因此帶來了無與倫比的復(fù)雜性。
不要與向量索引或向量搜索庫(kù)相混淆,向量數(shù)據(jù)庫(kù)是一種完整的管理解決方案,用于以下列方式存儲(chǔ)和過濾元數(shù)據(jù):
- 完全易于擴(kuò)展。
- 很容易備份。
- 支持動(dòng)態(tài)數(shù)據(jù)更改。
- 提供高級(jí)別的安全性。
使用開源向量數(shù)據(jù)庫(kù)的好處
開源向量數(shù)據(jù)庫(kù)提供了許多優(yōu)于替代數(shù)據(jù)庫(kù)的優(yōu)點(diǎn),比如:
- 它們是一種靈活的解決方案,很容易修改以滿足特定要求,而不像許可式方案通常為某個(gè)項(xiàng)目設(shè)計(jì)。
- 開源向量數(shù)據(jù)庫(kù)由龐大的開發(fā)者社區(qū)提供支持,開發(fā)者隨時(shí)準(zhǔn)備協(xié)助解決任何問題或提供有關(guān)如何改進(jìn)項(xiàng)目的建議。
- 開源解決方案對(duì)預(yù)算友好,沒有許可費(fèi)用、訂閱費(fèi)用或項(xiàng)目期間的任何意外成本。
- 由于開源向量數(shù)據(jù)庫(kù)的透明性,開發(fā)人員可以更有效地工作,了解每個(gè)組件以及數(shù)據(jù)庫(kù)是如何構(gòu)建的。
- 開源產(chǎn)品在活躍社區(qū)的支持下,隨著技術(shù)的變化而不斷改進(jìn)和完善。
開源向量數(shù)據(jù)庫(kù)比較:Chroma Vs. Milvus Vs. Weaviate
我們已經(jīng)了解了向量數(shù)據(jù)庫(kù)的定義以及開源解決方案具有的好處,現(xiàn)在不妨考慮一下市場(chǎng)上最流行的一些選擇。我們將重點(diǎn)介紹Chroma、Milvus和Weaviate的優(yōu)勢(shì)、功能和用途,然后進(jìn)行直接的面對(duì)面比較,以確定最適合您需求的選擇。
1. Chroma
Chroma旨在幫助各種規(guī)模的開發(fā)人員和企業(yè)創(chuàng)建LLM應(yīng)用程序,提供構(gòu)建復(fù)雜項(xiàng)目所需的所有資源。Chroma確保項(xiàng)目具有高度可擴(kuò)展性,并以最佳方式工作,以便高維向量可以快速地存儲(chǔ)、搜索和檢索。
它之所以越來越受歡迎,是由于它是一種極其靈活的解決方案,有廣泛的部署選項(xiàng)。此外,Chroma可以直接部署在云上,也可以在現(xiàn)場(chǎng)運(yùn)行,使其成為任何企業(yè)的可行選擇,無論其IT基礎(chǔ)設(shè)施如何。
用例
Chroma還支持多種數(shù)據(jù)類型和格式,因而適合幾乎任何應(yīng)用程序。然而,Chroma的主要優(yōu)勢(shì)之一是它支持音頻數(shù)據(jù),這使得它成為基于音頻的搜索引擎、音樂推薦應(yīng)用程序和其他基于聲音的項(xiàng)目的首選。
2. Milvus
Milvus在機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)領(lǐng)域獲得了很高的聲譽(yù),在向量索引和查詢方面擁有出色的能力。利用功能強(qiáng)大的算法,Milvus提供閃電般的處理和數(shù)據(jù)檢索速度以及GPU支持,即使在處理非常龐大的數(shù)據(jù)集時(shí)也是如此。Milvus還可以與PyTorch和TensorFlow等其他流行的框架集成,從而允許將其添加到現(xiàn)有的機(jī)器學(xué)習(xí)工作流中。
用例
Milvus以其在相似性搜索和分析方面的能力而出名,廣泛支持多種編程語(yǔ)言。這種靈活性意味著開發(fā)人員并不局限于后端操作,甚至可以在前端執(zhí)行通常為服務(wù)器端語(yǔ)言保留的任務(wù)。比如說,您可以使用JAVAScript生成PDF,同時(shí)利用來自Milvus的實(shí)時(shí)數(shù)據(jù)。這為應(yīng)用程序開發(fā)開辟了新的途徑,特別是針對(duì)教育內(nèi)容和專注于可訪問性的應(yīng)用程序。
這種開源向量數(shù)據(jù)庫(kù)可以應(yīng)用于一系列廣泛的行業(yè)和大量的應(yīng)用環(huán)境。另一個(gè)突出的例子涉及電子商務(wù),Milvus可以支撐準(zhǔn)確的推薦系統(tǒng),根據(jù)客戶的偏好和購(gòu)買習(xí)慣來建議產(chǎn)品。
它還適用于圖像/視頻分析項(xiàng)目,協(xié)助圖像相似性搜索、對(duì)象識(shí)別以及基于內(nèi)容的圖像檢索。另一個(gè)關(guān)鍵用例是自然語(yǔ)言處理,提供文檔聚類和語(yǔ)義搜索功能以及為問答系統(tǒng)提供基礎(chǔ)功能。
3.Weaviate
接受比較的第三種開源向量數(shù)據(jù)庫(kù)是Weaviate,它出現(xiàn)在自托管的解決方案和完全托管的解決方案中。無數(shù)企業(yè)使用Weaviate來處理和管理大型數(shù)據(jù)集,因?yàn)樗哂谐錾男阅堋⒑?jiǎn)單性和高度可擴(kuò)展性。
Weaviate能夠管理眾多數(shù)據(jù)類型,非常靈活,可以存儲(chǔ)向量和數(shù)據(jù)對(duì)象,這使得它非常適合需要一系列搜索技術(shù)的應(yīng)用環(huán)境(比如向量搜索和關(guān)鍵字搜索)。
用例
就使用而言,Weaviate非常適合企業(yè)資源規(guī)劃軟件或牽涉以下方面的應(yīng)用軟件中的數(shù)據(jù)分類等項(xiàng)目:
- 相似性搜索
- 語(yǔ)義搜索
- 圖像搜索
- 電子商務(wù)產(chǎn)品搜索
- 推薦引擎
- 網(wǎng)絡(luò)安全威脅分析與檢測(cè)
- 異常檢測(cè)
- 自動(dòng)化數(shù)據(jù)協(xié)調(diào)
現(xiàn)在我們對(duì)每種向量數(shù)據(jù)庫(kù)的功能有了一番簡(jiǎn)單的了解,不妨考慮更具體的細(xì)節(jié),它們?cè)谙旅姹憬莸谋容^表中將每種開源解決方案區(qū)分開來。
比較表
|
Chroma |
Milvus |
Weaviate |
開源狀態(tài) |
有,Apache-2.0許可證 |
有,Apache-2.0許可證 |
有,BSD-3-Clause許可證 |
發(fā)布日期 |
2023年2月 |
2019年10月 |
2021年1月 |
用例 |
適合眾多應(yīng)用環(huán)境,支持多種數(shù)據(jù)類型和格式。 擅長(zhǎng)基于音頻的搜索項(xiàng)目和圖像/視頻檢索。 |
適合眾多應(yīng)用環(huán)境,支持多種數(shù)據(jù)類型和格式。 極適合電子商務(wù)推薦系統(tǒng)、自然語(yǔ)言處理及圖像/視頻分析。 |
適合眾多應(yīng)用環(huán)境,支持多種數(shù)據(jù)類型和格式。 極適合企業(yè)資源規(guī)劃軟件中的數(shù)據(jù)分類。 |
關(guān)鍵特性 |
極易于使用。 開發(fā)、測(cè)試和生產(chǎn)等環(huán)境都使用Jupyter筆記本上的同一API。 強(qiáng)大的搜索、過濾 和密度估計(jì)功能。 |
使用內(nèi)存中存儲(chǔ)和持久性存儲(chǔ)來提供高速查詢和插入性能。 為大規(guī)模向量數(shù)據(jù)處理提供自動(dòng)化的數(shù)據(jù)分區(qū)、負(fù)載均衡和容錯(cuò)。 支持眾多向量相似性搜索算法。 |
提供基于GraphQL的API,與知識(shí)圖交互時(shí)提供靈活性 和高效率。 支持實(shí)時(shí)數(shù)據(jù)更新,確保知識(shí)圖在最新變化后仍然最新。 模式推理功能使定義數(shù)據(jù)結(jié)構(gòu)的過程實(shí)現(xiàn)了自動(dòng)化。 |
支持的編程語(yǔ)言 |
Python/ target=_blank class=infotextkey>Python或JavaScript |
Python、Java、C++和Go |
Python、Javascript和Go |
社區(qū)和行業(yè)知名度 |
強(qiáng)大社區(qū),提供Discord頻道,可回答實(shí)時(shí)查詢。 |
Github、Slack、Reddit和Twitter上有活躍的社區(qū)。 1000多企業(yè)用戶。 豐富的說明文檔。 |
專門的論壇和活躍的Slack、 Twitter和LinkedIn社區(qū)。 外加定期播客和新聞簡(jiǎn)報(bào)。 豐富的說明文檔。 |
性能指標(biāo) |
沒有 |
https://milvus.io/docs/benchmark.md |
https://weaviate.io/developers/ weaviate/benchmarks/ann |
GitHub星標(biāo) |
9000 |
23500 |
7800 |
結(jié)論
這篇比較指南中每種開源向量數(shù)據(jù)庫(kù)都很強(qiáng)大、易于擴(kuò)展,并且完全免費(fèi)。這可能會(huì)使選擇完美的解決方案變得有點(diǎn)困難,但如果了解您從事的具體項(xiàng)目和所需的支持水平,這個(gè)過程可以變得更容易。
Chroma是最新的解決方案,在社區(qū)支持方面不如其他兩個(gè),但是其易用性和靈活性使它成為一個(gè)很好的選擇,特別是對(duì)于涉及音頻搜索的項(xiàng)目。
Milvus擁有最高的GitHub星級(jí)評(píng)級(jí)和強(qiáng)大的社區(qū)支持,有數(shù)量驚人的企業(yè)信任這個(gè)向量數(shù)據(jù)庫(kù)來滿足需求。因此,Milvus很適合自然語(yǔ)言處理和圖像/視頻分析項(xiàng)目。
最后,Weaviate提供自托管和完全管理的解決方案,并提供詳細(xì)的說明文檔和支持。一個(gè)關(guān)鍵的用例是企業(yè)資源規(guī)劃軟件中的數(shù)據(jù)分類,但這款解決方案對(duì)于眾多項(xiàng)目來說堪稱完美。
原文標(biāo)題:An Honest Comparison of Open Source Vector Databases,作者:Nahla Davies