Comment évaluer une base de données vectorielle ?
Cet article a été initialement publié dans InfoWorld et est republié ici avec autorisation.
Dans le monde actuel axé sur les données, la croissance exponentielle des données non structurées est un phénomène qui exige notre attention. L’essor de l’IA et des grands modèles de langage (LLM) a une fois de plus déclenché cette explosion des données, orientant notre attention vers une technologie révolutionnaire : les bases de données vectorielles. En tant qu’infrastructure essentielle à l’ère de l’IA, les bases de données vectorielles sont des outils puissants pour stocker, indexer et rechercher des données non structurées.
Alors que l’attention du monde entier est fermement portée sur les bases de données vectorielles, une question urgente se pose : comment sélectionner celle qui convient à vos besoins métier ? Quels sont les facteurs clés à prendre en compte lors de la comparaison et de l’évaluation des bases de données vectorielles ? Cet article se penchera sur ces questions et fournira des éclairages du point de vue de la scalabilité, des fonctionnalités et des performances, afin de vous aider à prendre des décisions éclairées dans ce paysage dynamique.
Qu’est-ce qu’une base de données vectorielle ?
Les systèmes de bases de données relationnelles conventionnels gèrent les données dans des tables structurées avec des formats prédéfinis et excellent dans l’exécution d’opérations de recherche précises. À l’inverse, les bases de données vectorielles sont spécialisées dans le stockage et la récupération de données non structurées, telles que des images, de l’audio, des vidéos et du texte, au moyen de représentations numériques à haute dimension appelées embeddings vectoriels.
Les bases de données vectorielles sont réputées pour les recherches de similarité, qui emploient des techniques comme l’algorithme Approximate Nearest Neighbor (ANN). Cet algorithme organise les données selon des relations spatiales et identifie rapidement le point de données le plus proche d’une requête donnée au sein de vastes jeux de données.
Les développeurs utilisent les bases de données vectorielles pour créer des systèmes de recommandation, des chatbots et des applications destinées à rechercher des images, des vidéos et de l’audio similaires. Avec l’essor de ChatGPT, les bases de données vectorielles se sont révélées utiles pour résoudre les problèmes d’hallucination des grands modèles de langage.
Bases de données vectorielles vs autres technologies de recherche vectorielle
Diverses technologies sont disponibles pour la recherche vectorielle au-delà des bases de données vectorielles. En 2017, Meta a publié FAISS en open source, réduisant considérablement les coûts et les obstacles associés à la recherche vectorielle. En 2019, Zilliz a présenté Milvus, une base de données vectorielle open source conçue à cet effet, qui ouvre la voie dans le secteur. Depuis lors, de nombreuses autres entreprises de bases de données vectorielles ont émergé. La tendance des bases de données vectorielles a pris son essor en 2022 avec l’arrivée de nombreux produits de recherche traditionnels tels que Elasticsearch et Redis, ainsi que l’utilisation généralisée des LLM comme ChatGPT.
Quelles sont leurs différences maintenant qu’il existe tant de produits de recherche vectorielle ? Je les classe grossièrement dans les types suivants :
Bibliothèques de recherche vectorielle. Ce sont des collections d’algorithmes dépourvues de fonctionnalités de base de bases de données comme l’insertion, la suppression, la mise à jour, la requête, la persistance des données et la scalabilité. FAISS en est un exemple majeur.
Bases de données vectorielles légères. Elles sont construites sur des bibliothèques de recherche vectorielle, ce qui les rend légères à déployer, mais avec une scalabilité et des performances médiocres. Chroma en est un exemple.
Plugins de recherche vectorielle. Ce sont des extensions de recherche vectorielle qui s’appuient sur des bases de données traditionnelles. Cependant, leur architecture est conçue pour des charges de travail conventionnelles, ce qui peut avoir un impact négatif sur leurs performances et leur scalabilité. Elasticsearch et Pgvector en sont des exemples majeurs.
Bases de données vectorielles conçues à cet effet. Ces bases de données sont conçues spécifiquement pour la recherche vectorielle et offrent des avantages significatifs par rapport aux autres technologies de recherche vectorielle. Par exemple, les bases de données vectorielles dédiées fournissent des fonctionnalités plus conviviales telles que le calcul et le stockage distribués, la reprise après sinistre et la persistance des données. Milvus en est un exemple majeur.
Comment évaluer une base de données vectorielle ?
Lors de l’évaluation d’une base de données vectorielle, la scalabilité, la fonctionnalité et les performances sont les trois indicateurs les plus cruciaux.
Scalabilité
La scalabilité est essentielle pour déterminer si une base de données vectorielle peut gérer efficacement des données en croissance exponentielle. Lors de l’évaluation de la scalabilité, nous devons prendre en compte la scalabilité horizontale/verticale, l’équilibrage de charge et les réplications multiples.
Scalabilité horizontale/verticale
Différentes bases de données vectorielles emploient diverses techniques de mise à l’échelle pour répondre aux exigences de croissance des entreprises. Par exemple, Pinecone et Qdrant optent pour la mise à l’échelle verticale, tandis que Milvus adopte la mise à l’échelle horizontale. La scalabilité horizontale offre une plus grande flexibilité et de meilleures performances que la mise à l’échelle verticale, avec moins de limites supérieures.
Équilibrage de charge
L’ordonnancement est crucial pour un système distribué. Sa vitesse, sa granularité et sa précision influencent directement la gestion de la charge et les performances du système, réduisant la scalabilité s’il n’est pas correctement optimisé.
Prise en charge de multiples réplicas
Les réplicas multiples permettent des réponses différenciées à diverses requêtes, améliorant les requêtes par seconde (QPS) du système et sa scalabilité globale.
Différentes bases de données vectorielles s’adressent à différents types d’utilisateurs, leurs stratégies de scalabilité diffèrent donc. Milvus, par exemple, se concentre sur les scénarios où les volumes de données augmentent rapidement et utilise une architecture scalable horizontalement avec séparation du stockage et du calcul. Pinecone et Qdrant, en revanche, sont conçus pour les utilisateurs ayant un volume de données et des besoins de mise à l’échelle modérés. Parallèlement, LanceDB et Chroma privilégient les déploiements légers plutôt que la scalabilité.
Fonctionnalité
Je classe la fonctionnalité des bases de données vectorielles en deux grandes catégories : les fonctionnalités orientées base de données et les fonctionnalités orientées vecteur.
Fonctionnalités orientées vecteur
Les bases de données vectorielles bénéficient à de nombreux cas d’utilisation, tels que la génération augmentée par récupération (RAG), les systèmes de recommandation et la recherche de similarité sémantique à l’aide de divers index. Par conséquent, la capacité à prendre en charge plusieurs types d’index est un facteur essentiel dans l’évaluation d’une base de données vectorielle.
Actuellement, la plupart des bases de données vectorielles prennent en charge les index HNSW (Hierarchical Navigable Small World), certaines prenant également en charge les index IVF (Inverted File). Ces index conviennent aux opérations en mémoire et sont les mieux adaptés aux environnements disposant de ressources abondantes. Cependant, certaines bases de données vectorielles choisissent des solutions basées sur mmap pour les situations où les ressources matérielles sont limitées. Bien que plus faciles à mettre en œuvre, les solutions basées sur mmap se font au détriment des performances.
Milvus, l’une des bases de données vectorielles les plus anciennes, prend en charge 11 types d’index, notamment des index basés sur disque et sur GPU. Cette approche garantit une adaptabilité à un large éventail de scénarios applicatifs.
Fonctionnalités orientées base de données
De nombreuses fonctionnalités bénéfiques pour les bases de données traditionnelles s’appliquent également aux bases de données vectorielles, telles que la capture des changements de données (CDC), la prise en charge du multi-tenant, les groupes de ressources et le contrôle d’accès basé sur les rôles (RBAC). Milvus et quelques bases de données traditionnelles équipées de plugins vectoriels prennent efficacement en charge ces fonctionnalités orientées base de données.
Performances
Les performances sont la métrique la plus critique pour évaluer une base de données vectorielle. Contrairement aux bases de données conventionnelles, les bases de données vectorielles effectuent des recherches approximatives, ce qui signifie que les k premiers résultats récupérés ne peuvent pas garantir une précision de 100 %. Par conséquent, en plus des métriques traditionnelles telles que les requêtes par seconde (QPS) et la latence, le « taux de rappel » est une autre métrique de performance essentielle pour les bases de données vectorielles, qui quantifie la précision de la récupération.
Je recommande deux outils de benchmarking open source largement reconnus pour évaluer différentes métriques : ANN-Benchmark et VectorDBBench.
ANN-Benchmark
L’indexation vectorielle est un aspect critique et gourmand en ressources d’une base de données vectorielle. Ses performances affectent directement les performances globales de la base de données. ANN-Benchmark est un outil de benchmarking de premier plan pour évaluer les performances de divers algorithmes d’index vectoriels sur une gamme de jeux de données réels.
Le graphique ci-dessous présente les résultats des tests de rappel/requêtes par seconde de divers algorithmes basés sur le jeu de données GIST1M (1 M de vecteurs avec 960 dimensions). Il représente le taux de rappel sur l’axe des x par rapport au QPS sur l’axe des y, illustrant les performances de chaque algorithme à différents niveaux de précision de récupération.
Selon les résultats présentés dans le graphique ci-dessus, les bibliothèques Milvus, Zilliz et HNSW ont obtenu les trois meilleurs résultats lors du traitement de 1 000 000 de vecteurs avec 960 dimensions. Pour davantage de résultats de benchmarking, consultez le site web d’ANN-Benchmark.
VectorDBBench
Bien qu’ANN-Benchmark soit extrêmement utile pour sélectionner et comparer différents algorithmes de recherche vectorielle, il ne fournit pas une vue d’ensemble complète des bases de données vectorielles. Nous devons également prendre en compte des facteurs tels que la consommation de ressources, la capacité de chargement des données et la stabilité du système. De plus, ANN-Benchmark omet de nombreux scénarios courants, comme la recherche vectorielle filtrée.
VectorDBBench est un outil de benchmarking open source qui peut remédier aux limites mentionnées ci-dessus et qui est conçu pour les bases de données vectorielles open source comme Milvus et Weaviate, ainsi que pour les services entièrement gérés comme Zilliz Cloud et Pinecone. Étant donné que de nombreux services de recherche vectorielle entièrement gérés n’exposent pas leurs paramètres pour un réglage par l’utilisateur, VectorDBBench affiche séparément les QPS et les taux de rappel.
Les graphiques ci-dessous présentent les résultats des tests pour le QPS et le taux de rappel de diverses bases de données vectorielles grand public lors du traitement de 500 000 vecteurs avec 1 536 dimensions et de 1 000 000 de vecteurs avec 768 dimensions, respectivement.
D’après les résultats présentés dans les graphiques ci-dessus, les bases de données vectorielles spécialement conçues comme Milvus et Zilliz ont démontré des performances exceptionnelles tant en matière de QPS que de taux de rappel. Ces résultats indiquent que les bases de données vectorielles spécialement conçues peuvent traiter rapidement de vastes quantités de données et récupérer des résultats plus précis. En revanche, les modules complémentaires de recherche vectorielle basés sur des bases de données traditionnelles ont affiché des performances plus faibles.
Pour consulter davantage de résultats de benchmark, consultez le site web VectorDBBench.
Conclusion
Dans le domaine dynamique des bases de données vectorielles, de nombreux produits présentent des priorités et des points forts uniques. Il n’existe pas de « meilleure » base de données vectorielle universelle ; le choix dépend de vos besoins. Il est donc essentiel d’évaluer l’évolutivité, les fonctionnalités, les performances et la compatibilité d’une base de données vectorielle avec vos cas d’utilisation particuliers.
Continuer à lire

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 Cloud Enterprise Vector Search Powers High-Performance AI on AWS
Zilliz Cloud on AWS powers secure, scalable, ultra-fast vector search for enterprise AI apps, with BYOC, sub-10ms latency, and zero-DevOps simplicity.

Cosmos World Foundation Model Platform for Physical AI
NVIDIA's Cosmos platform enables safe, digital twin training of GenAI models for physical applications, overcoming data scarcity and safety challenges.



