WIKI使用導航
站長百科導航
站長專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機
- cPanel
- 網(wǎng)址導航專題
- 云計算
- 微博營銷
- 虛擬主機管理系統(tǒng)
- 開放平臺
- WIKI程序與應用
- 美國十大主機
Milvus
Milvus是一款專為AI應用和向量相似度搜索而設計的開源向量數(shù)據(jù)庫。作為一款專門處理向量查詢的數(shù)據(jù)庫,Milvus能夠在大規(guī)模數(shù)據(jù)集上有效索引向量。與傳統(tǒng)的關系型數(shù)據(jù)庫主要處理預定義模式的結(jié)構(gòu)化數(shù)據(jù)不同,Milvus從底層設計上就是為了管理和處理由非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換來的嵌入向量。
Milvus概述[ ]
Milvus誕生于2019年,其核心目標在于存儲、索引及管理由深度學習網(wǎng)絡及其他機器學習模型生成的海量嵌入向量數(shù)據(jù)。
隨著互聯(lián)網(wǎng)的發(fā)展,非結(jié)構(gòu)化數(shù)據(jù)(如電子郵件、社交媒體帖子、物聯(lián)網(wǎng)數(shù)據(jù)等)變得越來越普遍。為了方便計算機理解和處理這些數(shù)據(jù),通常需要將其轉(zhuǎn)換為向量形式。Milvus正是為存儲和索引這些向量數(shù)據(jù)而設計,它通過計算向量間的相似度來分析它們的關系:向量越相似,代表原始數(shù)據(jù)源也越相似。
Milvus優(yōu)勢[ ]
- 高性能:Milvus 對海量數(shù)據(jù)集進行向量相似度檢索的性能高超,特別是在單節(jié)點上,可以在秒內(nèi)完成十億級的向量搜索。
- 多樣化索引支持:Milvus 支持多種索引算法,如 FAISS、Annoy、HNSW 和 CAGRA 等,能夠大幅優(yōu)化向量檢索的性能。特別是新引入的 CAGRA 索引,其速度和性能遠超傳統(tǒng)的 CPU 索引,使得在小批量查詢中也表現(xiàn)出色。通過合適的索引選擇,Milvus 能夠針對特定的數(shù)據(jù)規(guī)模和查詢需求提供最優(yōu)解決方案。
- 高可用性:Milvus 的系統(tǒng)組件相互獨立并隔離運行,從而確保系統(tǒng)的彈性和可靠性。即使在部分組件出現(xiàn)故障時,整體系統(tǒng)仍可保持正常運行。
- 容災能力:Milvus 支持在云上擴展,容災能力強大,能夠保證服務的高可用性。這種設計尤其適合需要持續(xù)、穩(wěn)定服務的業(yè)務場景。
- 云原生設計:Milvus 采用存儲與計算分離的云原生架構(gòu)設計,支持靈活擴展。這使得 Milvus 能夠動態(tài)調(diào)整資源,根據(jù)實際需求快速擴展或縮小規(guī)模。
- 混合查詢支持:Milvus 不僅支持向量相似度檢索,還允許在檢索過程中進行標量字段過濾,實現(xiàn)混合查詢。這種功能增強了 Milvus 的應用廣度,使其能夠適用于更多復雜的業(yè)務場景。
- 簡單易用:僅需幾分鐘便可搭建大型向量相似性搜索服務。從部署到實際使用的過程都有詳細的文檔和社區(qū)支持,降低了用戶的上手難度。
- 支持多種數(shù)據(jù)類型:Milvus 支持各種數(shù)據(jù)類型,并提供豐富的功能,如數(shù)據(jù)過濾、多種數(shù)據(jù)一致性等級和 Time Travel 等功能。
- 應用場景廣泛:Milvus 被全球上千家企業(yè)信賴,適用于圖片檢索系統(tǒng)、視頻檢索系統(tǒng)、分子式檢索系統(tǒng)、音頻檢索系統(tǒng)、推薦系統(tǒng)及智能問答機器人等多種場景。
Milvus關鍵概念[ ]
非結(jié)構(gòu)化數(shù)據(jù)[ ]
未遵循固定模型或組織方式的信息,如圖像、視頻、音頻和自然語言等,占全球數(shù)據(jù)的大部分。通過各種AI和ML模型,這類數(shù)據(jù)可被轉(zhuǎn)換為嵌入向量。
嵌入向量[ ]
非結(jié)構(gòu)化數(shù)據(jù)的特征提取表示,數(shù)學上表現(xiàn)為浮點數(shù)或二進制數(shù)組。現(xiàn)代嵌入技術(shù)能夠?qū)⒎墙Y(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)化為嵌入向量。
向量相似性搜索[ ]
將向量與數(shù)據(jù)庫中的其他向量比較,以找出最接近查詢向量的向量的過程。近似最近鄰(ANN)搜索算法用于加速此過程。
Milvus索引和度量方式[ ]
索引類型[ ]
Milvus支持的大多數(shù)向量索引類型使用近似最近鄰搜索(ANNS),包括:
- FLAT:FLAT 最適合于在小型百萬級數(shù)據(jù)集上尋求完全準確和精確的搜索結(jié)果的場景;
- IVF_FLAT:IVF_FLAT 是基于量化的索引,最適合于在準確性和查詢速度之間尋求理想平衡的場景。還有一個 GPU 版本 GPU_IVF_FLAT;
- IVF_SQ8:IVF_SQ8 是一種基于量化的索引,最適合于在磁盤、CPU 和 GPU 內(nèi)存消耗非常有限的場景;
- IVF_PQ:IVF_PQ 是一種基于量化的索引,最適合于在犧牲準確性的情況下追求高查詢速度的場景。還有一個 GPU 版本 GPU_IVF_PQ;
- HNSW:HNSW 是一種基于圖的索引,最適合于對搜索效率有很高要求的場景。
相似性度量[ ]
在 Milvus 中,相似性度量用于衡量向量之間的相似性。選擇一個好的距離度量有助于顯著提高分類和聚類性能。根據(jù)輸入數(shù)據(jù)的形式,選擇特定的相似性度量以實現(xiàn)最佳性能。
浮點嵌入中廣泛使用的度量包括:
- 歐氏距離(L2):該度量通常在計算機視覺(CV)領域中使用;
- 內(nèi)積(IP):該度量通常在自然語言處理(NLP)領域中使用。
二進制嵌入中廣泛使用的度量包括:
- 漢明距離(Hamming):該度量通常在自然語言處理(NLP)領域中使用;
- 杰卡德相似系數(shù)(Jaccard):該度量通常在分子相似性搜索領域中使用。
Milvus系統(tǒng)架構(gòu)[ ]
作為一個云原生的向量數(shù)據(jù)庫,Milvus 在設計上將存儲和計算分離。為了增強彈性和靈活性,Milvus 中的所有組件都是無狀態(tài)的。
系統(tǒng)分為四個層次:
- 接入層:接入層由一組無狀態(tài)代理組成,作為系統(tǒng)的前端層和用戶的終端點;
- 協(xié)調(diào)服務:協(xié)調(diào)服務將任務分配給工作節(jié)點,并作為系統(tǒng)的大腦;
- 工作節(jié)點:工作節(jié)點充當手腳,是徹底的執(zhí)行者,遵循協(xié)調(diào)服務的指示并執(zhí)行用戶觸發(fā)的 DML/DDL 命令;
- 存儲:存儲是系統(tǒng)的骨架,負責數(shù)據(jù)持久性。它包括元數(shù)據(jù)存儲、日志代理和對象存儲。