Software:Milvus (vector database)
File:Thumb | |
Developer(s) | Zilliz |
---|---|
Initial release | October 19, 2019 |
Stable release | v2.4.12
/ September 26, 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
Milvus has been developed by Zilliz since 2017.
Milvus has 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[3]
Features
Similarity search
Major similarity search related features that are available in the active 2.4.x Milvus branch[4]:
- 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,
- Support of HNSW index, Inverted-lists bases indices and a brute-force search.
- Re-ranking.
Milvus similarity search engine relies on heavily-modified forks of third-party open-source similarity search libraries, such as Faiss[5][6], DiskANN[7][8] and hnswlib[9].
Database
As a database, Milvus has the following features:[4]:
- Column-oriented database
- Supported data consistency levels[10]:
- 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)[11]
- Memory-mapped data storage,
- Role-based access control,
- Multi-vector and hybrid search [12]
Deployment options
Milvus supports working in the following modes[13]:
- Embedded, which is achieved via a Python-based wrapper pymilvus[14]
- Standalone, which is designed for operating on a single machine. Docker-based images are preferred.
- Distributed, which can be deployed on a Kubernetes cluster.
GPU support
Milvus provides GPU accelerated index building and search using Nvidia CUDA technology[15][16] via Nvidia RAFT library[17], including a recent GPU-based graph indexing algorithm Nvidia CAGRA[18]
Integration
Milvus provides official SDK clients for Java, NodeJS, Python and Go[19]. An additional C# SDK client was contributed by Microsoft[4][20].
Milvus support integration with Prometheus and Grafana for monitoring and alerts.
Milvus provides connectors[4] for OpenAI models[21][22], HayStack[23], LangChain[24]
Milvus supports integration with IBM Watsonx.[25]
See also
References
- ↑ "Release notes for Milvus v2.4.12". https://github.com/milvus-io/milvus/releases/tag/v2.4.12.
- ↑ 2.0 2.1 "LF AI & Data Foundation Announces Graduation of Milvus Project". June 23, 2021. https://lfaidata.foundation/blog/2021/06/23/lf-ai-data-foundation-announces-graduation-of-milvus-project/.
- ↑ "Milvus: A Purpose-Built Vector Data Management System". June 18, 2021. pp. 2614–2627. doi:10.1145/3448016.3457550. ISBN 978-1-4503-8343-1. https://dl.acm.org/doi/pdf/10.1145/3448016.3457550.
- ↑ 4.0 4.1 4.2 4.3 "Milvus overview". https://milvus.io/docs/overview.md.
- ↑ "Faiss". https://github.com/facebookresearch/faiss.
- ↑ 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". https://github.com/microsoft/DiskANN.
- ↑ "DiskANN: Fast Accurate Billion-point Nearest Neighbor Search on a Single Node". https://suhasjs.github.io/files/diskann_neurips19.pdf.
- ↑ "Hnswlib - fast approximate nearest neighbor search". https://github.com/nmslib/hnswlib.
- ↑ "Consistency levels in Milvus". https://milvus.io/docs/consistency.md.
- ↑ "Multi-tenancy strategies". https://milvus.io/docs/multi_tenancy.md.
- ↑ "Hybrid Search". https://milvus.io/docs/multi-vector-search.md.
- ↑ "Deployment options". https://milvus.io/docs/install-overview.md.
- ↑ "Python SDK for Milvus". https://github.com/milvus-io/pymilvus.
- ↑ "What's New In Milvus 2.3 Beta - 10X faster with GPUs". https://zilliz.com/blog/milvus-2-3-beta-new-features-and-updates.
- ↑ "Milvus 2.3 Launches with Support for Nvidia GPUs". 23 March 2023. https://www.datanami.com/2023/03/23/milvus-2-3-launches-with-support-for-nvidia-gpus/.
- ↑ "NVIDIA RAFT library". https://github.com/rapidsai/raft.
- ↑ 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". https://milvus.io/docs/install-go.md.
- ↑ "Get Started with Milvus Vector DB in .NET". March 6, 2024. https://devblogs.microsoft.com/dotnet/get-started-milvus-vector-db-dotnet/.
- ↑ "Getting started with Milvus and OpenAI". Mar 28, 2023. https://cookbook.openai.com/examples/vector_databases/milvus/getting_started_with_milvus_and_openai.
- ↑ "OpenAI and Milvus simple app". https://github.com/Snaiel/OpenAI-Milvus-QA-Over-Docs.
- ↑ "Integration HayStack + Milvus". https://haystack.deepset.ai/integrations/milvus-document-store.
- ↑ "Milvus connector for LangChain". https://python.langchain.com/docs/integrations/vectorstores/milvus/.
- ↑ "IBM watsonx.data's integrated vector database: unify, prepare, and deliver your data for AI". April 9, 2024. https://www.ibm.com/blog/announcement/ibm-watsonx-data-vector-database-ai-ready-data-management/.
Original source: https://en.wikipedia.org/wiki/Milvus (vector database).
Read more |