PyMilvus 2.4.0 Release Notes
Milvus 2.4.0-rc.1 related scenario-based features:
Milvus has released version 2.4.0-rc.1. This version of pymilvus incorporates the new features introduced in Milvus 2.4.0-rc.1
- New GPU Index named CAGRA
Thanks to NVIDIA's contribution, this new GPU index provides a 10x performance boost, especially for batch searches. Please refer to the sample code inexamples/example_gpu_cagra.py
- Multi-vector and hybrid search
This feature helps store vector embeddings generated from multiple models and conduct multi-vector searches accordingly. Please refer to the sample code inexamples/hello_hybrid_sparse_dense.py
- Sparse vectors
Sparse vectors are ideal for keyword interpretation and analysis. Your collection can now process sparse vectors. Please refer to the sample code inexamples/hello_sparse.py
- Grouping search
Categorical aggregation helps you achieve document-level recall for Retrieval-Augmented Generation (RAG) applications. Please refer to the sample code inexamples/example_group_by.py
- Inverted index and fuzzy matching
Inverted index and fuzzy match capabilities for scalar fields help improve keyword retrieval capability. Please refer to the sample code inexamples/inverted_index_example.py
andexamples/fuzzy_match.py
- New Vector DataType Float16 and BFloat16
Half precision like Float16 and BFloat16 are widely used in hardware and software for machine learning or neural networks. While Float16/BFloat16 sacrifices some accuracy, it offers improved query efficiency and more efficient memory usage. Please refer to the sample code inexamples/bfloat16_example.py
andexamples/float16_example.py
Model library for pymilvus
The model library converts text to vectors using open-source embedding models and the OpenAI embedding service, accessible with
pip install pymilvus[model]
Additionally, it supports generating sparse vectors with BM25 and SPLADE, as well as both dense and sparse vectors simultaneously with BGE-M3. For detailed usage, please refer to examples/hello_model.py
.
MilvusClient
Furthermore, this version also includes the refactoring of MilvusClient that was introduced in version 2.3.7 (refer to pymilvus2.3.7). MilvusClient provides a simple and easy-to-use alternative to the ORM approach. It adopts a purely functional approach to simplify interactions with the server. Each MilvusClient establishes a gRPC connection to the server. To set up multiple connections, you can create multiple MilvusClient instances.
MilvusClient module has integrated various functional methods, making its most of functionality align with that of the ORM module.