Explorer les merveilles de Knowhere 2.0
Tout juste sorti, Milvus 2.3 est arrivé avec de nombreuses mises à jour qui changent la donne. Au premier plan de ces améliorations se trouve Knowhere 2.0, une mise à niveau transformative qui promet d’élever Milvus vers de nouveaux sommets.
Rejoignez-nous dans cet article de blog pour une plongée approfondie dans Knowhere 2.0, afin d’explorer ses fonctionnalités révolutionnaires, ses optimisations de performances et ses principes de conception qui en font une force remarquable dans les bases de données vectorielles.
Qu’est-ce que Knowhere ?
Knowhere est le moteur principal de recherche vectorielle de Milvus. Imaginez la base de données vectorielle comme le vaste univers Marvel ; Knowhere en est le quartier général ultime. La mission principale de Knowhere est d’effectuer des recherches approximatives de plus proches voisins (ANNS) en construisant des index avec une faible latence.
Knowhere 2.0 et ses nouvelles capacités
Nous travaillons à la restructuration et à la mise à niveau de Knowhere depuis juillet 2022. Après d’inlassables discussions, phases de conception, de développement et de tests, Knowhere 2.0 a fait ses débuts avec Milvus 2.3 fin août 2023. Cette nouvelle version apporte de nombreuses améliorations, notamment la prise en charge de l’index GPU, de la similarité Cosine, de l’index ScaNN et de l’architecture Arm. Knowhere mis à niveau profite aux utilisateurs et aux développeurs, ce qui en fait un élément puissant de Milvus. Ensuite, explorons ses fonctionnalités clés.
Prise en charge des index GPU
Nvidia a contribué les index GPU_FLAT et GPU_IVFPQ de sa bibliothèque de recherche vectorielle, RAFT, à Knowhere 2.0. Cet ajout accélère considérablement les recherches d’index, Milvus atteignant des améliorations remarquables du débit sur Nvidia A100, près de 70 fois pour SIFT1M.
Milvus QPS GPU vs. CPU
Pour plus d’informations sur l’index GPU, consultez la documentation Milvus.
Prise en charge de la similarité Cosine
Dans les versions précédentes de Knowhere, les utilisateurs devaient utiliser l’Inner Product et normaliser les vecteurs avant l’insertion des vecteurs pour utiliser la similarité Cosine. Ce processus était très coûteux, difficile d’accès et exigeait des utilisateurs des connaissances théoriques plus approfondies.
Knowhere 2.0 prend désormais en charge nativement la distance Cosine, normalise automatiquement les vecteurs entrants au sein de la bibliothèque et associe les types d’index correspondants, améliorant considérablement l’expérience utilisateur.
Prise en charge de l’index ScaNN
ScaNN, ou FastScan, est un index approximate nearest neighbor (ANN) open-source implémenté par FAISS. Il utilise un encodage PQ plus compact et les jeux d’instructions correspondants pour accéder aux registres CPU, ce qui se traduit par d’excellentes performances d’indexation.
Knowhere 2.0 prend désormais en charge nativement l’index ScaNN. Avec Knowhere 2.0, Milvus 2.3 atteint sept fois le QPS d’IVF_FLAT et 1,2 fois celui de HNSW, avec un taux de rappel d’environ 95 % sur les jeux de données Cohere.
Prise en charge de l’architecture ARM
L’architecture ARM est connue pour son rapport coût-efficacité par rapport à l’architecture x86. Bien que moins puissante, ARM dispose d’une conception et de jeux d’instructions plus simples, ce qui la rend de plus en plus populaire. Par exemple, les instances ARM avec les mêmes spécifications CPU (par exemple, 1 vCPU et 16GB de RAM) sont environ 15 % moins chères sur la plateforme AWS que les instances x86.
Avec la prise en charge de l’architecture ARM dans Knowhere 2.0, les utilisateurs peuvent désormais exécuter et créer des services de couche supérieure sur cette architecture.
Prise en charge de la recherche par plage
Il existe deux méthodes pour trouver les plus proches voisins : K Nearest Neighbor (KNN) et Range Search. KNN trouve les "k" vecteurs les plus proches d’un vecteur de requête "q" au sein d’une collection de vecteurs "X." En revanche, Range Search n’a pas de "k" spécifié ; il renvoie plutôt tous les vecteurs situés à une certaine distance (rayon) du vecteur de requête "q" au sein de la collection de vecteurs "X."
Knowhere 2.0 prend en charge la recherche par plage pour plusieurs index dans la bibliothèque, tels que HNSW, DiskANN et les index IVF. Cette fonctionnalité permet aux utilisateurs de spécifier la distance entre le vecteur d’entrée et les vecteurs stockés dans Milvus lors d’une requête.
Requêtes de filtrage optimisées
Dans les requêtes mixtes scalaires et vectorielles, vous pouvez filtrer certains vecteurs. Knowhere 2.0 a considérablement amélioré les requêtes de filtrage vectoriel pour HNSW, ce qui entraîne des gains de performance allant de 6 à 80 fois par rapport aux versions précédentes.
Améliorations de la structure du code et de la compilation
Knowhere 2.0 simplifie l’héritage des classes C++, utilise des modèles de proxy pour l’intégration de nouveaux index, refactorise le module Config, adopte Conan comme gestionnaire de paquets pour une compilation rationalisée, et exploite le pool de threads de Folly pour un contrôle précis des threads. Toutes ces améliorations rendent l’utilisation de Milvus plus simple.
Prise en charge de MMap
Par le passé, certains utilisateurs ont été confrontés à des contraintes d’espace mémoire dues à leurs grands ensembles de données, ce qui affectait les index qu’ils pouvaient stocker. Cependant, avec l’introduction de Knowhere 2.0, Milvus prend désormais en charge Memory Mapping (MMap), permettant le mappage automatique de fichiers volumineux en mémoire. Cette nouvelle fonctionnalité permet aux utilisateurs d’accéder à des données d’index étendues malgré une mémoire insuffisante.
Prise en charge de la récupération des vecteurs originaux
Après avoir terminé une recherche, les utilisateurs peuvent avoir besoin d’accéder aux vecteurs originaux sur la base des ID renvoyés pour effectuer d’autres calculs ou filtrages personnalisés. Avec Knowhere 2.0, les utilisateurs peuvent récupérer directement les vecteurs originaux depuis l’index, réduisant ainsi la latence par rapport à une récupération depuis un stockage distant comme S3.
Pour plus de détails sur les fonctionnalités et améliorations de Knowhere 2.0, consultez les Notes de version de Knowhere 2.0.
Bienvenue aux contributions à Knowhere !
Knowhere évolue continuellement, et vos retours comptent. Si vous avez des suggestions ou des idées précieuses, n’hésitez pas à contribuer au dépôt Knowhere.
Continuer à lire

Migrating from S3 Vectors to Zilliz Cloud: Unlocking the Power of Tiered Storage
Learn how Zilliz Cloud bridges cost and performance with tiered storage and enterprise-grade features, and how to migrate data from AWS S3 Vectors to Zilliz Cloud.

The Real Bottlenecks in Autonomous Driving — And How AI Infrastructure Can Solve Them
Autonomous driving faces a data bottleneck. Learn how AI-native vector databases like Zilliz solve scale, cost, and insight challenges across AV pipelines.

Zilliz Named "Highest Performer" and "Easiest to Use" in G2's Summer 2025 Grid® Report for Vector Databases
Zilliz shines in G2's Summer 2025 Grid® Report as both "Highest Performer" and "Easiest to Use," solving the performance-usability dilemma.



