milvus-logo
LFAI
Home
  • Acerca de Milvus

¿Qué es Milvus?

Milvus es una base de datos vectorial de alto rendimiento y altamente escalable que se ejecuta eficientemente en una amplia gama de entornos, desde un ordenador portátil hasta sistemas distribuidos a gran escala. Está disponible como software de código abierto y como servicio en la nube.

Milvus es un proyecto de código abierto de LF AI & Data Foundation distribuido bajo la licencia Apache 2.0. La mayoría de los colaboradores son expertos de la comunidad de la computación de alto rendimiento (HPC), especializados en la creación de sistemas a gran escala y en la optimización de código compatible con el hardware. Entre los principales colaboradores se encuentran profesionales de Zilliz, ARM, NVIDIA, AMD, Intel, Meta, IBM, Salesforce, Alibaba y Microsoft.

Datos no estructurados, incrustaciones y Milvus

Los datos no estructurados, como texto, imágenes y audio, varían de formato y contienen una rica semántica subyacente, lo que dificulta su análisis. Para gestionar esta complejidad, se utilizan embebimientos que convierten los datos no estructurados en vectores numéricos que capturan sus características esenciales. A continuación, estos vectores se almacenan en una base de datos vectorial, lo que permite realizar búsquedas y análisis rápidos y escalables.

Milvus ofrece sólidas capacidades de modelado de datos, lo que le permite organizar sus datos no estructurados o multimodales en colecciones estructuradas. Admite una amplia gama de tipos de datos para el modelado de diferentes atributos, incluidos los tipos numéricos y de caracteres comunes, varios tipos de vectores, matrices, conjuntos y JSON, lo que le ahorra el esfuerzo de mantener varios sistemas de bases de datos.

Untructured data, embeddings, and Milvus Datos no estructurados, incrustaciones y Milvus

Milvus ofrece tres modos de implementación, que cubren una amplia gama de escalas de datos, desde la creación de prototipos locales en Jupyter Notebooks hasta clústeres masivos de Kubernetes que administran decenas de miles de millones de vectores:

  • Milvus Lite es una biblioteca Python que puede integrarse fácilmente 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 periféricos con recursos limitados. Más información.
  • Milvus Standalone es una implementación de servidor de una sola máquina, con todos los componentes agrupados en una sola imagen Docker para una implementación conveniente. Obtenga más información.
  • Milvus Distributed puede desplegarse en clústeres Kubernetes, con una arquitectura nativa de la nube diseñada para escenarios a escala de miles de millones o incluso mayor. Esta arquitectura garantiza la redundancia en componentes críticos. Más información.

Qué hace que Milvus sea tan rápido?

Milvus fue diseñado desde el primer día para ser un sistema de base de datos vectorial altamente eficiente. En la mayoría de los casos, Milvus supera a otras bases de datos vectoriales entre 2 y 5 veces (véanse los resultados de VectorDBBench). Este alto rendimiento es el resultado de varias decisiones clave de diseño:

Optimización en función del hardware: Para acomodar Milvus en varios entornos de hardware, hemos optimizado su rendimiento específicamente para muchas arquitecturas y plataformas de hardware, incluyendo AVX512, SIMD, GPUs y SSD NVMe.

Algoritmos de búsqueda avanzados: Milvus admite una amplia gama de algoritmos de indexación/búsqueda en memoria y en disco, incluidos IVF, HNSW, DiskANN y más, todos los cuales han sido profundamente optimizados. En comparación con implementaciones populares como FAISS y HNSWLib, Milvus ofrece un rendimiento entre un 30% y un 70% superior.

Motor de búsqueda en C++: Más del 80% del rendimiento de una base de datos vectorial viene determinado por su motor de búsqueda. Milvus utiliza C++ para este componente crítico debido al alto rendimiento del lenguaje, la optimización de bajo nivel y la gestión eficiente de los recursos. Y lo que es más importante, Milvus integra numerosas optimizaciones de código conscientes del hardware, que van desde la vectorización a nivel de ensamblador hasta la paralelización y programación multihilo, para aprovechar al máximo las capacidades del hardware.

Orientado a columnas: Milvus es un sistema de base de datos vectorial orientado a columnas. Las principales ventajas proceden de los patrones de acceso a los datos. Al realizar consultas, una base de datos orientada a columnas lee sólo los campos específicos implicados en la consulta, en lugar de filas enteras, lo que reduce enormemente la cantidad de datos a los que se accede. Además, las operaciones sobre datos basados en columnas pueden vectorizarse fácilmente, lo que permite aplicar operaciones en las columnas enteras a la vez, mejorando aún más el rendimiento.

Qué hace que Milvus sea tan escalable

En 2022, Milvus soportaba vectores a escala de miles de millones, y en 2023, escaló hasta decenas de miles de millones con una estabilidad constante, alimentando escenarios a gran escala para más de 300 grandes empresas, como Salesforce, PayPal, Shopee, Airbnb, eBay, NVIDIA, IBM, AT&T, LINE, ROBLOX, Inflection, etc.

La arquitectura de sistema altamente desacoplada y nativa de la nube de Milvus garantiza que el sistema pueda expandirse continuamente a medida que crecen los datos:

Highly decoupled system architecture of Milvus Arquitectura de sistema altamente desacoplada de Milvus

Milvus en sí es totalmente apátrida, por lo que se puede escalar fácilmente con la ayuda de Kubernetes o nubes públicas. Además, los componentes de Milvus están bien desacoplados, con las tres tareas más críticas -búsqueda, inserción de datos e indexación/compactación- diseñadas como procesos fácilmente paralelizables, con la lógica compleja separada. Esto garantiza que el nodo de consulta, el nodo de datos y el nodo de indexación correspondientes puedan ampliarse y reducirse de forma independiente, optimizando el rendimiento y la rentabilidad.

Tipos de búsquedas compatibles con Milvus

Milvus admite varios tipos de funciones de búsqueda para satisfacer las demandas de diferentes casos de uso:

  • Búsqueda RNA: Encuentra los K vectores más cercanos a su vector de consulta.
  • Búsqueda por filtrado: Realiza la búsqueda RNA bajo condiciones de filtrado especificadas.
  • Búsqueda por rango: Busca vectores dentro de un radio especificado a partir del vector de consulta.
  • Búsqueda híbrida: Realiza una búsqueda RNA basada en múltiples campos vectoriales.
  • Búsqueda de texto completo: Búsqueda de texto completo basada en BM25.
  • Reordenación: Ajusta el orden de los resultados de la búsqueda basándose en criterios adicionales o en un algoritmo secundario, refinando los resultados iniciales de la búsqueda RNA.
  • Recuperar: Recupera datos por sus claves primarias.
  • Consulta: Recupera datos utilizando expresiones específicas.

Completo conjunto de funciones

Además de las funciones de búsqueda clave mencionadas anteriormente, Milvus también proporciona un conjunto de funciones implementadas en torno a las búsquedas RNA para que pueda utilizar plenamente sus capacidades.

API y SDK

Tipos de datos avanzados

Además de los tipos de datos primitivos, Milvus soporta varios tipos de datos avanzados y sus respectivas métricas de distancia aplicables.

Aceleración

  • Algoritmos de búsqueda Milvus soporta un conjunto de algoritmos de indexación y búsqueda sintonizables. Para más detalles, consulte Índice en memoria, Índice en disco e Índice GPU.

  • Particiones y claves de partición Las particiones son subdivisiones de una colección Milvus. Puede elegir un campo escalar como clave de partición para mejorar el rendimiento de la búsqueda. Para más detalles, consulte Gestionar particiones y Utilizar clave de partición.

  • Modelo de Consistencia Sintonizable La consistencia asegura que cada nodo o réplica de Milvus tenga la misma vista de los datos cuando escribe o lee datos en un momento dado. Puede sintonizar fácilmente el nivel de consistencia al realizar búsquedas RNA en Milvus. Para más detalles, consulte Consistencia.

  • Importación de datos de alto rendimiento Para importar un gran volumen de datos a Milvus en lugar de insertarlos uno tras otro, considere el uso de nuestras herramientas de importación de datos de alto rendimiento. Para más detalles, consulte Preparar datos de origen e importar datos.

  • Soporte multi-tenancy Milvus ha implementado muchas características orientadas a escenarios multi-tenancy, incluyendo Partition Key, Clustering Key, y más. Para más detalles, consulte Estrategias multi-tenancy.

Seguridad y autorización

  • Modelo de consistencia ajustable La consistencia asegura que cada nodo o réplica de Milvus tenga la misma vista de los datos cuando escribe o lee datos en un momento dado. Puede ajustar fácilmente el nivel de consistencia al realizar búsquedas RNA en Milvus. Para más detalles, consulte Consistencia.

  • Aislamiento de Datos y Control de Recursos Para escenarios multi-tenancy, el aislamiento de datos es el requisito básico de seguridad. Milvus implementa varias características para resolver sus preocupaciones de seguridad. Para obtener más información, consulte Gestión de grupos de recursos y Compactación de clústeres.

Integraciones AI

  • Integraciones de Modelos de Incrustación Los Modelos de Incrustación convierten datos no estructurados a su representación numérica en un espacio de datos de alta dimensión para que usted pueda almacenarlos en Milvus. Actualmente, PyMilvus, el SDK de Python, integra varios modelos de incrustación para que pueda preparar rápidamente sus datos en incrustaciones vectoriales. Para más detalles, consulte Visión general de la incrustación.

  • Integración de modelos de reordenación En el ámbito de la recuperación de información y la IA generativa, un reordenador es una herramienta esencial que optimiza el orden de los resultados de las búsquedas iniciales. PyMilvus también integra varios modelos de reordenación para optimizar el orden de los resultados obtenidos en las búsquedas iniciales. Para más detalles, consulte Visión general de los rerankers.

  • LangChain y otras integraciones de herramientas de IA En la era GenAI, las herramientas, como LangChain, reciben mucha atención por parte de los desarrolladores de aplicaciones. Como componente central, Milvus suele servir como almacén de vectores en dichas herramientas. Para saber cómo integrar Milvus en sus herramientas de IA favoritas, consulte nuestras Integraciones y tutoriales.

Herramientas y ecosistema

  • Attu Attu es una GUI intuitiva todo-en-uno que le ayuda a gestionar Milvus y los datos que almacena. Para más detalles, consulte el repositorio de Attu.

  • Birdwatcher Birdwatcher es una herramienta de depuración para Milvus. Usándola para conectarse a etcd, puede comprobar el estado de su sistema Milvus o configurarlo sobre la marcha. Para más detalles, consulte BirdWatcher.

  • Integraciones de Promethus y Grafana Prometheus es un conjunto de herramientas de alerta y supervisión de sistemas de código abierto para Kubernetes. Grafana es una pila de visualización de código abierto que puede conectarse con todas las fuentes de datos. Puede utilizar Promethus y Grafana como proveedor de servicios de supervisión para supervisar visualmente el rendimiento de Milvus distributed. Para obtener más información, consulte Despliegue de servicios de supervisión.

  • Milvus Backup Milvus Backup es una herramienta que permite a los usuarios realizar copias de seguridad y restaurar los datos de Milvus. Proporciona tanto CLI como API para adaptarse a diferentes escenarios de aplicación. Para más detalles, consulte Milvus Backup.

  • Milvus Capture Data Change (CDC) Milvus-CDC puede capturar y sincronizar datos incrementales en las instancias de Milvus y garantiza la fiabilidad de los datos empresariales transfiriéndolos sin problemas entre las instancias de origen y de destino, lo que permite una copia de seguridad incremental y una recuperación de desastres sencillas. Para obtener más información, consulte Milvus CDC.

  • Conectores Milvus Milvus ha planificado un conjunto de conectores para que pueda integrar Milvus con herramientas de terceros, como Apache Spark. Actualmente, puede utilizar nuestro conector Spark para alimentar sus datos Milvus a Apache Spark para el procesamiento de aprendizaje automático. Para más detalles, consulte Conector Spark-Milvus.

  • Servicios de Transmisión Vectorial (VTS) Milvus proporciona un conjunto de herramientas para que usted pueda transferir sus datos entre una instancia Milvus y un montón de fuentes de datos, incluyendo clusters Zilliz, Elasticsearch, Postgres (PgVector), y otra instancia Milvus. Para más detalles, consulte Migraciones.

Traducido porDeepLogo

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

¿Fue útil esta página?