À propos du projet
Milvus est une base de données vectorielle distribuée écrite en Go et C++ qui permet l'organisation et la recherche efficaces de vastes quantités de données non structurées, notamment du texte, des images et des informations multi-modales. Elle est conçue pour une évolutivité et une disponibilité élevées, utilisant une architecture native K8s qui sépare le calcul du stockage pour permettre une mise à l'échelle horizontale indépendante.
Les capacités clés incluent :
- Recherche et indexation vectorielle : Prend en charge plusieurs types d'index tels que HNSW, IVF, FLAT, SCANN et DiskANN, avec une accélération matérielle pour CPU et GPU (y compris NVIDIA CAGRA).
- Recherche hybride : Prend nativement en charge les vecteurs denses pour la recherche sémantique et les vecteurs sparses pour la recherche plein texte (BM25, SPLADE, BGE-M3), permettant des résultats hybrides reclassés.
- Gestion des données : Propose l'isolation multi-tenancy, des mécanismes de stockage chaud/froid pour l'efficacité des coûts, et la prise en charge des types de données scalaires (entiers, chaînes, JSON) pour le filtrage des métadonnées.
- Sécurité : Implémente l'authentification obligatoire des utilisateurs, le chiffrement TLS et le contrôle d'accès basé sur les rôles (RBAC).
- Options de déploiement : Disponible sous forme de cluster distribué, de déploiement Docker autonome ou d'une version Python légère (Milvus Lite).
Milvus s'intègre aux frameworks d'IA populaires comme LangChain, LlamaIndex, OpenAI et HuggingFace, et fournit un SDK Python (pymilvus) pour l'ingestion et l'interrogation des données.