MongoDB vs MyScale : choisir la bonne base de données pour les applications GenAI
À mesure que les applications pilotées par l’IA évoluent, l’importance des capacités de recherche vectorielle pour soutenir ces avancées ne saurait être surestimée. Cet article de blog abordera deux bases de données majeures dotées de capacités de recherche vectorielle : MongoDB et MyScale. Chacune offre des fonctionnalités robustes pour gérer la recherche vectorielle, une fonction essentielle pour des applications telles que les moteurs de recommandation, la recherche d’images et la recherche sémantique. Notre objectif est de fournir aux développeurs et aux ingénieurs une comparaison claire, afin de les aider à décider quelle base de données correspond le mieux à leurs exigences spécifiques.
Qu’est-ce qu’une base de données vectorielle ?
Avant de comparer MongoDB vs MyScale, 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 à haute dimension, qui sont des représentations numériques de données non structurées. Ces vecteurs encodent des informations complexes, telles que la signification 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 central 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 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 tels que 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 modules complémentaires de recherche vectorielle capables d’effectuer des recherches vectorielles à petite échelle.
MongoDB est une base de données NoSQL avec la recherche vectorielle comme module complémentaire, et MyScale est une base de données construite sur ClickHouse qui combine recherche vectorielle et analytique SQL. Cet article compare leurs capacités de recherche vectorielle.
MongoDB : les bases
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 à haute dimension avec vos données documentaires et effectuer de l’IA et du machine learning directement dans la base de données.
Au cœur de son fonctionnement, 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 Approximate Nearest Neighbor (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 par rapport aux performances pour les requêtes portant sur jusqu’à 10 000 documents.
L’un des grands avantages d’Atlas Vector Search est son intégration avec le modèle de document flexible de MongoDB. Vous pouvez stocker des embeddings vectoriels avec d’autres données de document afin de pouvoir effectuer des recherches de manière plus contextuelle et précise. Vous pouvez interroger tout type de données pouvant être intégrées jusqu’à 4096 dimensions. Atlas Vector Search vous permet de combiner des recherches de similarité vectorielle avec un 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 en texte intégral pour des résultats plus granulaires. C’est différent d’Atlas Search, qui est axé sur la recherche basée sur des mots-clés. La plateforme s’intègre avec 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 beaucoup d’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 (LLM).
Pour garantir l’évolutivité et les performances, MongoDB Atlas fournit des Search Nodes, qui offrent une infrastructure dédiée pour les 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.
Grâce à ces capacités dans l’écosystème MongoDB, Atlas Vector Search est 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 fonctionnalités riches de MongoDB avec la recherche vectorielle.
Qu’est-ce que MyScale ? Les bases
MyScale est une base de données basée sur le cloud construite sur la base de la base de données open source ClickHouse, conçue pour les charges de travail d’IA et d’apprentissage automatique. Elle peut gérer des données structurées et vectorielles ainsi que l’analytique en temps réel et l’apprentissage automatique. MyScale se concentre sur les séries temporelles, la recherche vectorielle et la recherche en texte intégral, ce qui la rend adaptée au traitement en temps réel et aux insights pilotés par l’IA. En utilisant l’architecture ClickHouse, MyScale est performante et évolutive pour l’IA.
L’une des fonctionnalités clés de MyScale est la prise en charge native de SQL, qui simplifie les requêtes pilotées par l’IA en intégrant la recherche vectorielle, la recherche en texte intégral et les requêtes SQL traditionnelles dans un seul système. Cela réduit le besoin de plusieurs outils et la rend évolutive pour l’IA. MyScale prend en charge et gère le traitement analytique des données à la fois structurées et vectorisées sur une seule plateforme, en utilisant une architecture de base de données OLAP pour opérer sur des données vectorisées. Les développeurs peuvent interagir avec MyScale à l’aide de SQL, ce qui la rend accessible à tous les programmeurs familiers des bases de données relationnelles.
MyScale dispose de plusieurs types d’index vectoriels et métriques de similarité pour prendre en charge différents cas d’usage. Elle prend en charge des métriques de distance courantes comme la distance euclidienne (L2), le produit scalaire (IP) et la similarité cosinus. La base de données possède plusieurs algorithmes d’indexation : MSTG (Multi-Scale Tree Graph), ScaNN, IVFFLAT, IVFPQ, IVFSQ et HNSW, chacun avec son propre ensemble de paramètres à ajuster. Le moteur vectoriel propriétaire MSTG de MyScale utilise des SSD NVMe pour augmenter la densité des données, ce qui lui permet de surpasser les bases de données vectorielles spécialisées en termes de performances et de coûts.
En combinant les fonctionnalités d’une base de données SQL, d’une base de données vectorielle et d’un moteur de recherche en texte intégral dans un seul système, MyScale réduit les coûts d’infrastructure et de maintenance. Cette unification permet des requêtes et analyses conjointes des données ainsi qu’une base de données unique pour les applications d’IA. MyScale dispose également de MyScale Telemetry pour une observabilité complète des systèmes LLM, afin que vous puissiez surveiller et déboguer efficacement. À mesure que les données deviennent plus complexes, MyScale est une solution pérenne capable de gérer de nouvelles modalités de données et des tailles de bases de données plus importantes tout en maintenant les performances de calcul et l’intégration entre différents types de données.
Principales différences
En matière d’outils de recherche vectorielle, MongoDB Atlas Vector Search et MyScale sont deux excellentes options. Comparons-les afin que vous puissiez prendre une décision éclairée pour votre projet.
Méthodologie de recherche
MongoDB 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 à plusieurs niveaux de l’espace vectoriel et permet des recherches Approximate Nearest Neighbor (ANN). Il prend également en charge les recherches Exact Nearest Neighbors (ENN) pour jusqu’à 10 000 documents.
MyScale propose plusieurs types d’index vectoriels et métriques de similarité. Il prend en charge des métriques de distance courantes comme la distance euclidienne (L2), le produit scalaire (IP) et la similarité cosinus. MyScale dispose de plusieurs algorithmes d’indexation : MSTG (Multi-Scale Tree Graph), ScaNN, IVFFLAT, IVFPQ, IVFSQ et HNSW. Cela vous donne plus de contrôle sur les performances et la précision de la recherche.
Gestion des données
MongoDB Atlas Vector Search fonctionne avec le modèle de documents flexible de MongoDB. Vous pouvez stocker des embeddings vectoriels aux côtés d’autres données de documents et effectuer des recherches de manière plus contextuelle et précise. Vous pouvez interroger toute donnée pouvant être intégrée jusqu’à 4096 dimensions et combiner la recherche par similarité vectorielle avec le filtrage de documents.
MyScale est conçu pour gérer à la fois les données structurées et vectorielles. Il est conçu pour les charges de travail d’analytique en temps réel et d’apprentissage automatique, il convient donc bien aux séries temporelles, à la recherche vectorielle et à la recherche en texte intégral. La capacité de MyScale à traiter les charges de travail analytiques de données à la fois structurées et vectorisées sur une seule plateforme avec une architecture de base de données OLAP est unique.
Scalabilité et performances
MongoDB Atlas dispose de Search Nodes qui fournissent une infrastructure dédiée aux charges de travail Atlas Search et Vector Search. Cela signifie des ressources de calcul optimisées et une mise à l’échelle indépendante des besoins de recherche pour de meilleures performances à grande échelle.
MyScale est construit sur ClickHouse, dont l’architecture est connue pour ses hautes performances et sa scalabilité. Son moteur vectoriel propriétaire MSTG utilise des SSD NVMe pour augmenter la densité des données et peut potentiellement surpasser les bases de données vectorielles spécialisées en termes de performances comme de coût.
Flexibilité et personnalisation
MongoDB Atlas Vector Search permet la recherche hybride, combinant la recherche vectorielle avec la recherche en texte intégral pour des résultats plus granulaires. Il permet également de combiner la recherche par similarité vectorielle avec le filtrage de documents pour plus de flexibilité dans la construction des requêtes.
MyScale offre une prise en charge native de SQL, les développeurs peuvent donc intégrer la recherche vectorielle, la recherche en texte intégral et les requêtes SQL traditionnelles dans un seul système. Cette approche basée sur SQL est plus familière et accessible aux développeurs ayant une expérience des bases de données relationnelles.
Intégration et écosystème
MongoDB Atlas Vector Search s’intègre aux services et outils d’IA populaires, prend en charge les modèles d’embedding d’OpenAI et de VoyageAI. Fonctionne avec des frameworks open-source comme LangChain et LlamaIndex pour créer des applications utilisant des Large Language Models (LLMs).
L’intégration de MyScale n’est pas explicitement mentionnée dans la documentation, mais sa prise en charge de SQL implique qu’il peut s’intégrer à de nombreux outils et frameworks compatibles SQL.
Facilité d’utilisation
MongoDB Atlas Vector Search s’appuie sur l’écosystème MongoDB existant, donc si vous connaissez déjà MongoDB, la courbe d’apprentissage sera plus douce.
Le SQL de MyScale pour interroger les données vectorielles peut être plus accessible aux développeurs ayant une expérience de SQL, mais la variété des algorithmes et paramètres d’indexation nécessitera davantage d’apprentissage et d’ajustements pour obtenir les meilleures performances.
Coût
MongoDB dispose d’un écosystème établi, d’une documentation abondante et les développeurs le connaissent bien. Si vous utilisez déjà MongoDB, ajouter la recherche vectorielle peut aller de soi.
L’approche unifiée de MyScale peut réduire les coûts d’infrastructure et de maintenance en regroupant plusieurs fonctionnalités dans un seul système. Son moteur vectoriel MSTG affirme surpasser les bases de données vectorielles spécialisées et être plus rentable.
Quand choisir chacun
MongoDB Atlas Vector Search est le meilleur choix lorsque vous utilisez déjà MongoDB pour vos besoins de base de données et que vous souhaitez ajouter la recherche vectorielle sans introduire un autre système. C’est parfait pour les applications qui doivent intégrer de manière fluide la recherche vectorielle aux données documentaires, comme les systèmes de recommandation ou la recherche avancée de produits. La solution de MongoDB est excellente lorsque vous devez combiner la recherche de similarité vectorielle avec le filtrage de documents afin de pouvoir poser des questions plus contextuelles. Choisissez MongoDB Atlas Vector Search lorsque vous souhaitez utiliser l’écosystème MongoDB, y compris la scalabilité et l’intégration avec des outils d’IA populaires.
MyScale est le meilleur choix lorsque vous avez besoin d’une plateforme unique qui combine base de données SQL, recherche vectorielle et recherche en texte intégral. C’est parfait pour les applications qui doivent traiter à la fois des données structurées et vectorielles en temps réel, comme l’analytique pilotée par l’IA ou l’analyse complexe de séries temporelles avec des composants vectoriels. La prise en charge native de SQL par MyScale en fait une excellente option pour les équipes disposant de solides compétences SQL qui souhaitent effectuer une recherche vectorielle avec un langage de requête familier. Choisissez MyScale lorsque vous avez besoin de flexibilité dans les algorithmes d’indexation vectorielle, que vous souhaitez optimiser les coûts et les performances à grande échelle ou que vous avez besoin d’une solution capable de gérer plusieurs types de données et modalités de recherche sur une seule plateforme.
Conclusion
MongoDB Atlas Vector Search s’intègre de manière fluide à votre déploiement MongoDB existant, dispose d’une recherche vectorielle puissante et peut combiner la recherche vectorielle avec le filtrage de documents. MyScale est une plateforme unique pour SQL, la recherche vectorielle et la recherche en texte intégral, avec une indexation flexible et une prise en charge native de SQL pour les requêtes vectorielles. Votre choix entre les deux dépendra de votre infrastructure existante, de votre cas d’utilisation et de votre équipe. Tenez compte de facteurs tels que l’intégration avec les données documentaires, les requêtes basées sur SQL, les types de données avec lesquels vous travaillez et les besoins de scalabilité. Les deux offrent une recherche vectorielle robuste, mais leurs points forts correspondent à différents scénarios et environnements de développement.
Lisez ceci pour obtenir un aperçu de MongoDB et MyScale, 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.
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 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 géré) 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 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 distribué sous la 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.
Ressources supplémentaires sur VectorDB, GenAI et ML
Continuer à lire

A Developer's Guide to Exploring Milvus 2.6 Features on Zilliz Cloud
Milvus 2.6 marks a shift from “vector search + glue code” to a more advanced retrieval engine, and it is now Generally Available (GA) on Zilliz Cloud (a managed Milvus service).

Smarter Autoscaling in Zilliz Cloud: Always Optimized for Every Workload
With the latest upgrade, Zilliz Cloud introduces smarter autoscaling—a fully automated, more streamlined, elastic resource management system.

Proactive Monitoring for Vector Database: Zilliz Cloud Integrates with Datadog
we're excited to announce Zilliz Cloud's integration with Datadog, enabling comprehensive monitoring and observability for your vectorDB deployments.
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.


