Sobre el proyecto
Milvus es una base de datos vectorial distribuida escrita en Go y C++ que permite la organización y búsqueda eficiente de vastas cantidades de datos no estructurados, incluyendo texto, imágenes e información multimodal. Está diseñada para una alta escalabilidad y disponibilidad, utilizando una arquitectura nativa de K8s que separa el cómputo del almacenamiento para permitir un escalado horizontal independiente.
Las capacidades clave incluyen:
- Búsqueda Vectorial e Indexación: Soporta múltiples tipos de índices como HNSW, IVF, FLAT, SCANN y DiskANN, con aceleración de hardware tanto para CPU como para GPU (incluyendo NVIDIA CAGRA).
- Búsqueda Híbrida: Soporta nativamente tanto vectores densos para búsqueda semántica como vectores dispersos para búsqueda de texto completo (BM25, SPLADE, BGE-M3), permitiendo resultados híbridos reordenados.
- Gestión de Datos: Cuenta con aislamiento multi-inquilino, mecanismos de almacenamiento hot/cold para rentabilidad y soporte para tipos de datos escalares (enteros, cadenas, JSON) para el filtrado de metadatos.
- Seguridad: Implementa autenticación de usuario obligatoria, cifrado TLS y Control de Acceso Basado en Roles (RBAC).
- Opciones de Despliegue: Disponible como un clúster distribuido, un despliegue standalone de Docker o una versión ligera de Python (Milvus Lite).
Milvus se integra con frameworks de IA populares como LangChain, LlamaIndex, OpenAI y HuggingFace, y proporciona un SDK de Python (pymilvus) para la ingesta de datos y consultas.