Milvus es una base de datos vectorial de código abierto desarrollada por Zilliz. Milvus es conocido por proporcionar almacenamiento de información escalable para grandes cantidades de embedadas vectoriales y por soportar búsquedas de similitud de alto rendimiento
de datos vectoriales.Zilliz desarrolló Milvus por primera vez en 2017 y contribuyó con el proyecto a la Fundación Linux en 2020. Milvus ahora está disponible como un software de código abierto bajo la Licencia Apache 2.0 y como un servicio en la nube totalmente administrado de Zilliz.
Las bases de datos vectoriales almacenan y gestionan conjuntos de datos en forma de vectores. Pueden ayudar a las organizaciones a gestionar datos no estructurados, y son críticos para los esfuerzos avanzados de inteligencia artificial (IA) y machine learning (ML).
Los vectores son conjuntos de números que representan conceptos y objetos complejos, como palabras e imágenes.
Los datos no estructurados, como texto, video y audio, constituyen una parte significativa de los datos empresariales en la actualidad, pero las bases de datos tradicionales a menudo no son adecuadas para organizar y administrar estos datos.
Las organizaciones pueden alimentar estos datos a modelos especializados de incrustación de aprendizaje profundo, que emiten representaciones vectoriales llamadas "incrustaciones". Por ejemplo, la palabra "cat" podría representar mediante el vector [0,2, -0,4, 0,7], mientras que la palabra "dog" podría representar mediante [0,6, 0,1, 0,5].
La transformación de datos en vectores permite a las organizaciones almacenar distintos tipos de datos no estructurados en un formato compartido en una base de datos vectorial.
Los vectores también ayudan a las organizaciones a desbloquear el valor de estos datos para IA y machine learning (ML). Los vectores capturan las relaciones semánticas entre los elementos, lo que permite un procesamiento eficaz por parte de modelos de lenguaje grandes (LLM) y herramientas de IA generativa . La mayoría de las aplicaciones avanzadas de IA y machine learning (ML) hoy en día se basan en vectores para el entrenamiento y la generación de contenidos.
Al igual que otras bases de datos vectoriales, Milvus ofrece a las organizaciones una forma de gestionar y organizar los vectores de incrustación. El almacenamiento Escalable y las eficientes capacidades de búsqueda vectorial de la base de datos vectorial Milvus la convirtieron en una opción popular para la generación aumentada por recuperación (RAG), los sistemas de recomendación y otras aplicaciones de IA.
Milvus es una base de datos vectorial nativa de la nube con una arquitectura basada en microservicios multicapa. Milvus separa los recursos de almacenamiento y de cómputo, lo que permite a las organizaciones escalar cada capa de manera independiente y horizontal
Milvus es compatible con varios modelos de integración diferentes. Las organizaciones pueden conectar sus modelos a Milvus, que Ingesta las incrustaciones junto con metadatos y otra información pertinente. Milvus admite cargas de transmisión e incrustación por lotes.
Milvus tiene 4 capas:
Capa de acceso: esta es la capa externa, que acepta entradas de usuarios y servicios y devuelve salidas.
Servicio de coordinación: Zilliz se refiere a esta capa como el “cerebro” del sistema porque organiza el equilibrio de carga, la gestión de datos, la ejecución de consultas y otras tareas importantes.
Nodos de trabajo: esta capa ejecuta consultas, actualiza datos y crea índices.
Capa de almacenamiento de objetos: esta capa incluye un almacén de metadatos, un agente de registros que registra los cambios de datos en tiempo real y un almacén de objetos que contiene instantáneas de registros, archivos de índice y resultados de cálculos intermedios.
Milvus soporta búsquedas de similitud vectorial de alto rendimiento, un tipo de búsqueda vectorial que devuelve resultados semánticamente similares a una consulta. El beneficio de la búsqueda de similitud es que no se limita a coincidencias exactas, como sería una búsqueda de palabras clave tradicional.
Por ejemplo, una búsqueda por palabra clave de "best pizza restaurant" solo arrojaría resultados que contuvieran las palabras "best", "pizza" y "restaurant". Una búsqueda de similitud para la misma palabra clave encontraría resultados para pizzerías muy recomendadas, incluso si las palabras exactas "best pizza restaurant" no se utilizan en el contenido.
Milvus admite varios tipos de búsqueda de similitud, incluido el vecino más cercano aproximado (ANN) top-k y el ANN de rango.
Milvus también admite búsquedas híbridas, que combinan búsquedas de vectores semánticos con otros criterios, como el filtrado de metadatos o la búsqueda de palabras clave.
Las búsquedas híbridas pueden hacer que las búsquedas sean más eficientes y relevantes. Considere una búsqueda que combine palabras clave y búsqueda vectorial. La búsqueda puede usar primero palabras clave específicas para filtrar los resultados en función de las coincidencias exactas y luego usar la búsqueda por similitud vectorial para buscar en esos resultados filtrados el contenido más relevante desde el punto de vista semántico.
Milvus admite varios tipos de indexación, incluidos el mundo pequeño navegable jerárquico (HNSW), el archivo invertido (IVF) y los índices basados en GPU.
Los vectores de indexación pueden ayudar a acelerar las búsquedas. Por ejemplo, HNSW agrupa vectores similares durante el proceso de construcción del índice, lo que facilita la búsqueda de resultados relevantes con mayor rapidez.
Las capas de Milvus pueden escalar independientemente unas de otras, lo que puede proporcionar a las organizaciones una forma rentable y efectiva de manejar cantidades masivas de datos vectoriales y búsquedas intensivas.
Milvus ofrece numerosos kits de desarrollo de software (SDK) para apoyar el desarrollo en varios lenguajes, incluidos Python (pymilvus), Java y Go.
Milvus también puede integrarse con herramientas de análisis como Apache Spark, marcos como LangChain y modelos de IA generativa como IBM watsonx, Llama de Meta y modelos de GPT de OpenAI.
Una gran comunidad de código abierto contribuye con arreglos, actualizaciones y otras mejoras a los repositorios de GitHub de Milvus.
Tanto Pinecone como Milvus ofrecen búsqueda de baja latencia y almacenamiento escalable, pero Pinecone es una base de datos vectorial patentada y solo está disponible como servicio gestionado.
Al igual que Milvus, Weaviate es de código abierto y admite búsquedas híbridas. Una diferencia clave es que Milvus ofrece más tipos de indexación que Weaviate.
Otra base de datos vectorial de código abierto, Qdrant, es conocida por sus sólidas capacidades de filtrado de metadatos. Si bien Qdrant es adecuado para usos de escala moderada, Milvus generalmente puede manejar mayores volúmenes de datos vectoriales.
Chroma se centra en la facilidad de uso y los despliegues locales rápidos. Chroma no tiene una arquitectura distribuida, lo que la hace menos escalable. Si bien Chroma se utiliza comúnmente para la creación de prototipos y pruebas, Milvus puede admitir una gama más amplia de casos de uso.
Las organizaciones emplean Milvus para dar soporte a numerosas aplicaciones de AI, entre las que se incluyen:
Generación aumentada por recuperación (RAG)
Sistemas de recomendación
Búsquedas en los medios
Detección de anomalías y detección de fraude
RAG es una arquitectura que conecta los modelos de IA con bases de conocimiento externas para ayudarlos a ofrecer resultados más relevantes y precisos.
Milvus es común en las implementaciones de RAG debido a su soporte para búsquedas híbridas eficientes. Al combinar la comprensión contextual de la búsqueda semántica con la precisión de la búsqueda de palabras clave y el filtrado de metadatos, Milvus puede ayudar a sacar a la luz documentos relevantes, fragmentos de código y otra información de fuentes RAG.
CacheGPT, una caché semántica de código abierto para LLM desarrollada por Zilliz, también ayuda a Milvus a dar soporte a las implementaciones de RAG. CacheGPT almacena las respuestas de las aplicaciones de IA generativa como incrustaciones vectoriales.
Los servicios conectados, como las interfaces RAG, no necesitan realizar una llamada API a la IA generativa para cada búsqueda. En su lugar, pueden comprobar primero la memoria caché y llamar a la IA generativa solo si la respuesta no está ahí.
Milvus es popular en los sistemas de recomendación que relacionan contenido, productos y anuncios con usuarios en función de comportamientos pasados.
Las preferencias del usuario se pueden representar como vectores, y una búsqueda de similitud puede mostrar las representaciones vectoriales de productos, anuncios y contenido que se acercan a las preferencias del usuario.
Las capacidades de búsqueda por similitud de Milvus pueden ayudar a agilizar la búsqueda de imágenes, audio, video y otros medios.
Milvus se puede utilizar para ayudar a detectar defectos en los productos comparando los vectores de imágenes de productos con los vectores que representan las formas adecuadas de esos productos. Las diferencias entre los vectores podrían indicar defectos.
Milvus también puede ayudar a detectar anomalías en otros contextos. En ciberseguridad, los vectores que representan la actividad de red autorizada se pueden comparar con los vectores que representan la actividad maliciosa conocida. Del mismo modo, en finanzas, se pueden analizar los vectores que representan las transacciones para identificar desviaciones que puedan indicar fraude.