Une revue de la recherche hybride dans Milvus
Milvus 2.4 a étendu ses capacités de recherche hybride avec l’introduction de colonnes multi-vecteurs au sein d’une seule collection. Cette mise à niveau permet des recherches de données plus avancées et flexibles en autorisant des requêtes simultanées sur plusieurs types et champs de vecteurs. Les résultats de recherche de chaque champ sont ensuite intégrés et reclassés à l’aide de plusieurs algorithmes de reclassement afin de fournir des résultats plus précis.
Pourquoi cette capacité est-elle importante, et quels avantages offre-t-elle ? Quelles sont les stratégies de conception derrière cette fonctionnalité ? Dans cet article, nous explorerons ces questions. Nous fournirons également un exemple pratique comparant les résultats de recherches à vecteur unique et hybrides, démontrant comment cette nouvelle fonctionnalité puissante peut produire des résultats plus précis.
Qu’est-ce que la recherche hybride ?
Commençons par les bases : qu’est-ce que la recherche hybride dans Milvus ?
Milvus prend en charge la création de jusqu’à 10 champs vectoriels pour le même jeu de données au sein d’une seule collection. Sur la base de cette prise en charge, la recherche hybride permet aux utilisateurs d’effectuer des recherches simultanément sur plusieurs colonnes vectorielles. Cette capacité permet de combiner la recherche multimodale, la recherche hybride clairsemée et dense, ainsi que la recherche hybride dense et plein texte, offrant une fonctionnalité de recherche polyvalente et flexible.
Ces vecteurs dans différentes colonnes représentent diverses facettes des données, provenant de différents modèles d’embedding ou ayant subi des méthodes de traitement distinctes. Les résultats des recherches hybrides sont intégrés à l’aide de diverses stratégies de reclassement.
fonctionnement de la recherche hybride
Fonctionnement de la recherche hybride dans Milvus
Cette fonctionnalité permet à différentes colonnes de :
Représenter plusieurs perspectives de l’information. Par exemple, dans l’e-commerce, les images de produits incluent des vues de face, de côté et de dessus. Différentes vues peuvent être représentées avec différents types ou dimensions de vecteurs.
Utiliser divers types d’embeddings vectoriels. Cela inclut les embeddings denses issus de modèles comme BERT et Transformers, ainsi que les embeddings clairsemés issus d’algorithmes comme BM25, BGE-M3, et SPLADE.
Prendre en charge la fusion de vecteurs multimodaux provenant de divers types de données non structurées tels que les images, les vidéos, l’audio et les fichiers texte. Par exemple, dans les enquêtes criminelles, les suspects peuvent être représentés au moyen de modalités biométriques telles que les empreintes digitales, les empreintes vocales et la reconnaissance faciale, aidant à identifier des individus à travers différentes modalités.
Prendre en charge la fusion de la recherche vectorielle et de la recherche plein texte.
Pourquoi nous avons amélioré la recherche hybride
L’annonce récente par OpenAI de son modèle multimodal GPT-4o a ravivé les discussions sur l’avenir de l’IA. La gestion des données multimodales est de plus en plus nécessaire pour atteindre l’intelligence artificielle générale (AGI). Son émergence souligne également l’idée que « tout peut être vectorisé ». Les vecteurs, méthode d’encodage de l’ère de l’IA, sont la clé de voûte reliant des modalités disparates. Les informations qu’ils encapsulent deviennent plus diverses et complexes, imposant des exigences accrues aux bases de données vectorielles pour le stockage et la récupération des données vectorielles.
Par conséquent, l’évolution vers la recherche hybride est cruciale. C’est pourquoi Milvus introduit la prise en charge de la recherche hybride dans ses dernières versions afin de répondre à ces exigences croissantes. Cette amélioration stratégique permet à Milvus de prendre en charge des représentations de données complexes et multimodales, et propulse les capacités des systèmes d’IA à comprendre et traiter des ensembles de données de plus en plus complexes.
Grâce à cette nouvelle fonctionnalité, Milvus permet aux développeurs d’explorer de nouvelles possibilités dans les applications pilotées par l’IA, en comblant davantage le fossé entre la complexité des données et les informations exploitables.
Comment nous avons conçu la recherche hybride dans Milvus
La prise en charge de la recherche vectorielle sur plusieurs colonnes vectorielles a nécessité une restructuration approfondie de la conception de Milvus. Par exemple, nous avons levé les limitations de stockage et d’écriture afin de garantir la compatibilité et la stabilité du système, et introduit des méthodes de recherche avancées pour plusieurs colonnes vectorielles afin de gérer des requêtes complexes.
Comment fonctionne la recherche hybride ?
Auparavant, Milvus n’autorisait qu’une seule colonne vectorielle par collection dans le chemin d’écriture. Nous avons supprimé cette limitation et introduit une valeur par défaut de quatre colonnes vectorielles par collection, qui peut être étendue jusqu’à un maximum de dix. Chaque colonne vectorielle au sein d’une collection peut prendre en charge différents types de métriques et d’index.
Remarque importante : Pour des raisons de compatibilité système, vous ne pouvez interroger une collection que lorsque les index de toutes les colonnes vectorielles sont créés et chargés en mémoire.
Nous avons implémenté une récupération vectorielle multiroute et une stratégie de reclassement hybride pour effectuer des recherches sur plusieurs colonnes vectorielles dans le chemin de lecture. Le processus est le suivant :
Récupération : Nous définissons des paramètres internes pour contrôler les résultats récupérés pour chaque route de recherche vectorielle (chaque colonne). Cette étape prend en charge des paramètres intermédiaires comme filter et limit, mais pas des paramètres de sortie comme
output_fieldetgroup_by_field.Reclassement : Après avoir obtenu les résultats de chaque route de récupération, l’étape suivante consiste à fusionner ces résultats dans un processus de reclassement. Milvus prend en charge deux stratégies classiques de reclassement : Ranked Retrieval Fusion (RRF) et WeightedRanker. De plus, Milvus permet également aux utilisateurs d’exploiter des modèles de reclassement côté client pour réordonner les résultats.
quel est le processus de recherche hybride au sein de Milvus
Quel est le processus de recherche hybride au sein du système Milvus ?
Cette architecture garantit que Milvus peut gérer efficacement les complexités du stockage et de la récupération d’informations dans des environnements où plusieurs colonnes vectorielles sont essentielles.
Stratégies de reclassement
Actuellement, Milvus prend en charge les stratégies de reclassement suivantes :
Ranked Retrieval Fusion (RRF) : Cette stratégie combine les résultats en fonction de leurs rangs dans différentes colonnes vectorielles.
WeightedRanker : Cette approche fusionne les résultats en calculant une moyenne pondérée des scores (ou des distances vectorielles) provenant de différentes recherches vectorielles. Elle attribue des poids en fonction de l’importance de chaque champ vectoriel.
Le graphique suivant illustre le fonctionnement du processus de reclassement dans Milvus.
comment fonctionne le reclassement
Comment fonctionne le reclassement dans Milvus
Ranked Retrieval Fusion (RRF)
RRF est un algorithme de fusion de données qui combine les résultats de récupération en fonction de l’inverse de leurs rangs. Il équilibre l’influence de chaque champ vectoriel, en particulier lorsqu’il n’existe pas de priorité claire en matière d’importance. Cette stratégie est utilisée lorsque vous souhaitez accorder une considération égale à tous les champs vectoriels ou lorsque l’importance relative de chaque champ est incertaine.
Le processus de base de RRF est le suivant :
Collecter les classements pendant la récupération : Les récupérateurs sur plusieurs champs vectoriels récupèrent et trient les résultats.
Fusion des rangs : L’algorithme RRF pondère et combine les rangs de chaque récupérateur. La formule est la suivante :
formule RRF
Ici, 𝑁 représente le nombre de différentes routes de récupération, rank𝑖(𝑑) est la position de classement du document récupéré 𝑑 par le 𝑖e récupérateur, et 𝑘 est un paramètre de lissage, généralement défini à 60.
- Classement complet : Reclasser les résultats récupérés en fonction des scores combinés afin de produire les résultats finaux.
WeightedRanker
La stratégie WeightedRanker attribue différents poids aux résultats de chaque route de récupération vectorielle en fonction de l’importance de chaque champ vectoriel. Cette stratégie de reclassement est appliquée lorsque l’importance de chaque champ vectoriel varie, ce qui vous permet de mettre l’accent sur certains champs vectoriels plutôt que sur d’autres en leur attribuant des poids plus élevés. Par exemple, dans une recherche multimodale, la description textuelle peut être considérée comme plus importante que la distribution des couleurs dans les images.
Le processus de base de WeightedRanker est le suivant :
Collecter les scores pendant la récupération : Recueillir les résultats et leurs scores à partir de différentes routes de récupération vectorielle.
Normalisation des scores : Normaliser les scores de chaque route dans une plage [0,1], où les valeurs plus proches de 1 indiquent une pertinence plus élevée. Cette normalisation est essentielle, car les distributions des scores varient selon les différents types de métriques. Par exemple, la distance pour IP varie de [-∞,+∞], tandis que la distance pour L2 varie de [0,+∞]. Milvus utilise la fonction arctan, transformant les valeurs dans la plage [0,1] afin de fournir une base standardisée pour différents types de métriques.
Attribution des poids : Attribuer un poids
w𝑖à chaque route de récupération vectorielle. Les utilisateurs spécifient les poids, qui reflètent la fiabilité, la précision ou d’autres métriques pertinentes de la source de données. Chaque poids se situe dans la plage [0,1].Fusion des scores : Calculer une moyenne pondérée des scores normalisés afin d’obtenir le score final. Les résultats sont ensuite classés selon ces scores, du plus élevé au plus faible, afin de générer les résultats finaux triés.
weightedranker fomula
Comparaison de la recherche hybride et de la recherche à vecteur unique à l’aide d’un exemple
Dans cette section, nous comparerons les résultats de recherche d’images en utilisant respectivement la recherche à vecteur unique et la recherche hybride, en montrant comment la recherche hybride peut améliorer la qualité des résultats de recherche. Pour plus de détails, consultez les extraits de code complets dans ce notebook.
Le jeu de données
Nous avons téléchargé des images contenant des feux de circulation à partir de sources publiques comme jeu de données.
the dataset
Image de requête
Dans cette démo, l’image ci-dessous est l’image de requête que nous voulons trouver dans le jeu de données.
query image
Extraction de caractéristiques avec ResNet et CLIP
Nous devons créer une collection avec plusieurs colonnes vectorielles avant d’effectuer l’extraction de caractéristiques et d’insérer les images dans Milvus. Dans l’extrait de code ci-dessous, nous avons créé deux colonnes vectorielles pour stocker les vecteurs de caractéristiques d’images extraits à l’aide de différents modèles d’embedding.
Create a collection with multiple vector columns
Pour cette démo, nous utilisons ResNet et CLIP comme modèles d’embedding.
- ResNet (Residual Network) : Un modèle populaire pour la reconnaissance et la classification d’images.
resnet.png
- CLIP (Contrastive Language–Image Pre-training) : Un modèle d’embedding bimodal texte-image qui comble le fossé entre les données visuelles et textuelles. Nous l’utilisons pour extraire des caractéristiques à partir de légendes pour la recherche d’images.
clip
Résultats de recherche à vecteur unique avec des vecteurs ResNet
Si l’ensemble de données contient une image identique à la requête dans la recherche d’images, une recherche vectorielle dense sur une seule colonne peut rapidement renvoyer le résultat correct. Cependant, dans les cas réels, les images de requête diffèrent souvent de celles de l’ensemble de données en raison d’angles variables ou d’arrière-plans environnementaux, ce qui affecte les résultats de la recherche vectorielle. Dans cet exemple, nous utilisons des caractéristiques spécifiques de l’image de requête, en nous concentrant précisément sur le feu de circulation, pour effectuer la recherche d’images.
caractéristiques spécifiques de l’image de requête - le feu de circulation
Comme vous pouvez le voir dans les résultats ci-dessous, toutes les images renvoyées mettent principalement en évidence l’objet feu de circulation. Cependant, l’image de requête (n°3) elle-même n’est pas classée comme la plus similaire. Si nous limitons les résultats de recherche aux deux premières images seulement, l’image de requête n’apparaîtra pas du tout dans les résultats.
résultats de recherche - resnet.png
Résultats de recherche à vecteur unique avec des vecteurs CLIP
Ensuite, examinons une autre recherche à vecteur unique. Grâce à la capacité de compréhension multimodale de CLIP, nous pouvons rechercher des images à l’aide d’une entrée textuelle. Ici, l’entrée de recherche est « images avec des bâtiments en arrière-plan ».
résultats de recherche - clip
Les résultats indiquent que les images renvoyées se concentrent sur l’élément d’arrière-plan que sont les bâtiments. Cependant, l’image de requête ne semble toujours pas être la meilleure correspondance.
Résultats de recherche hybride
Les résultats des deux recherches vectorielles précédentes à itinéraire unique n’étaient pas idéaux, nous avons donc effectué une recherche hybride sur plusieurs colonnes vectorielles. Dans cette recherche hybride, les résultats des deux itinéraires AnnSearchRequest sont fusionnés à l’aide d’une méthode de moyenne pondérée. Les pondérations des colonnes ResNet et CLIP ont été définies respectivement à 0,7 et 0,8.
résultats de recherche hybride
Comme vous pouvez le voir dans les résultats ci-dessus, l’image de requête a été renvoyée comme l’image la plus similaire (Top 1) cette fois-ci.
Cet exemple illustre comment la recherche hybride intègre efficacement des entrées multimodales provenant d’images et de texte. Par rapport aux recherches à vecteur unique, la recherche hybride démontre une amélioration substantielle des résultats finaux.
Conclusion
La recherche hybride est une fonctionnalité essentielle de Milvus qui améliore les capacités de recherche de données en permettant des requêtes simultanées sur plusieurs champs vectoriels. Cette fonctionnalité combine la recherche hybride clairsemée et dense, la recherche multimodale, ainsi que la recherche hybride dense et en texte intégral ; tous ces résultats de recherche sont intégrés et reclassés à l’aide de stratégies de reclassement efficaces pour obtenir un résultat final plus précis et pertinent.
À l’avenir, nous nous concentrerons sur l’extension de la recherche hybride à divers domaines. Par exemple, elle peut être étendue afin de tirer parti du reclassement basé sur le temps pour des cas d’utilisation tels que la recommandation de sujets sociaux tendance pour Twitter ou TikTok. Nous prévoyons également d’introduire des algorithmes de fusion et des modèles de reclassement plus robustes afin d’offrir une expérience de recherche plus affinée.
Le potentiel de la recherche hybride va au-delà de ce qui est abordé ici. Restez à l’écoute pour découvrir nos prochaines mises à jour.
Continuer à lire

Introducing Loon: A New Storage Engine for Vector Data That Never Stops Changing
Loon is a new storage engine for Milvus 3.0 and Zilliz Vector Lakebase, built to manage evolving vector datasets with ColumnGroups, row ID alignment, and Manifests.

How to Choose the Best Embedding Model for RAG in 2026: 10 Models Benchmarked
We benchmarked 10 embedding models on cross-modal, cross-lingual, long-document, and dimension compression tasks. See which one fits your RAG pipeline.

How Zilliz Saw the Future of Vector Databases—and Built for Production
An inside look at how Zilliz built vector databases for real-world use, focusing on scalability, stability, and running them reliably at scale.



