Milvus (vector database)
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
Developer(s) | Zilliz |
---|---|
Initial release | October 19, 2019 |
Stable release | v2.4.15
/ November 5, 2024[1] .: |
Repository | github |
Written in | C++, Go |
Operating system | Linux, macOS |
Platform | x86, ARM |
Type | Vector database |
License | Apache License 2.0 |
Website | milvus |
Milvus is a distributed vector database developed by Zilliz. It is available as both open-source software and a cloud service.
Milvus is an open-source project under LF AI & Data Foundation[2] distributed under the Apache License 2.0.
History
[edit]Milvus has been developed by Zilliz since 2017.[3]
Milvus joined Linux foundation as an incubation project in January 2020 and became a graduate in June 2021.[2] The details about its architecture and possible applications were presented on ACM SIGMOD Conference in 2021[4]
Milvus 2.0, a major redesign of the whole product with a new architecture,[5] was released in January 2022.
Features
[edit]Similarity search
[edit]Major similarity search related features that are available in the active 2.4.x Milvus branch[6]:
- In-memory, on-disk and GPU indices,
- Single query, batch query and range query search,
- Support of sparse vectors, binary vectors, JSON and arrays,
- FP32, FP16 and BF16 data types,
- Euclidean distance, inner product distance and cosine distance support for floating-point data,
- Hamming distance and jaccard distance for binary data,
- Support of graph indices (including HNSW), Inverted-lists based indices and a brute-force search.
- Support of vector quantization for lossy input data compression, including product quantization (PQ) and scalar quantization (SQ), that trades stored data size for accuracy,
- Re-ranking.
Milvus similarity search engine relies on heavily-modified forks of third-party open-source similarity search libraries, such as Faiss,[7][8] DiskANN[9][10] and hnswlib.[11]
Milvus includes optimizations for I/O data layout, specific to graph search indices.[12]
Database
[edit]As a database, Milvus provides the following features:[6]:
- Column-oriented database
- Supported data consistency levels[13]:
- Strong consistency ensures that users can read the latest version of data,
- Bounded staleness allows data inconsistency during a certain period of time,
- Session ensures that all data writes can be immediately perceived in reads during the same session,
- Eventual consistency ensures that replicas eventually converge to the same state given that no further write operations are done.
- Data sharding
- Streaming data ingestion, which allows to process and ingest data in real-time as it arrives,
- Dynamic schema, which allows inserting the data without a predefined schema,
- Storage/computing disaggregation, which splits the database system into several mutually independent layers,
- Multi-tenancy scenarios (database-oriented, collection-oriented, partition-oriented)[14]
- Memory-mapped data storage,
- Role-based access control,
- Multi-vector and hybrid search[15]
Deployment options
[edit]Milvus supports working in the following modes[16]
- Embedded, which is achieved via a Python-based wrapper pymilvus[17]
- Standalone, which is designed for operating on a single machine. Docker-based images are preferred.
- Distributed, which can be deployed on a Kubernetes cluster.
A fully managed SaaS version called Zilliz Cloud[18] is available.
GPU support
[edit]Milvus provides GPU accelerated index building and search using Nvidia CUDA technology[19][20] via Nvidia RAFT library,[21] including a recent GPU-based graph indexing algorithm Nvidia CAGRA[22]
Integration
[edit]Milvus provides official SDK clients for Java, NodeJS, Python and Go.[23] An additional C# SDK client was contributed by Microsoft.[6][24]
Milvus support integration with Prometheus and Grafana for monitoring and alerts.
Milvus provides connectors[6] for OpenAI models,[25][26] HayStack,[27] LangChain[28]
Milvus supports integration with IBM Watsonx.[29]
See also
[edit]References
[edit]- ^ "Release notes for Milvus v2.4.15". GitHub.
- ^ a b "LF AI & Data Foundation Announces Graduation of Milvus Project". June 23, 2021.
- ^ Liao, Ingrid Lunden and Rita (2022-08-24). "Zilliz raises $60M, relocates to SF". TechCrunch. Retrieved 2024-10-21.
- ^ "Milvus: A Purpose-Built Vector Data Management System". SIGMOD '21: Proceedings of the 2021 International Conference on Management of Data. June 18, 2021. pp. 2614–2627. doi:10.1145/3448016.3457550. ISBN 978-1-4503-8343-1.
- ^ Guo, Rentong; Luan, Xiaofan; Xiang, Long; Yan, Xiao; Yi, Xiaomeng; Luo, Jigao; Cheng, Qianya; Xu, Weizhi; Luo, Jiarui; Liu, Frank; Cao, Zhenshan; Qiao, Yanliang; Wang, Ting; Tang, Bo; Xie, Charles (2022). "Manu: A Cloud Native Vector Database Management System". arXiv:2206.13843 [cs.DB].
- ^ a b c d "Milvus overview". Retrieved September 23, 2024.
- ^ "Faiss". GitHub. Retrieved September 23, 2024.
- ^ Douze, Matthijs; Guzhva, Alexandr; Deng, Chengqi; Johnson, Jeff; Szilvasy, Gergely; Mazaré, Pierre-Emmanuel; Lomeli, Maria; Hosseini, Lucas; Jégou, Hervé (2024). "The Faiss library". arXiv:2401.08281 [cs.LG].
- ^ "DiskANN library". GitHub. Retrieved September 23, 2024.
- ^ Subramanya, Suhas Jayaram; Kadekodi, Rohan; Krishaswamy, Ravishankar; Simhadri, Harsha Vardhan (8 December 2019). "DiskANN: fast accurate billion-point nearest neighbor search on a single node". Proceedings of the 33rd International Conference on Neural Information Processing Systems. Curran Associates Inc.: 13766–13776.
- ^ "Hnswlib - fast approximate nearest neighbor search". GitHub. Retrieved September 23, 2024.
- ^ Wang, Mengzhao; Xu, Weizhi; Yi, Xiaomeng; Wu, Songlin; Peng, Zhangyang; Ke, Xiangyu; Gao, Yunjun; Xu, Xiaoliang; Guo, Rentong; Xie, Charles (2024). "Starling: An I/O-Efficient Disk-Resident Graph Index Framework for High-Dimensional Vector Similarity Search on Data Segment". Proceedings of the ACM on Management of Data. 2: 1–27. arXiv:2401.02116. doi:10.1145/3639269.
- ^ "Consistency levels in Milvus". Retrieved September 29, 2024.
- ^ "Multi-tenancy strategies". Retrieved September 29, 2024.
- ^ "Hybrid Search". Retrieved September 23, 2024.
- ^ "Deployment options".
- ^ "Python SDK for Milvus". GitHub.
- ^ "Zilliz cloud". Retrieved October 10, 2024.
- ^ "What's New In Milvus 2.3 Beta - 10X faster with GPUs". Retrieved September 29, 2024.
- ^ "Milvus 2.3 Launches with Support for Nvidia GPUs". 23 March 2023. Retrieved September 29, 2024.
- ^ "NVIDIA RAFT library". GitHub.
- ^ Ootomo, Hiroyuki; Naruse, Akira; Nolet, Corey; Wang, Ray; Feher, Tamas; Wang, Yong (August 2023). "CAGRA: Highly Parallel Graph Construction and Approximate Nearest Neighbor Search for GPUs". arXiv:2308.15136 [cs.DS].
- ^ "Install Milvus Go SDK". Retrieved September 29, 2024.
- ^ "Get Started with Milvus Vector DB in .NET". March 6, 2024. Retrieved September 29, 2024.
- ^ "Getting started with Milvus and OpenAI". Mar 28, 2023. Retrieved September 23, 2024.
- ^ "OpenAI and Milvus simple app". GitHub. Retrieved September 23, 2024.
- ^ "Integration HayStack + Milvus". Retrieved September 23, 2024.
- ^ "Milvus connector for LangChain". Retrieved September 23, 2024.
- ^ "IBM watsonx.data's integrated vector database: unify, prepare, and deliver your data for AI". IBM. April 9, 2024. Retrieved September 29, 2024.
This article has not been added to any content categories. Please help out by adding categories to it so that it can be listed with similar articles. (November 2024) |