SingleStore vs Milvus : choisir la bonne base de données vectorielle pour vos applications d’IA
Qu’est-ce qu’une base de données vectorielle ?
Avant de comparer SingleStore et Milvus, explorons d’abord le concept de bases de données vectorielles.
Une base de données vectorielle est spécialement conçue pour stocker et interroger des vecteurs de grande dimension, qui sont des représentations numériques de données non structurées. Ces vecteurs encodent des informations complexes, telles que le sens sémantique d’un texte, les caractéristiques visuelles d’images ou les attributs de produits. En permettant des recherches de similarité efficaces, les bases de données vectorielles jouent un rôle essentiel dans les applications d’IA, permettant une analyse et une récupération des données plus avancées.
Les cas d’utilisation courants des bases de données vectorielles incluent les recommandations de produits en e-commerce, les plateformes de découverte de contenu, la détection d’anomalies en cybersécurité, l’analyse d’images médicales et les tâches de traitement du langage naturel (NLP). Elles jouent également un rôle crucial dans la génération augmentée par récupération (RAG), une technique qui améliore les performances des grands modèles de langage (LLMs) en fournissant des connaissances externes afin de réduire des problèmes comme les hallucinations de l’IA.
Il existe de nombreux types de bases de données vectorielles disponibles sur le marché, notamment :
- Bases de données vectorielles spécialisées telles que Milvus, Zilliz Cloud (Milvus entièrement géré)
- Bibliothèques de recherche vectorielle telles que Faiss et Annoy.
- Bases de données vectorielles légères telles que Chroma et Milvus Lite.
- Bases de données traditionnelles avec des extensions de recherche vectorielle capables d’effectuer des recherches vectorielles à petite échelle.
SingleStore est un système de gestion de base de données SQL relationnelle distribuée, avec la recherche vectorielle comme extension. Faiss sont des bibliothèques open source et légères conçues pour une recherche vectorielle efficace. Cet article compare leurs capacités de recherche vectorielle.
SingleStore : aperçu et technologie de base
SingleStore a rendu la recherche vectorielle possible en l’intégrant directement dans la base de données, afin que vous n’ayez pas besoin de bases de données vectorielles distinctes dans votre pile technologique. Les vecteurs peuvent être stockés dans des tables de base de données classiques et recherchés avec des requêtes SQL standard. Par exemple, vous pouvez rechercher des images de produits similaires tout en filtrant par fourchette de prix, ou explorer des embeddings de documents tout en limitant les résultats à des départements spécifiques. Le système prend en charge à la fois la recherche sémantique utilisant FLAT, IVF_FLAT, IVF_PQ, IVF_PQFS, HNSW_FLAT et HNSW_PQ pour l’index vectoriel, ainsi que le produit scalaire et la distance euclidienne pour la correspondance de similarité. C’est extrêmement utile pour des applications comme les systèmes de recommandation, la reconnaissance d’images et les chatbots d’IA où la correspondance de similarité est rapide.
Au cœur de SingleStore, tout est conçu pour la performance et le passage à l’échelle. La base de données distribue les données sur plusieurs nœuds afin que vous puissiez gérer des opérations de données vectorielles à grande échelle. À mesure que vos données augmentent, il vous suffit d’ajouter davantage de nœuds et le tour est joué. Le processeur de requêtes peut combiner la recherche vectorielle avec des opérations SQL, vous n’avez donc pas besoin d’effectuer plusieurs requêtes séparées. Contrairement aux bases de données uniquement vectorielles, SingleStore vous offre ces capacités dans le cadre d’une base de données complète, afin que vous puissiez créer des fonctionnalités d’IA sans gérer plusieurs systèmes ni faire face à des transferts de données complexes.
Pour l’indexation vectorielle, SingleStore propose deux options. La première est la recherche exacte des k plus proches voisins (kNN), qui trouve l’ensemble exact des k plus proches voisins pour un vecteur de requête. Mais pour les très grands jeux de données ou une forte concurrence, SingleStore prend également en charge la recherche approximative des plus proches voisins (ANN) à l’aide de l’indexation vectorielle. La recherche ANN peut trouver k voisins proches beaucoup plus rapidement que la recherche kNN exacte, parfois de plusieurs ordres de grandeur. Il existe un compromis entre vitesse et précision : l’ANN est plus rapide, mais peut ne pas renvoyer l’ensemble exact des k plus proches voisins. Pour les applications avec des milliards de vecteurs qui nécessitent des temps de réponse interactifs et n’ont pas besoin d’une précision absolue, la recherche ANN est la meilleure option.
L’implémentation technique des indices vectoriels dans SingleStore comporte des exigences spécifiques. Ces indices ne peuvent être créés que sur des tables columnstore et doivent être créés sur une seule colonne qui stocke les données vectorielles. Le système prend actuellement en charge le format Vector Type(dimensions[, F32]), F32 étant le seul type d’élément pris en charge. Cette approche structurée rend SingleStore excellent pour des applications comme la recherche sémantique utilisant des vecteurs issus de grands modèles de langage, la génération augmentée par récupération (RAG) pour une génération de texte ciblée et la correspondance d’images basée sur des embeddings vectoriels. En les combinant avec des fonctionnalités de base de données traditionnelles, SingleStore permet aux développeurs de créer des applications d’IA complexes à l’aide de la syntaxe SQL tout en maintenant les performances et l’évolutivité.
Présentation de la base de données vectorielle Milvus
Milvus est une base de données vectorielle open source conçue dès le départ pour la recherche vectorielle et la recherche de similarité comme fonctionnalités centrales. Elle est très performante et évolutive horizontalement à l’échelle du milliard, et peut fonctionner efficacement dans un large éventail d’environnements, des ordinateurs portables aux systèmes distribués à grande échelle. Milvus est disponible à la fois sous forme de logiciel open source et de service cloud (Zilliz Cloud).
Milvus prend en charge au moins 11 méthodes d’indexation, notamment HNSW (Hierarchical Navigable Small World), IVF (Inverted File), DiskANN, et CAGRA, ce qui lui permet de rechercher rapidement dans de grands volumes de données. Contrairement à Cassandra, Milvus n’est pas une base de données généraliste, mais un outil axé sur les données non structurées et la recherche de similarité vectorielle, ce qui en fait une solution plus spécialisée.
Milvus fait partie de la LF AI & Data Foundation et est sous licence Apache 2.0. De nombreux contributeurs sont des experts en calcul haute performance (HPC), avec une expérience dans la création et l’optimisation de systèmes à grande échelle. Les principaux contributeurs comprennent des professionnels d’entreprises comme Zilliz, ARM, NVIDIA, AMD, Intel, Meta, IBM, Salesforce et Microsoft.
Milvus propose trois options de déploiement : Milvus Lite, Standalone, et Distributed.
- Milvus Lite est une bibliothèque Python et une version ultra-légère de Milvus. Elle est parfaite pour le prototypage rapide dans des environnements Python ou notebook et pour des expériences locales à petite échelle.
- Milvus Standalone est l’option de déploiement sur nœud unique pour Milvus, utilisant un modèle client-serveur. Vous pouvez la considérer comme l’équivalent Milvus de MySQL, tandis que Milvus Lite est comme SQLite.
- Milvus Distributed est le mode distribué de Milvus, idéal pour les utilisateurs en entreprise qui construisent des systèmes de bases de données vectorielles à grande échelle ou des plateformes de données vectorielles.
Principales différences
Méthodologie de recherche
SingleStore : Offre à la fois la recherche exacte des k plus proches voisins (kNN) et la recherche approximative des plus proches voisins (ANN). Alors que le kNN exact garantit une plus grande précision, l’ANN fournit des requêtes plus rapides pour les grands jeux de données, sacrifiant une partie de la précision au profit de la vitesse. La prise en charge par SingleStore de plusieurs méthodes ANN (p. ex., IVF_FLAT, IVF_PQ, HNSW_PQ) le rend polyvalent pour les charges de travail hybrides combinant des requêtes SQL traditionnelles avec la recherche vectorielle.
Milvus : Se spécialise dans la recherche de similarité vectorielle avec une prise en charge étendue de plus de 11 méthodes d’indexation, notamment HNSW, IVF, DiskANN et CAGRA. Ces index sont optimisés pour les performances et la flexibilité, permettant à Milvus de gérer divers scénarios de recherche vectorielle à grande échelle. Ses options d’indexation en font un meilleur choix pour les tâches de recherche vectorielle pure nécessitant une forte configurabilité. Milvus prend également en charge kNN, ANN, Range Search, Full-text search et Hybrid Search pour un ensemble plus diversifié de requêtes de recherche qui aide à trouver les résultats les plus pertinents.
Gestion des données
SingleStore : Intègre les données vectorielles dans une base de données relationnelle polyvalente, en stockant les vecteurs dans des tables columnstore aux côtés de données structurées et semi-structurées. Cette configuration permet un filtrage et une agrégation fluides avec des requêtes SQL standard, ce qui la rend idéale pour les applications qui combinent des métadonnées structurées avec des données vectorielles non structurées.
Milvus : Se concentre exclusivement sur les données non structurées, ce qui le rend spécialement conçu pour des cas d’utilisation comme la reconnaissance d’images, la récupération de documents et les systèmes de recommandation. Si vous travaillez avec des jeux de données qui sont principalement des vecteurs sans forte dépendance aux données structurées, Milvus fournit une solution plus adaptée.
Évolutivité et performances
SingleStore : Évolue horizontalement en distribuant les données sur plusieurs nœuds. À mesure que vos données augmentent, l’ajout de nœuds est simple, et son processeur de requêtes SQL fusionne efficacement la recherche vectorielle avec les opérations de base de données standard. Cependant, ses capacités vectorielles font partie d’un système de base de données plus large, ce qui peut introduire une surcharge pour les charges de travail purement vectorielles.
Milvus : Conçu pour la recherche vectorielle à l’échelle du milliard, avec l’évolutivité horizontale comme fonctionnalité centrale. Son mode distribué garantit des performances élevées pour les déploiements à grande échelle. L’architecture de Milvus est optimisée pour les scénarios où la recherche vectorielle est la charge de travail principale, offrant une latence plus faible et une meilleure efficacité pour de tels cas d’utilisation.
Flexibilité et personnalisation
SingleStore : Offre de la flexibilité en combinant la recherche vectorielle avec des opérations SQL. Cependant, l’indexation vectorielle est limitée à des configurations spécifiques (p. ex., type d’élément F32, vecteurs à colonne unique dans des tables columnstore). Cette approche structurée convient aux applications nécessitant une intégration étroite avec les fonctionnalités de bases de données traditionnelles.
Milvus : Offre une personnalisation étendue pour l’indexation, les paramètres de recherche et les modes de déploiement. Avec des options comme Milvus Lite pour les environnements intégrés, Milvus Standalone pour les expériences locales et Distributed Milvus pour les environnements à grande échelle, il répond à un large éventail de flux de travail.
Intégration et écosystème
SingleStore : Excelle dans son intégration avec les outils et flux de travail standard basés sur SQL, permettant aux développeurs d’utiliser des technologies familières sans courbe d’apprentissage abrupte. Sa compatibilité avec les outils d’IA et d’analytique renforce son utilité dans les applications hybrides.
Milvus : Se concentre sur les intégrations avec les écosystèmes d’IA et d’apprentissage automatique. Il prend en charge les modèles d’embedding et fonctionne bien dans les pipelines de génération augmentée par récupération (RAG) et les applications nécessitant un traitement de vecteurs denses. Sa nature open-source permet également aux développeurs de l’étendre et de l’adapter à des besoins spécifiques.
Facilité d’utilisation
SingleStore : Combine la simplicité de SQL avec des capacités vectorielles, le rendant accessible aux développeurs familiers avec les bases de données relationnelles. Cependant, l’approche structurée de la gestion des vecteurs peut nécessiter des ajustements pour les charges de travail fortement axées sur les données non structurées.
Milvus : Conçu dès le départ pour la recherche vectorielle, il offre une expérience plus spécialisée. Bien que son mode distribué puisse introduire de la complexité, ses versions standalone et lite simplifient l’expérimentation et les déploiements à plus petite échelle.
Considérations de coût
SingleStore : En intégrant la recherche vectorielle dans une base de données complète, SingleStore réduit le besoin de plusieurs systèmes, ce qui peut potentiellement diminuer les coûts opérationnels. Cependant, sa tarification en tant que base de données polyvalente peut inclure des fonctionnalités dont vous n’avez pas besoin pour des charges de travail spécifiquement vectorielles.
Milvus : Milvus open-source fournit un point d’entrée rentable, avec la flexibilité nécessaire pour évoluer vers des services managés comme Zilliz Cloud. Son orientation vers la recherche vectorielle garantit que vous ne payez que pour les fonctionnalités dont vous avez besoin.
Fonctionnalités de sécurité
SingleStore : Offre de solides fonctionnalités de sécurité de niveau entreprise, notamment le chiffrement, l’authentification et les contrôles d’accès. Sa fonctionnalité complète de base de données en fait un choix solide pour les applications nécessitant une conformité stricte.
Milvus : Bien que des fonctionnalités de sécurité soient disponibles, les détails dépendent du modèle de déploiement (par exemple, standalone vs. cloud). Pour les cas d’usage en entreprise, Zilliz Cloud fournit des capacités de sécurité renforcées.
Conclusion
Choisissez l’un des deux en fonction de votre cas d’usage et de votre écosystème :
SingleStore si vous souhaitez une solution hybride qui combine le traitement de données structurées avec la recherche vectorielle. Adapté à l’e-commerce ou à l’analytique d’entreprise lorsque les requêtes SQL et vectorielles doivent coexister.
Milvus si vous avez besoin d’une base de données vectorielle optimisée pour les données non structurées à grande échelle et les charges de travail d’IA. Adapté aux projets qui reposent fortement sur la recherche de similarité, comme les moteurs de recommandation ou les systèmes de génération augmentée par récupération.
Milvus pour une approche centrée sur les vecteurs, conviviale pour les développeurs et évolutive. SingleStore pour les données structurées et les vecteurs dans un seul système.
Lisez ceci pour obtenir un aperçu de SingleStore et Milvus, mais pour les évaluer, vous devez le faire en fonction de votre cas d’usage. Un outil qui peut vous y aider est VectorDBBench, un outil de benchmarking open-source pour la comparaison de bases de données vectorielles. Au final, un benchmarking approfondi avec vos propres jeux de données et modèles de requêtes sera essentiel pour prendre une décision entre ces deux approches puissantes mais différentes de la recherche vectorielle dans les systèmes de bases de données distribuées.
Utiliser VectorDBBench open-source pour évaluer et comparer les bases de données vectorielles par vous-même
VectorDBBench est un outil de benchmarking open-source destiné aux utilisateurs qui ont besoin de systèmes de stockage et de récupération de données haute performance, en particulier des bases de données vectorielles. Cet outil permet aux utilisateurs de tester et de comparer différents systèmes de bases de données vectorielles comme Milvus et Zilliz Cloud (le Milvus managé) en utilisant leurs propres jeux de données, afin de trouver celui qui correspond à leurs cas d’usage. Avec VectorDBBench, les utilisateurs peuvent prendre des décisions basées sur les performances réelles des bases de données vectorielles plutôt que sur des affirmations marketing ou des ouï-dire.
VectorDBBench est écrit en Python et sous licence open-source MIT, ce qui signifie que chacun peut l’utiliser, le modifier et le distribuer librement. L’outil est activement maintenu par une communauté de développeurs engagés dans l’amélioration de ses fonctionnalités et de ses performances.
Téléchargez VectorDBBench depuis son dépôt GitHub pour reproduire nos résultats de benchmark ou obtenir des résultats de performance sur vos propres jeux de données.
Jetez un rapide coup d’œil aux performances des principales bases de données vectorielles sur le classement VectorDBBench.
Lisez les blogs suivants pour en savoir plus sur l’évaluation des bases de données vectorielles.
Ressources supplémentaires sur VectorDB, la GenAI et le ML
Continuer à lire

Zilliz Cloud Audit Logs Goes GA: Security, Compliance, and Transparency at Scale
Zilliz Cloud Audit Logs are now GA, giving enterprises real-time visibility, compliance-ready trails, and stronger security across AWS, GCP, and Azure.

Why Not All VectorDBs Are Agent-Ready
Explore why choosing the right vector database is critical for scaling AI agents, and why traditional solutions fall short in production.

Why AI Databases Don't Need SQL
Whether you like it or not, here's the truth: SQL is destined for decline in the era of AI.
The Definitive Guide to Choosing a Vector Database
Overwhelmed by all the options? Learn key features to look for & how to evaluate with your own data. Choose with confidence.


