Resumen de las opciones de despliegue de Milvus
Milvus es una base de datos vectorial escalable y de alto rendimiento. Es compatible con casos de uso de una amplia gama de tamaños, desde demostraciones que se ejecutan localmente en cuadernos Jupyter hasta clústeres Kubernetes de escala masiva que manejan decenas de miles de millones de vectores. Actualmente, existen tres opciones de despliegue de Milvus: Milvus Lite, Milvus Standalone y Milvus Distributed.
Milvus Lite
Milvus Lite es una biblioteca Python que puede importarse en sus aplicaciones. Como versión ligera de Milvus, es ideal para la creación rápida de prototipos en cuadernos Jupyter o para su ejecución en dispositivos inteligentes con recursos limitados. Milvus Lite soporta las mismas API que otras implementaciones de Milvus. El código del lado del cliente que interactúa con Milvus Lite también puede funcionar con instancias Milvus en otros modos de despliegue.
Para integrar Milvus Lite en sus aplicaciones, ejecute pip install pymilvus
para instalarlo y utilice la sentencia MilvusClient("./demo.db")
para instanciar una base de datos vectorial con un archivo local que persista todos sus datos. Para más detalles, consulte Ejecutar Milvus Lite.
Milvus Standalone
Milvus Standalone es un despliegue de servidor de una sola máquina. Todos los componentes de Milvus Standalone están empaquetados en una sola imagen Docker, lo que hace que el despliegue sea conveniente. Si tiene una carga de trabajo de producción pero prefiere no usar Kubernetes, ejecutar Milvus Standalone en una sola máquina con suficiente memoria es una buena opción. Además, Milvus Standalone soporta alta disponibilidad a través de la replicación maestro-esclavo.
Milvus Distribuido
Milvus Distributed puede desplegarse en clústeres Kubernetes. Este despliegue presenta una arquitectura nativa de la nube, en la que la carga de ingestión y las consultas de búsqueda son gestionadas por separado por nodos aislados, lo que permite la redundancia de los componentes críticos. Ofrece la máxima escalabilidad y disponibilidad, así como la flexibilidad de personalizar los recursos asignados en cada componente. Milvus Distributed es la mejor opción para los usuarios empresariales que ejecutan sistemas de búsqueda vectorial a gran escala en producción.
Elija el despliegue adecuado para su caso de uso
La selección de un modo de despliegue depende típicamente de la etapa de desarrollo de su aplicación:
Para la creación rápida de prototipos
Si desea construir rápidamente algo como prototipo o con fines de aprendizaje, como demostraciones de Generación Aumentada de Recuperación (RAG), chatbots de IA, búsqueda multimodal, Milvus Lite por sí mismo o una combinación de Milvus Lite y Milvus Standalone es adecuado. Puede utilizar Milvus Lite en cuadernos para la creación rápida de prototipos y explorar varios enfoques, como diferentes estrategias de fragmentación en RAG. Es posible que desee desplegar la aplicación construida con Milvus Lite en una producción a pequeña escala para servir a usuarios reales, o validar la idea en conjuntos de datos más grandes, digamos más de unos pocos millones de vectores. Milvus Standalone es apropiado. La lógica de la aplicación para Milvus Lite aún puede compartirse ya que todas las implementaciones de Milvus tienen la misma API del lado del cliente. Los datos almacenados en Milvus Lite también pueden trasladarse a Milvus Standalone con una herramienta de línea de comandos.
Despliegue de producción a pequeña escala
Para las primeras fases de producción, cuando el proyecto todavía está buscando la adecuación del producto al mercado y la agilidad es más importante que la escalabilidad, Milvus Standalone es la mejor opción. Aún puede escalar hasta 100M de vectores si se cuenta con suficientes recursos de máquina, mientras que requiere mucho menos DevOps que mantener un clúster K8s.
Despliegue de producción a gran escala
A medida que su negocio crece rápidamente y la escala de datos excede la capacidad de un solo servidor, es hora de considerar Milvus Distributed. Puede seguir utilizando Milvus Standalone para el entorno de desarrollo o puesta en escena por su comodidad, y operar el clúster K8s que ejecuta Milvus Distributed. Esto puede sostenerle hacia decenas de miles de millones de vectores, así como proporcionar flexibilidad en la adaptación del tamaño del nodo para su carga de trabajo particular, como casos de alta lectura, escritura infrecuente o alta escritura, baja lectura.
Búsqueda local en dispositivos periféricos
Para realizar búsquedas privadas o confidenciales en dispositivos periféricos, puede implementar Milvus Lite en el dispositivo sin depender de un servicio basado en la nube para realizar búsquedas de texto o imágenes. Esto es adecuado para casos como la búsqueda de documentos propios o la detección de objetos en el dispositivo.
La elección del modo de despliegue de Milvus depende de la fase y la escala de su proyecto. Milvus proporciona una solución flexible y potente para diversas necesidades, desde la creación rápida de prototipos hasta el despliegue empresarial a gran escala.
- Milvus Lite se recomienda para conjuntos de datos más pequeños, de hasta unos pocos millones de vectores.
- Milvus Standalone es adecuado para conjuntos de datos de tamaño medio, hasta 100 millones de vectores.
- Milvus Distributed está diseñado para despliegues a gran escala, capaz de manejar conjuntos de datos desde 100 millones hasta decenas de miles de millones de vectores.
Seleccione la opción de despliegue para su caso de uso
Comparación de funcionalidades
Características | Milvus Lite | Milvus Independiente | Milvus Distribuido |
---|---|---|---|
SDK / Lirario cliente | Python gRPC | Python Go Java Node.js C# RESTful | Python Java Go Node.js C# RESTful |
Tipos de datos | Vector denso Vector disperso Vector binario Booleano Entero Punto flotante VarChar Matriz JSON | Vector denso Vector disperso Vector binario Booleano Entero Punto flotante VarChar Matriz JSON | Vector denso Vector disperso Vector binario Booleano Entero Punto flotante VarChar Matriz JSON |
Capacidades de búsqueda | Búsqueda vectorial (Búsqueda RNA) Filtrado de metadatos Búsqueda por rangos Consulta escalar Obtención de entidades por clave principal Búsqueda híbrida | Búsqueda vectorial (búsqueda RNA) Filtrado de metadatos Búsqueda por rango Consulta escalar Obtención de entidades por clave principal Búsqueda híbrida | Búsqueda vectorial (Búsqueda RNA) Filtrado de metadatos Búsqueda por rango Consulta escalar Obtención de entidades por clave principal Búsqueda híbrida |
Operaciones CRUD | ✔️ | ✔️ | ✔️ |
Gestión avanzada de datos | N/A | Control de acceso Partición Clave de partición | Control de acceso Partición Clave de partición Agrupación de recursos físicos |
Niveles de coherencia | Fuerte | Fuerte Estancamiento limitado Sesión Eventual | Fuerte Estancamiento limitado Sesión Eventual |