Una revisión de la búsqueda híbrida en Milvus
Milvus 2.4 amplió sus capacidades de búsqueda híbrida con la introducción de columnas multivector dentro de una sola colección. Esta mejora permite búsquedas de datos más avanzadas y flexibles al permitir consultas simultáneas en múltiples tipos y campos de vectores. Los resultados de búsqueda de cada campo se integran y se reordenan luego mediante múltiples algoritmos de reranking para ofrecer resultados más precisos.
¿Por qué es importante esta capacidad y qué beneficios ofrece? ¿Cuáles son las estrategias de diseño detrás de esta función? En esta publicación, exploraremos estas preguntas. También proporcionaremos un ejemplo práctico que compara los resultados de búsquedas de un solo vector y búsquedas híbridas, demostrando cómo esta nueva y potente función puede producir resultados más precisos.
¿Qué es la búsqueda híbrida?
Empecemos por lo básico: ¿qué es la búsqueda híbrida en Milvus?
Milvus admite la creación de hasta 10 campos vectoriales para el mismo conjunto de datos dentro de una sola colección. Basándose en este soporte, la búsqueda híbrida permite a los usuarios buscar en múltiples columnas vectoriales simultáneamente. Esta capacidad permite combinar la búsqueda multimodal, la búsqueda híbrida dispersa y densa, y la búsqueda híbrida densa y de texto completo, ofreciendo una funcionalidad de búsqueda versátil y flexible.
Estos vectores en diferentes columnas representan diversas facetas de los datos, originadas en diferentes modelos de embeddings o sometidas a métodos de procesamiento distintos. Los resultados de las búsquedas híbridas se integran mediante diversas estrategias de reordenamiento.
cómo funciona la búsqueda híbrida
Cómo funciona la búsqueda híbrida en Milvus
Esta función permite que diferentes columnas:
Representen múltiples perspectivas de la información. Por ejemplo, en el comercio electrónico, las imágenes de productos incluyen vistas frontal, lateral y superior. Diferentes vistas pueden representarse con diferentes tipos o dimensiones de vectores.
Utilicen varios tipos de embeddings vectoriales. Esto incluye embeddings densos de modelos como BERT y Transformers, y embeddings dispersos de algoritmos como BM25, BGE-M3, y SPLADE.
Admitan la fusión de vectores multimodales de varios tipos de datos no estructurados, como imágenes, videos, audio y archivos de texto. Por ejemplo, en investigaciones criminales, los sospechosos pueden representarse mediante modalidades biométricas como huellas dactilares, huellas de voz y reconocimiento facial, lo que ayuda a identificar individuos en diferentes modalidades.
Admitan la fusión de búsqueda vectorial y búsqueda de texto completo.
Por qué mejoramos la búsqueda híbrida
El reciente anuncio de OpenAI de su modelo multimodal GPT-4o ha reavivado los debates sobre el futuro de la IA. Manejar datos multimodales es cada vez más necesario para lograr la Inteligencia Artificial General (AGI). Su aparición también subraya la idea de que "todo puede vectorizarse". Los vectores, el método de codificación de la era de la IA, son el eje que conecta modalidades dispares. La información que encapsulan es cada vez más diversa e intrincada, lo que impone mayores exigencias a las bases de datos vectoriales para almacenar y recuperar datos vectoriales.
Por lo tanto, la evolución hacia la búsqueda híbrida es fundamental. Por eso Milvus introduce soporte para la búsqueda híbrida en sus versiones más recientes para satisfacer estas demandas crecientes. Esta mejora estratégica permite a Milvus admitir representaciones de datos complejas y multimodales e impulsa las capacidades de los sistemas de IA para comprender y procesar conjuntos de datos cada vez más intrincados.
Con esta nueva función, Milvus permite a los desarrolladores explorar nuevas posibilidades en aplicaciones impulsadas por IA, cerrando aún más la brecha entre la complejidad de los datos y los conocimientos accionables.
Cómo diseñamos la búsqueda híbrida en Milvus
Dar soporte a la búsqueda vectorial en varias columnas vectoriales requirió una reestructuración extensa del diseño de Milvus. Por ejemplo, eliminamos las limitaciones de almacenamiento y escritura para garantizar la compatibilidad y estabilidad del sistema e introdujimos métodos de búsqueda avanzados para varias columnas vectoriales a fin de gestionar consultas complejas.
¿Cómo funciona la búsqueda híbrida?
Anteriormente, Milvus permitía solo una columna vectorial por colección en la ruta de escritura. Eliminamos esta limitación e introdujimos un valor predeterminado de cuatro columnas vectoriales por colección, que puede ampliarse hasta un máximo de diez. Cada columna vectorial dentro de una colección puede admitir diferentes tipos de métricas e índices.
Nota importante: Para la compatibilidad del sistema, solo puedes consultar una colección cuando los índices de todas las columnas vectoriales estén creados y cargados en memoria.
Implementamos recuperación vectorial multirruta y una estrategia de reranking híbrido para realizar búsquedas en varias columnas vectoriales en la ruta de lectura. El proceso es el siguiente:
Recuperación: Definimos parámetros internos para controlar los resultados recuperados para cada ruta de búsqueda vectorial (cada columna). Este paso admite parámetros intermedios como filter y limit, pero no parámetros de salida como
output_fieldygroup_by_field.Reranking: Después de obtener resultados de cada ruta de recuperación, el siguiente paso es fusionar estos resultados en un proceso de reranking. Milvus admite dos estrategias clásicas de reranking: Ranked Retrieval Fusion (RRF) y WeightedRanker. Además, Milvus también permite a los usuarios aprovechar modelos de reranking en el lado del cliente para reordenar los resultados.
cuál es el proceso de búsqueda híbrida dentro de Milvus
¿Cuál es el proceso de búsqueda híbrida dentro del sistema Milvus?
Esta arquitectura garantiza que Milvus pueda gestionar eficazmente las complejidades de almacenar y recuperar información en entornos donde varias columnas vectoriales son esenciales.
Estrategias de reranking
Actualmente, Milvus admite las siguientes estrategias de reranking:
Ranked Retrieval Fusion (RRF): Esta estrategia combina los resultados según sus posiciones en diferentes columnas vectoriales.
WeightedRanker: Este enfoque fusiona los resultados calculando un promedio ponderado de las puntuaciones (o distancias vectoriales) de diferentes búsquedas vectoriales. Asigna pesos según la importancia de cada campo vectorial.
El siguiente gráfico ilustra cómo funciona el proceso de reranking en Milvus.
cómo funciona el reranking
Cómo funciona el reranking en Milvus
Ranked Retrieval Fusion (RRF)
RRF es un algoritmo de fusión de datos que combina los resultados de recuperación basándose en el recíproco de sus posiciones. Equilibra la influencia de cada campo vectorial, especialmente cuando no hay una clara precedencia de importancia. Esta estrategia se utiliza cuando deseas considerar por igual todos los campos vectoriales o cuando la importancia relativa de cada campo es incierta.
El proceso básico de RRF es el siguiente:
Recopilar rankings durante la recuperación: Los recuperadores en varios campos vectoriales recuperan y ordenan los resultados.
Fusión de rankings: El algoritmo RRF pondera y combina las posiciones de cada recuperador. La fórmula es la siguiente:
fórmula RRF
Aquí, 𝑁 representa el número de rutas de recuperación diferentes, rank𝑖(𝑑) es la posición de clasificación del documento recuperado 𝑑 por el 𝑖-ésimo recuperador, y 𝑘 es un parámetro de suavizado, típicamente establecido en 60.
- Clasificación integral: Vuelve a clasificar los resultados recuperados en función de las puntuaciones combinadas para producir los resultados finales.
WeightedRanker
La estrategia WeightedRanker asigna diferentes pesos a los resultados de cada ruta de recuperación vectorial en función de la importancia de cada campo vectorial. Esta estrategia de reclasificación se aplica cuando la importancia de cada campo vectorial varía, lo que te permite enfatizar ciertos campos vectoriales sobre otros asignándoles pesos más altos. Por ejemplo, en una búsqueda multimodal, la descripción de texto podría considerarse más importante que la distribución de color en las imágenes.
El proceso básico de WeightedRanker es el siguiente:
Recopilar puntuaciones durante la recuperación: Reúne resultados y sus puntuaciones de diferentes rutas de recuperación vectorial.
Normalización de puntuaciones: Normaliza las puntuaciones de cada ruta a un rango [0,1], donde los valores más cercanos a 1 indican mayor relevancia. Esta normalización es crucial debido a que las distribuciones de puntuaciones varían con diferentes tipos de métricas. Por ejemplo, la distancia para IP va de [-∞,+∞], mientras que la distancia para L2 va de [0,+∞]. Milvus emplea la función arctan, transformando los valores al rango [0,1] para proporcionar una base estandarizada para diferentes tipos de métricas.
Asignación de pesos: Asigna un peso
w𝑖a cada ruta de recuperación vectorial. Los usuarios especifican los pesos, que reflejan la fiabilidad, precisión u otras métricas pertinentes de la fuente de datos. Cada peso va de [0,1].Fusión de puntuaciones: Calcula un promedio ponderado de las puntuaciones normalizadas para derivar la puntuación final. Luego, los resultados se clasifican según estas puntuaciones de mayor a menor para generar los resultados finales ordenados.
fórmula de weightedranker
Comparación de la búsqueda híbrida y la búsqueda de vector único con un ejemplo
En esta sección, compararemos los resultados de búsqueda de imágenes utilizando búsqueda de vector único e híbrida respectivamente, demostrando cómo la búsqueda híbrida puede mejorar la calidad de los resultados de búsqueda. Para más detalles, consulta los fragmentos de código completos en este notebook.
El conjunto de datos
Descargamos imágenes que contienen semáforos de fuentes públicas como nuestro conjunto de datos.
el conjunto de datos
Imagen de consulta
En esta demostración, la imagen a continuación es la imagen de consulta que queremos encontrar dentro del conjunto de datos.
imagen de consulta
Extracción de características con ResNet y CLIP
Debemos crear una colección con múltiples columnas vectoriales antes de realizar la extracción de características e insertar imágenes en Milvus. En el fragmento de código a continuación, creamos dos columnas vectoriales para almacenar vectores de características de imágenes extraídos utilizando diferentes modelos de embedding.
Crear una colección con múltiples columnas vectoriales
Para esta demostración, usamos ResNet y CLIP como nuestros modelos de embedding.
- ResNet (Residual Network): Un modelo popular para el reconocimiento y la clasificación de imágenes.
resnet.png
- CLIP (Contrastive Language–Image Pre-training): Un modelo de embedding bimodal texto-imagen que cierra la brecha entre los datos visuales y textuales. Lo usamos para extraer características de subtítulos para la búsqueda de imágenes.
clip
Resultados de búsqueda de vector único con vectores de ResNet
Si el conjunto de datos contiene una imagen idéntica a la consulta en la búsqueda de imágenes, una búsqueda vectorial densa de una sola columna puede devolver rápidamente el resultado correcto. Sin embargo, en casos reales, las imágenes de consulta suelen diferir de las del conjunto de datos debido a distintos ángulos o fondos ambientales, lo que afecta los resultados de la búsqueda vectorial. En este ejemplo, utilizamos características específicas de la imagen de consulta, centrándonos específicamente en el semáforo, para realizar la búsqueda de imágenes.
características específicas de la imagen de consulta - el semáforo
Como puedes ver en los resultados a continuación, todas las imágenes devueltas destacan principalmente el objeto del semáforo. Sin embargo, la imagen de consulta (No.3) en sí no está clasificada como la más similar. Si limitamos los resultados de búsqueda solo a las dos primeras imágenes, la imagen de consulta no aparecerá en los resultados en absoluto.
resultados de búsqueda - resnet.png
Resultados de búsqueda de vector único con vectores CLIP
A continuación, examinemos otra búsqueda de vector único. Debido a la capacidad de comprensión multimodal de CLIP, podemos buscar imágenes usando una entrada de texto. Aquí, la entrada de búsqueda es "imágenes con edificios en el fondo."
resultados de búsqueda - clip
Los resultados indican que las imágenes devueltas se centran en el elemento de fondo de los edificios. Sin embargo, la imagen de consulta aún no parece ser la coincidencia principal.
Resultados de búsqueda híbrida
Los resultados de las dos búsquedas vectoriales anteriores de una sola ruta no fueron ideales, por lo que realizamos una búsqueda híbrida en múltiples columnas vectoriales. En esta búsqueda híbrida, los resultados de las dos rutas AnnSearchRequest se fusionan utilizando un método de promedio ponderado. Los pesos para las columnas ResNet y CLIP se establecieron en 0.7 y 0.8, respectivamente.
resultados de búsqueda híbrida
Como puedes ver en los resultados anteriores, la imagen de consulta fue devuelta como la imagen más similar (Top 1) esta vez.
Este ejemplo ilustra cómo la búsqueda híbrida integra eficazmente entradas multimodales de imágenes y texto. En comparación con las búsquedas de vector único, la búsqueda híbrida demuestra una mejora sustancial en los resultados finales.
Conclusión
Hybrid Search es una función principal de Milvus que mejora las capacidades de búsqueda de datos al permitir consultas simultáneas en múltiples campos vectoriales. Esta función combina búsqueda híbrida dispersa y densa, búsqueda multimodal, y búsqueda híbrida densa y de texto completo; todos estos resultados de búsqueda se integran y se reordenan utilizando estrategias eficientes de reordenamiento para obtener un resultado final más preciso y relevante.
De cara al futuro, nos centraremos en expandir Hybrid Search a varios dominios. Por ejemplo, puede extenderse para aprovechar el reordenamiento basado en el tiempo en casos de uso como recomendar temas sociales en tendencia para Twitter o TikTok. También planeamos introducir algoritmos de fusión y modelos de reordenamiento más robustos para ofrecer una experiencia de búsqueda más refinada.
El potencial de la búsqueda híbrida va más allá de lo que se cubre aquí. Mantente atento a más actualizaciones nuestras.
Sigue leyendo

Introducing Zilliz CLI and Agent Skills for Zilliz Cloud
Manage your vector database from your terminal or AI coding agent. Zilliz CLI and Agent Skills work with Claude Code, Cursor, Codex, and Copilot.

Zilliz Cloud Update: Smarter Autoscaling for Cost Savings, Stronger Compliance with Audit Logs, and More
What's new in Zilliz Cloud? Smarter autoscaling with scale-down, audit logs GA, enhanced SSO, and Milvus 2.6 in Private Preview.

1 Table = 1000 Words? Foundation Models for Tabular Data
TableGPT2 automates tabular data insights, overcoming schema variability, while Milvus accelerates vector search for efficient, scalable decision-making.



