SingleStore vs MongoDB : 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 MongoDB, explorons d’abord le concept de bases de données vectorielles.
Une base de données vectorielle est spécifiquement 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, comme 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, en 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 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écialement conçues 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, et MongoDB est une base de données NoSQL qui stocke les données dans des documents de type JSON. Les deux disposent de la recherche vectorielle sous forme d’extension. 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 dans la base de données elle-même, vous n’avez donc 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 mise en correspondance par similarité. C’est extrêmement utile pour des applications comme les systèmes de recommandation, la reconnaissance d’images et les chatbots IA, où la mise en correspondance par similarité est rapide.
Au cœur de SingleStore, tout est conçu pour la performance et l’évolutivité. La base de données distribue les données sur plusieurs nœuds, ce qui vous permet de gérer des opérations de données vectorielles à grande échelle. À mesure que vos données augmentent, vous pouvez simplement 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 vous occuper de 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 de très grands ensembles 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 y a un compromis entre vitesse et précision : l’ANN est plus rapide mais peut ne pas retourner 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 voie à suivre.
L’implémentation technique des indices vectoriels dans SingleStore a 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 combinant cela avec les fonctionnalités traditionnelles des bases de données, SingleStore permet aux développeurs de créer des applications d’IA complexes avec la syntaxe SQL tout en maintenant performance et évolutivité.
MongoDB : Présentation et technologie de base
MongoDB Atlas Vector Search est une fonctionnalité qui vous permet d’effectuer des recherches de similarité vectorielle sur des données stockées dans MongoDB Atlas. Vous pouvez indexer et interroger des embeddings vectoriels de grande dimension avec vos données documentaires et effectuer de l’IA et du machine learning directement dans la base de données.
À la base, Atlas Vector Search utilise l’algorithme Hierarchical Navigable Small World (HNSW) pour l’indexation et la recherche de données vectorielles. Cela crée un graphe multiniveau de l’espace vectoriel afin que vous puissiez effectuer des recherches approximatives des plus proches voisins (ANN). C’est un équilibre entre vitesse et précision pour la recherche vectorielle à grande échelle. Atlas Vector Search prend également en charge les recherches Exact Nearest Neighbors (ENN), qui privilégient la précision au détriment des performances pour des requêtes allant jusqu’à 10 000 documents.
L’un des grands avantages d’Atlas Vector Search est son intégration avec le modèle documentaire flexible de MongoDB. Vous pouvez stocker des embeddings vectoriels avec d’autres données documentaires afin de rechercher de manière plus contextuelle et précise. Vous pouvez interroger tout type de données pouvant être intégré jusqu’à 4096 dimensions. Atlas Vector Search vous permet de combiner des recherches de similarité vectorielle avec le filtrage documentaire traditionnel. Par exemple, une recherche sémantique de produits pourrait être filtrée par catégorie, fourchette de prix ou disponibilité.
Atlas Vector Search prend également en charge la recherche hybride, combinant la recherche vectorielle avec la recherche plein texte pour des résultats plus granulaires. Cela diffère d’Atlas Search, qui se concentre sur la recherche basée sur des mots-clés. La plateforme s’intègre à des services et outils d’IA populaires afin que vous puissiez l’utiliser avec des modèles d’embedding de fournisseurs comme OpenAI, VoyageAI et de nombreux autres répertoriés sur Hugging Face. Elle prend également en charge des frameworks open-source comme LangChain et LlamaIndex pour créer des applications qui utilisent de grands modèles de langage (LLMs).
Pour garantir l’évolutivité et les performances, MongoDB Atlas fournit des Search Nodes, qui offrent une infrastructure dédiée aux charges de travail Atlas Search et Vector Search. Cela vous permet de disposer de ressources de calcul optimisées et d’une mise à l’échelle indépendante des besoins de recherche, afin d’obtenir de meilleures performances à grande échelle.
En intégrant ces capacités dans l’écosystème MongoDB, Atlas Vector Search constitue une solution complète pour les développeurs qui créent des applications alimentées par l’IA, des systèmes de recommandation ou des fonctionnalités de recherche avancées. Pas besoin d’une base de données vectorielle séparée, vous pouvez utiliser l’évolutivité et les riches fonctionnalités de MongoDB avec la recherche vectorielle.
Principales différences
Méthodologie et algorithmes de recherche
SingleStore propose plusieurs options de recherche vectorielle adaptées à différents cas d’utilisation. Pour des résultats exacts, il dispose de la recherche exacte des k plus proches voisins (kNN). Pour privilégier la vitesse plutôt que l’exactitude, SingleStore propose la recherche Approximate Nearest Neighbor (ANN) avec plusieurs types d’index : FLAT, IVF_FLAT, IVF_PQ, IVF_PQFS, HNSW_FLAT et HNSW_PQ. Il prend en charge à la fois le produit scalaire et la distance euclidienne pour la correspondance par similarité, ce qui donne aux développeurs de la flexibilité dans la manière dont ils mesurent la similarité vectorielle.
MongoDB Atlas Vector Search adopte une approche plus ciblée et utilise HNSW (Hierarchical Navigable Small World) comme méthode de recherche principale. Pour les petits jeux de données allant jusqu’à 10 000 documents, MongoDB dispose de la recherche Exact Nearest Neighbors (ENN). À plus grande échelle, il passe à la recherche ANN pour maintenir les performances. Cela simplifie la décision pour les développeurs tout en fournissant une capacité de recherche.
Gestion et structure des données
SingleStore utilise une approche structurée basée sur des tables columnstore. Les données vectorielles doivent être au format : Vector Type(dimensions[, F32]). Cette approche structurée permet à SingleStore de combiner efficacement le SQL traditionnel avec les opérations vectorielles. Elle fonctionne bien pour les applications disposant d’un schéma de données clair où les opérations SQL sont l’exigence principale.
MongoDB adopte une approche plus souple avec son stockage basé sur des documents. Il prend en charge les vecteurs jusqu’à 4096 dimensions et vous pouvez mélanger les données vectorielles avec n’importe quelle structure de document. Cette flexibilité fait de MongoDB un bon choix pour les applications avec des données semi-structurées et non structurées où le schéma peut évoluer au fil du temps.
Évolutivité et performance
SingleStore évolue grâce à la distribution des données sur plusieurs nœuds. À mesure que vos données augmentent, vous pouvez ajouter davantage de nœuds pour maintenir les performances. Il combine la recherche vectorielle avec SQL dans une seule requête, ce qui réduit la complexité et améliore les performances. Cette architecture fait de SingleStore un bon choix pour les opérations vectorielles hautes performances au sein d’une base de données traditionnelle.
MongoDB évolue grâce à des Search Nodes dédiés pour les charges de travail de recherche vectorielle. Cette séparation de l’infrastructure de recherche des opérations principales de la base de données permet une mise à l’échelle indépendante de la recherche. Il est optimisé pour les opérations basées sur des documents avec une recherche vectorielle intégrée, ce qui en fait un bon choix pour les applications qui doivent équilibrer le stockage documentaire traditionnel avec des fonctionnalités de recherche vectorielle.
Intégration et écosystème
La force de SingleStore réside dans son approche basée sur SQL. Il fonctionne de manière transparente avec les outils et flux de travail SQL existants, ce qui en fait un excellent choix pour les organisations disposant déjà d’une expertise et d’une infrastructure SQL. Les applications qui nécessitent une forte intégration SQL peuvent utiliser la capacité vectorielle de SingleStore sans changements architecturaux significatifs.
MongoDB dispose d’une large intégration avec des services d’IA populaires comme OpenAI et VoyageAI. Il prend en charge des frameworks d’IA modernes comme LangChain et LlamaIndex et fonctionne avec divers modèles d’embedding. Il dispose également d’une prise en charge intégrée de la recherche hybride combinant recherche vectorielle et recherche plein texte. Cet écosystème riche fait de MongoDB un bon choix pour les applications pilotées par l’IA.
Quand choisir SingleStore
SingleStore s’adresse aux entreprises qui utilisent SQL et doivent gérer des données structurées à grande échelle. Il est parfait pour les applications d’entreprise où la correspondance vectorielle exacte est importante, comme les plateformes d’analyse financière, les moteurs de recommandation en temps réel ou les grands systèmes de recherche de similarité d’images qui nécessitent des résultats précis. Il convient lorsque vous devez combiner les opérations de base de données traditionnelles avec la recherche vectorielle, que votre équipe possède une expertise SQL et que votre infrastructure est construite autour de bases de données relationnelles.
Quand choisir MongoDB
MongoDB est le choix évident lorsque votre application a besoin de structures de données flexibles et d’une intégration fluide avec les services d’IA modernes. Il est idéal pour des applications comme les systèmes de recommandation de contenu, la recherche sémantique de documents ou les chatbots alimentés par l’IA qui doivent combiner la recherche vectorielle avec des données non structurées. C’est la solution à privilégier lorsque vous devez prototyper et itérer rapidement sur votre implémentation de recherche vectorielle, que vous avez besoin d’une recherche hybride ou que vous prévoyez de vous intégrer à de nombreux services d’IA et modèles d’embedding.
Conclusion
SingleStore et MongoDB sont tous deux excellents pour la recherche vectorielle, mais répondent à des besoins différents dans le paysage applicatif moderne. La force de SingleStore réside dans son approche centrée sur SQL, ses opérations vectorielles précises et sa capacité à gérer des données structurées à grande échelle, ce qui en fait un excellent choix pour les environnements d’entreprise où l’expertise SQL est abondante. La flexibilité de MongoDB, son intégration avec les services d’IA et son approche basée sur les documents en font une solution parfaite pour les applications modernes qui doivent combiner la recherche vectorielle avec plusieurs types de données et capacités d’IA. Votre choix doit être basé sur votre cas d’utilisation, votre pile technologique existante, l’expertise de votre équipe et le fait que vous ayez besoin d’opérations précises basées sur SQL ou de flexibilité et de facilité d’intégration avec l’IA.
Lisez ceci pour obtenir un aperçu de SingleStore et MongoDB, mais pour les évaluer, vous devez le faire en fonction de votre cas d’utilisation. 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 schémas 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.
Using Open-source VectorDBBench to Evaluate and Compare Vector Databases on Your Own
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 hautes performances, en particulier de 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, et de trouver celui qui correspond à leurs cas d’utilisation. Avec VectorDBBench, les utilisateurs peuvent prendre des décisions fondé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 bases de données vectorielles grand public sur le VectorDBBench Leaderboard.
Lisez les blogs suivants pour en savoir plus sur l’évaluation des bases de données vectorielles.
Further Resources about VectorDB, GenAI, and ML
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.

Introducing Business Critical Plan: Enterprise-Grade Security and Compliance for Mission-Critical AI Applications
Discover Zilliz Cloud’s Business Critical Plan—offering advanced security, compliance, and uptime for mission-critical AI and vector database workloads.

AI Integration in Video Surveillance Tools: Transforming the Industry with Vector Databases
Discover how AI and vector databases are revolutionizing video surveillance with real-time analysis, faster threat detection, and intelligent search capabilities for enhanced security.
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.


