🚀 Prueba Zilliz Cloud, el Milvus completamente gestionado, gratis—¡experimenta un rendimiento 10 veces más rápido! Prueba Ahora>>

milvus-logo
LFAI
  • Home
  • Blog
  • Novedades de Milvus 2.1 - Hacia la simplicidad y la rapidez

Novedades de Milvus 2.1 - Hacia la simplicidad y la rapidez

  • News
August 05, 2022
Xiaofan Luan

What's new in Milvus 2.1 - Towards simplicity and speed Novedades de Milvus 2.1 - Hacia la simplicidad y la velocidad

Estamos muy contentos de anunciar ellanzamiento de Milvus 2.1 después de seis meses de duro trabajo por parte de todos los colaboradores de nuestra comunidad Milvus. Esta importante iteración de la popular base de datos vectorial hace hincapié en el rendimiento y la facilidad de uso, dos de las palabras clave más importantes de nuestro enfoque. Hemos añadido soporte para cadenas, cola de mensajes Kafka y Milvus incrustado, así como una serie de mejoras en el rendimiento, la escalabilidad, la seguridad y la observabilidad. Milvus 2.1 es una actualización emocionante que tenderá un puente en la "última milla" desde el ordenador portátil del ingeniero de algoritmos hasta los servicios de búsqueda de similitud vectorial a nivel de producción.

Latencia de 5 ms

Milvus ya admite la búsqueda aproximada del vecino más próximo (RNA), un salto sustancial respecto al método KNN tradicional. Sin embargo, los problemas de rendimiento y latencia siguen siendo un reto para los usuarios que necesitan enfrentarse a escenarios de recuperación de datos vectoriales a escala de miles de millones.

En Milvus 2.1, hay un nuevo protocolo de enrutamiento que ya no depende de las colas de mensajes en el enlace de recuperación, lo que reduce significativamente la latencia de recuperación para conjuntos de datos pequeños. Los resultados de nuestras pruebas muestran que Milvus reduce ahora su nivel de latencia a 5 ms, lo que satisface los requisitos de los enlaces en línea críticos, como la búsqueda de similitudes y la recomendación.

Control de la concurrencia

Milvus 2.1 perfecciona su modelo de concurrencia introduciendo un nuevo modelo de evaluación de costes y un programador de concurrencia. Ahora ofrece un control de la concurrencia que garantiza que no habrá un gran número de solicitudes concurrentes compitiendo por los recursos de la CPU y la caché, ni se infrautilizará la CPU porque no haya suficientes solicitudes. La nueva capa de programación inteligente de Milvus 2.1 también fusiona las consultas small-nq que tienen parámetros de solicitud coherentes, lo que proporciona un sorprendente aumento del rendimiento de 3,2 veces en escenarios con small-nq y alta concurrencia de consultas.

Réplicas en memoria

Milvus 2.1 incorpora réplicas en memoria que mejoran la escalabilidad y la disponibilidad para conjuntos de datos pequeños. Al igual que las réplicas de sólo lectura de las bases de datos tradicionales, las réplicas en memoria pueden escalarse horizontalmente añadiendo máquinas cuando el QPS de lectura es alto. En la recuperación de vectores para conjuntos de datos pequeños, un sistema de recomendación a menudo necesita proporcionar QPS que superen el límite de rendimiento de una sola máquina. Ahora bien, en estos escenarios, el rendimiento del sistema puede mejorarse significativamente cargando múltiples réplicas en la memoria. En el futuro, también introduciremos un mecanismo de lectura con cobertura basado en réplicas en memoria, que solicitará rápidamente otras copias funcionales en caso de que el sistema necesite recuperarse de fallos y haga pleno uso de la redundancia en memoria para mejorar la disponibilidad general del sistema.

In-memory replicas allow query services to be based on separate
copies of the same data. Las réplicas en memoria permiten que los servicios de consulta se basen en copias separadas de los mismos datos.

Carga de datos más rápida

La última mejora del rendimiento procede de la carga de datos. Milvus 2.1 comprime ahora los registros binarios con Zstandard (zstd), lo que reduce significativamente el tamaño de los datos en los almacenes de objetos y mensajes, así como la sobrecarga de la red durante la carga de datos. Además, ahora se introducen grupos de goroutines para que Milvus pueda cargar segmentos simultáneamente con huellas de memoria controladas y minimizar el tiempo necesario para recuperarse de fallos y cargar datos.

Los resultados completos de Milvus 2.1 se publicarán próximamente en nuestro sitio web. Permanezca atento.

Soporte de cadenas e índices escalares

Con la versión 2.1, Milvus admite ahora cadenas de longitud variable (VARCHAR) como tipo de datos escalares. VARCHAR se puede utilizar como la clave primaria que se puede devolver como salida, y también puede actuar como filtros de atributos. El filtrado de atributos es una de las funciones más populares que necesitan los usuarios de Milvus. Si a menudo desea "encontrar los productos más similares a un usuario en un rango de precios de200-200-", o "encontrar artículos que tengan la palabra clave 'base de datos vectorial' y estén relacionados con temas nativos de la nube", le encantará Milvus 2.1.

Milvus 2.1 también admite el índice escalar invertido para mejorar la velocidad de filtrado basado enMARISA-Triessucintacomo estructura de datos. Todos los datos pueden cargarse ahora en la memoria con una huella muy baja, lo que permite una comparación, filtrado y correspondencia de prefijos en cadenas mucho más rápidos. Los resultados de nuestras pruebas muestran que el requisito de memoria de MARISA-trie es sólo el 10% del de los diccionarios de Python para cargar todos los datos en memoria y proporcionar capacidades de consulta.

Milvus 2.1 combines MARISA-Trie with inverted index to significantly improve filtering speed. Milvus 2.1 combina MARISA-Trie con un índice invertido para mejorar significativamente la velocidad de filtrado.

En el futuro, Milvus seguirá centrándose en los desarrollos relacionados con las consultas escalares, soportará más tipos de índices escalares y operadores de consulta, y proporcionará capacidades de consulta escalar basadas en disco, todo ello como parte de un esfuerzo continuo para reducir el almacenamiento y el coste de uso de los datos escalares.

Compatibilidad con Kafka

Nuestra comunidad ha estado solicitando durante mucho tiempo soporte para Apache Kafka como almacenamiento de mensajes en Milvus. Milvus 2.1 le ofrece ahora la opción de utilizarPulsar o Kafka como almacenamiento de mensajes basándose en las configuraciones del usuario, gracias al diseño de abstracción y encapsulación de Milvus y al Go Kafka SDK aportado por Confluent.

SDK Java listo para producción

Con Milvus 2.1, nuestro Java SD K ha sido lanzado oficialmente. El SDK de Java tiene exactamente las mismas capacidades que el SDK de Python, con un rendimiento de concurrencia incluso mejor. En el siguiente paso, los colaboradores de nuestra comunidad mejorarán gradualmente la documentación y los casos de uso del SDK de Java, y ayudarán a que los SDK de Go y RESTful también estén listos para la producción.

Observabilidad y mantenibilidad

Milvus 2.1 añademétricas de supervisión importantes como el recuento de inserción de vectores, latencia/rendimiento de búsqueda, sobrecarga de memoria de nodo y sobrecarga de CPU. Además, la nueva versión también optimiza significativamente el mantenimiento de registros ajustando los niveles de registro y reduciendo la impresión de registros inútiles.

Milvus integrado

Milvus ha simplificado enormemente el despliegue de servicios de recuperación de datos vectoriales masivos a gran escala, pero para los científicos que desean validar algoritmos a menor escala, Docker o K8s siguen siendo demasiado complicados sin necesidad. Con la introducción de Milvus embebido, ahora puede instalar Milvus utilizando pip, al igual que con Pyrocksb y Pysqlite. Embedded Milvus soporta todas las funcionalidades de las versiones cluster y standalone, permitiéndole cambiar fácilmente de su portátil a un entorno de producción distribuido sin cambiar una sola línea de código. Los ingenieros de algoritmos tendrán una experiencia mucho mejor cuando construyan un prototipo con Milvus.

Además, Milvus 2.1 también tiene algunas grandes mejoras en estabilidad y escalabilidad, y esperamos con interés su uso y comentarios.

Novedades

  • Consulte las Notas de la versión detalladas para conocer todos los cambios de Milvus 2.1
  • InstaleMilvus 2.1 y pruebe las nuevas características
  • Únase a nuestra comunidad de Slack y discuta las nuevas funciones con miles de usuarios de Milvus de todo el mundo.
  • Síganos en Twitter yLinkedIn para recibir actualizaciones una vez que se publiquen nuestros blogs sobre nuevas funciones específicas.

Editado por Songxian Jiang

Like the article? Spread the word

Sigue Leyendo