Notas de la versión
Descubra las novedades de Milvus. Esta página resume las nuevas características, mejoras, problemas conocidos y correcciones de errores de cada versión. Puede encontrar las notas de la versión para cada versión publicada después de la v2.5.0 en esta sección. Le sugerimos que visite regularmente esta página para conocer las actualizaciones.
v2.5.0-beta
Fecha de lanzamiento: 26 de noviembre de 2024
Versión de Milvus | Versión del SDK de Python | Versión del SDK de Node.js | Versión del SDK de Java |
---|---|---|---|
2.5.0-beta | 2.5.0 | 2.5.0 | 2.5.0 |
Milvus 2.5.0-beta aporta avances significativos para mejorar la facilidad de uso, la escalabilidad y el rendimiento para los usuarios que se ocupan de la búsqueda vectorial y la gestión de datos a gran escala. Con esta versión, Milvus integra nuevas y potentes funciones como la búsqueda basada en términos, la compactación de clústeres para optimizar las consultas y la compatibilidad versátil con métodos de búsqueda vectorial dispersa y densa. Las mejoras en la gestión de clusters, indexación y manejo de datos introducen nuevos niveles de flexibilidad y facilidad de uso, haciendo de Milvus una base de datos vectorial aún más robusta y fácil de usar.
Características principales
Búsqueda de texto completo
Milvus 2.5 es compatible con la búsqueda de texto completo implementada con Sparse-BM25. Esta función es un complemento importante de las potentes capacidades de búsqueda semántica de Milvus, especialmente en situaciones en las que intervienen palabras raras o términos técnicos. En versiones anteriores, Milvus soportaba vectores dispersos para ayudar en escenarios de búsqueda de palabras clave. Estos vectores dispersos se generaban fuera de Milvus mediante modelos neuronales como SPLADEv2/BGE-M3 o modelos estadísticos como el algoritmo BM25.
Desarrollado por Tantivy, Milvus 2.5 incorpora analizadores y extracción de vectores dispersos, ampliando la API de sólo recibir vectores como entrada a aceptar directamente texto. La información estadística de BM25 se actualiza en tiempo real a medida que se introducen los datos, lo que mejora la facilidad de uso y la precisión. Además, los vectores dispersos basados en algoritmos de aproximación al vecino más cercano (RNA) ofrecen un rendimiento más potente que los sistemas estándar de búsqueda por palabras clave.
Para obtener más información, consulte Visión general del analizador y Búsqueda de texto completo.
WebUI de gestión de clústeres (Beta)
Para soportar mejor los datos masivos y las ricas funciones, el sofisticado diseño de Milvus incluye varias dependencias, numerosos roles de nodo, estructuras de datos complejas y mucho más. Estos aspectos pueden plantear retos de uso y mantenimiento.
Milvus 2.5 introduce una WebUI integrada de gestión de clústeres, que reduce la dificultad de mantenimiento del sistema mediante la visualización de la compleja información del entorno de ejecución de Milvus. Esto incluye detalles de bases de datos y colecciones, segmentos, canales, dependencias, estado de salud de los nodos, información de tareas, consultas lentas, etc.
Coincidencia de texto
Milvus 2.5 aprovecha los analizadores y la indexación de Tantivy para el preprocesamiento de textos y la creación de índices, lo que permite una correspondencia precisa en lenguaje natural de datos de texto basados en términos específicos. Esta función se utiliza principalmente para la búsqueda filtrada para satisfacer condiciones específicas y puede incorporar el filtrado escalar para refinar los resultados de la consulta, permitiendo búsquedas de similitud dentro de vectores que cumplen criterios escalares.
Para obtener más información, consulte Visión general del analizador y Coincidencia de texto.
Índice de mapa de bits
Se ha añadido un nuevo índice de datos escalares a la familia Milvus. El índice BitMap utiliza una matriz de bits, de longitud igual al número de filas, para representar la existencia de valores y acelerar las búsquedas.
Los índices Bitmap han sido tradicionalmente eficaces para los campos de baja cardinalidad, que tienen un número modesto de valores distintos, por ejemplo, una columna que contiene información sobre el sexo con sólo dos valores posibles: masculino y femenino.
Para obtener más información, consulte Índice de mapa de bits.
Anulable y valor por defecto
Milvus permite ahora establecer propiedades anulables y valores por defecto para campos escalares distintos del campo de clave primaria. Para los campos escalares marcados como nullable=True
, los usuarios pueden omitir el campo al insertar datos; el sistema lo tratará como un valor nulo o un valor por defecto (si está establecido) sin lanzar un error.
Los valores por defecto y las propiedades anulables proporcionan una mayor flexibilidad a Milvus. Los usuarios pueden utilizar esta característica para campos con valores inciertos al crear colecciones. También simplifica la migración de datos desde otros sistemas de bases de datos a Milvus, permitiendo el manejo de conjuntos de datos que contienen valores nulos mientras se preserva la configuración original del valor por defecto.
Para más detalles, consulte Nullable & Default Value.
HNSW SQ/PQ/PRQ basado en Faiss
Gracias a la estrecha colaboración con la comunidad de Faiss, el algoritmo HNSW de Faiss ha experimentado mejoras significativas tanto en funcionalidad como en rendimiento. Por consideraciones de estabilidad y mantenimiento, Milvus 2.5 ha migrado oficialmente su soporte para HNSW de hnswlib a Faiss.
Basado en Faiss, Milvus 2.5 soporta múltiples métodos de cuantificación en HNSW para satisfacer las necesidades de diferentes escenarios: SQ (Scalar Quantizers), PQ (Product Quantizer), y PRQ (Product Residual Quantizer). SQ y PQ son los más comunes; SQ ofrece un buen rendimiento de consulta y velocidad de construcción, mientras que PQ ofrece una mejor recuperación con la misma relación de compresión. Muchas bases de datos vectoriales suelen utilizar la cuantificación binaria, que es una forma sencilla de cuantificación SQ.
PRQ es una fusión de PQ y AQ (cuantificador aditivo). En comparación con PQ, requiere tiempos de compilación más largos para ofrecer una mejor recuperación, especialmente a tasas de compresión altas, diciendo compresión binaria.
Compactación en clústeres (Beta)
Milvus 2.5 introduce la compactación por agrupamiento para acelerar las búsquedas y reducir los costes en grandes colecciones. Al especificar un campo escalar como clave de agrupación, los datos se redistribuyen por rangos para optimizar el almacenamiento y la recuperación. Actuando como un índice global, esta función permite a Milvus podar eficazmente los datos durante las consultas basándose en metadatos de agrupación, mejorando el rendimiento de la búsqueda cuando se aplican filtros escalares.
Para obtener más información, consulte Compactación de agrupaciones.
Otras funciones
Nodo de streaming (Beta)
Milvus 2.5 introduce un nuevo componente llamado nodo de streaming, que proporciona servicios de registro de escritura en cabeza (WAL). Esto permite a Milvus lograr consenso antes y después de leer y escribir canales, desbloqueando nuevas características, funcionalidades y optimizaciones. Esta característica está desactivada por defecto en Milvus 2.5 y estará disponible oficialmente en la versión 3.0.
Soporte IPv6
Milvus es ahora compatible con IPv6, lo que permite una mayor conectividad de red y compatibilidad.
Importación masiva de CSV
Además de los formatos JSON y Parquet, Milvus admite ahora la importación masiva directa de datos en formato CSV.
Plantillas de expresiones para acelerar las consultas
Milvus admite ahora plantillas de expresiones, lo que mejora la eficacia del análisis sintáctico de expresiones, especialmente en escenarios con expresiones complejas.
Mejoras en GroupBy
- Tamaño de grupo personalizable: Se ha añadido soporte para especificar el número de entradas devueltas para cada grupo.
- Búsqueda híbrida GroupBy: Admite la búsqueda híbrida GroupBy basada en varias columnas de vectores.
Mejoras del iterador
- Compatibilidad con MVCC: Ahora los usuarios pueden utilizar iteradores sin verse afectados por cambios posteriores en los datos, como inserciones y eliminaciones, gracias al control de concurrencia multiversión (MVCC).
- Cursor persistente: Milvus soporta ahora un cursor persistente para QueryIterator, permitiendo a los usuarios reanudar la iteración desde la última posición después de un reinicio de Milvus sin necesidad de reiniciar todo el proceso de iteración.
Mejoras
Optimización del borrado
Mejorada la velocidad y reducido el uso de memoria para borrados a gran escala optimizando el uso de bloqueos y la gestión de memoria.
Actualización de dependencias
Actualizado a ETCD 3.5.16 y Pulsar 3.0.7 LTS, corrigiendo CVEs existentes y mejorando la seguridad. Nota: La actualización a Pulsar 3.x no es compatible con las versiones anteriores 2.x.
Los usuarios que ya dispongan de una implantación de Milvus en funcionamiento deberán actualizar los componentes ETCD y Pulsar antes de poder utilizar las nuevas características y funciones. Para más detalles, consulte Actualización de Pulsar de 2.x a 3.x
Almacenamiento local V2
Introdujo un nuevo formato de archivo local en Milvus 2.5, mejorando la eficiencia de carga y consulta para datos escalares, reduciendo la sobrecarga de memoria y sentando las bases para futuras optimizaciones.
Optimización del análisis sintáctico de expresiones
Se ha mejorado el análisis sintáctico de expresiones implementando el almacenamiento en caché para expresiones repetidas, actualizando ANTLR y optimizando el rendimiento de las cláusulas NOT IN
.
Mejora del rendimiento de la concurrencia de DDL
Se ha optimizado el rendimiento de la concurrencia de las operaciones del lenguaje de definición de datos (DDL).
Alineación de las funciones de la API RESTful
Alineación de las funcionalidades de la API RESTful con otros SDK en aras de la coherencia.