MongoDB vs Vearch : 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 de premier plan dotées de capacités de recherche vectorielle : MongoDB et Vearch. Chacune offre des capacités robustes pour gérer la recherche vectorielle, une fonctionnalité 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 Vearch, 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, 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 central 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 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 les 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 conçues à cet effet 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.
MongoDB est une base de données NoSQL avec la recherche vectorielle comme extension. Vearch est une base de données vectorielle conçue à cet effet. 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 de grande dimension avec vos données de documents et faire de l’IA et de l’apprentissage automatique directement dans la base de données.
À la base, Atlas Vector Search utilise l’algorithme Hierarchical Navigable Small World (HNSW) pour indexer et rechercher des données vectorielles. Cela crée un graphe multi-niveaux de l’espace vectoriel, ce qui vous permet d’effectuer des recherches Approximate Nearest Neighbor (ANN). C’est un équilibre entre rapidité 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 allant jusqu’à 10 000 documents.
L’un des grands avantages d’Atlas Vector Search est son intégration au modèle de document flexible de MongoDB. Vous pouvez stocker des vector embeddings avec d’autres données de document afin d’effectuer des recherches plus contextuelles et plus précises. Vous pouvez interroger tout type de données pouvant être intégré jusqu’à 4096 dimensions. Atlas Vector Search vous permet de combiner des recherches par similarité vectorielle avec le filtrage traditionnel de documents. 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 se concentre sur la recherche basée sur des mots-clés. La plateforme s’intègre à des services et outils d’IA populaires, ce qui vous permet de l’utiliser avec des modèles d’embedding provenant de fournisseurs comme OpenAI, VoyageAI et bien 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 des Large Language Models (LLMs).
Pour garantir l’évolutivité et les performances, MongoDB Atlas fournit des Search Nodes, qui fournissent une infrastructure dédiée aux workloads 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 disposant de 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.
Qu’est-ce que Vearch** ? Les bases**
Vearch est un outil destiné aux développeurs qui créent des applications d’IA nécessitant des recherches de similarité rapides et efficaces. C’est comme une base de données surpuissante, mais au lieu de stocker des données ordinaires, elle est conçue pour gérer ces vector embeddings complexes qui alimentent une grande partie des technologies d’IA modernes.
L’un des aspects les plus intéressants de Vearch est sa recherche hybride. Vous pouvez effectuer des recherches par vecteurs (pensez à trouver des images ou du texte similaires) et aussi filtrer par données classiques comme des nombres ou du texte. Vous pouvez donc effectuer des recherches complexes comme « trouver des produits similaires à celui-ci, mais uniquement dans la catégorie électronique et à moins de 500 $ ». C’est aussi rapide - on parle de recherches dans un corpus de millions de vecteurs en millisecondes.
Vearch est conçu pour évoluer avec vos besoins. Il utilise une configuration en cluster, comme une équipe d’ordinateurs travaillant ensemble. Vous avez différents types de nœuds (master, router et partition server) qui gèrent différentes tâches, de la gestion des métadonnées au stockage et au calcul des données. Cela permet à Vearch de s’adapter horizontalement et d’être fiable à mesure que vos données augmentent. Vous pouvez ajouter davantage de machines pour gérer plus de données ou de trafic sans difficulté.
Pour les développeurs, Vearch propose quelques fonctionnalités intéressantes qui facilitent la vie. Vous pouvez ajouter des données à votre index en temps réel afin que vos résultats de recherche soient toujours à jour. Il prend en charge plusieurs champs vectoriels dans un seul document, ce qui est pratique pour les données complexes. Il existe également un SDK Python pour un développement et des tests rapides. Vearch est flexible avec les méthodes d’indexation (IVFPQ et HNSW) et prend en charge les versions CPU et GPU, ce qui vous permet d’optimiser selon votre matériel et votre cas d’utilisation spécifiques. Que vous construisiez un système de recommandation, une recherche d’images similaires ou toute application d’IA nécessitant une correspondance de similarité rapide, Vearch vous donne les outils pour y parvenir efficacement.
Différences clés
Lorsque vous créez des applications d’IA qui nécessitent une recherche vectorielle, deux outils viennent à l’esprit : MongoDB Atlas Vector Search et Vearch. Les deux sont puissants, mais présentent quelques différences clés qui influenceront votre décision. Voyons comment ces outils se comparent dans plusieurs domaines clés.
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. Il crée un graphe multiniveau de l’espace vectoriel pour les recherches Approximate Nearest Neighbor (ANN). Il prend également en charge les recherches Exact Nearest Neighbors (ENN) pour les jeux de données plus petits.
Vearch, en revanche, offre de la flexibilité dans les méthodes d’indexation. Il prend en charge les algorithmes IVFPQ et HNSW, ce qui vous donne plus d’options pour optimiser votre cas d’utilisation.
Données
MongoDB Atlas Vector Search excelle grâce à son intégration avec le modèle documentaire de MongoDB. Vous pouvez stocker des embeddings vectoriels aux côtés d’autres données de document, ce qui vous permet d’effectuer des recherches avec plus de contexte et de précision. C’est particulièrement utile pour les applications qui doivent combiner des recherches par similarité vectorielle avec le filtrage de documents.
Vearch prend également en charge la recherche hybride, ce qui vous permet de rechercher par vecteurs et de filtrer par données classiques. Il peut gérer plusieurs champs vectoriels dans un seul document, ce qui est utile pour les structures de données complexes.
Scalabilité et performances
MongoDB Atlas dispose de Search Nodes dédiés aux charges de travail Vector Search, ce qui vous permet de faire évoluer la recherche indépendamment. Cela signifie de meilleures performances à grande échelle, en particulier pour les grands jeux de données.
Vearch dispose d’une configuration en cluster avec différents types de nœuds (master, router et partition server) qui gèrent différentes tâches. Cette architecture permet à Vearch de s’étendre à mesure que vos données augmentent, et vous pouvez ajouter davantage de machines pour gérer plus de données ou de trafic.
Flexibilité et personnalisation
MongoDB Atlas Vector Search peut interroger toutes les données pouvant être intégrées jusqu’à 4096 dimensions. Il prend également en charge la combinaison de recherches par similarité vectorielle avec le filtrage de documents et la recherche plein texte.
Vearch offre de la flexibilité dans les méthodes d’indexation et prend en charge les versions CPU et GPU, ce qui vous permet d’optimiser selon votre matériel et votre cas d’utilisation.
Intégration et écosystème
MongoDB Atlas Vector Search s’intègre aux services et outils d’IA populaires. Il fonctionne avec les modèles d’embedding d’OpenAI et de VoyageAI, et prend en charge LangChain et LlamaIndex pour créer des applications avec des Large Language Models (LLMs).
Vearch dispose d’un SDK Python pour le développement et les tests rapides, mais aucune information n’est fournie ici sur son intégration avec d’autres outils ou frameworks d’IA.
Facilité d’utilisation
MongoDB Atlas Vector Search bénéficie de son appartenance à l’écosystème MongoDB, que de nombreux développeurs connaissent déjà, ce qui pourrait réduire la courbe d’apprentissage pour les équipes qui utilisent déjà MongoDB.
Vearch propose l’indexation en temps réel et un SDK Python, ce qui facilite le développement et les tests, mais son architecture distribuée nécessite davantage de connaissances en configuration et en maintenance.
Coût
MongoDB Atlas est un service managé, ce qui simplifie les opérations, mais peut coûter plus cher selon votre utilisation.
Vearch est open source, ce qui peut réduire les coûts directs, mais nécessite davantage d’investissement dans l’infrastructure et la gestion.
Sécurité
MongoDB Atlas dispose probablement des solides fonctionnalités de sécurité de MongoDB, notamment le chiffrement, l’authentification et le contrôle d’accès.
La sécurité de Vearch dépend de vous.
Quand utiliser MongoDB Atlas Vector Search
Utilisez MongoDB Atlas Vector Search lorsque vous avez des données complexes basées sur des documents qui nécessitent à la fois des requêtes traditionnelles et une recherche vectorielle. C’est parfait pour les applications qui doivent combiner des recherches par similarité vectorielle avec le filtrage de documents, comme les systèmes avancés de recommandation de produits ou les plateformes de découverte de contenu. Si vous utilisez déjà MongoDB pour vos données et souhaitez ajouter une recherche alimentée par l’IA sans introduire une base de données vectorielle distincte, Atlas Vector Search offre une intégration transparente. C’est également un bon choix pour les projets qui nécessitent une intégration étroite avec des services et outils d’IA populaires, car il prend en charge les modèles d’embedding de divers fournisseurs et fonctionne bien avec LangChain et LlamaIndex.
Quand utiliser Vearch
Vearch est utile lorsque vous avez besoin de plus de contrôle sur les méthodes d’indexation et l’optimisation matérielle. Il est parfait pour les projets qui nécessitent une indexation en temps réel et peuvent gérer plusieurs champs vectoriels dans un seul document. Si vous développez une application qui doit évoluer pour traiter d’énormes volumes de données vectorielles, l’architecture basée sur des clusters de Vearch peut être un bon choix. Il est également utile pour les développeurs qui veulent la flexibilité de choisir entre des implémentations CPU et GPU en fonction de leur configuration matérielle. Vearch peut aussi être la meilleure option pour les équipes qui préfèrent les solutions open-source et veulent davantage de contrôle sur leur infrastructure de recherche vectorielle.
Résumé
MongoDB Atlas Vector Search et Vearch sont tous deux d’excellentes solutions de recherche vectorielle, mais pour des besoins différents. MongoDB Atlas Vector Search est adapté à l’intégration de la recherche vectorielle avec des données basées sur des documents et constitue un service managé au sein de l’écosystème MongoDB. Vearch est adapté à la flexibilité des méthodes d’indexation, à l’optimisation matérielle et à une architecture évolutive. Votre choix entre ces deux solutions doit se baser sur votre cas d’utilisation, votre infrastructure existante, vos exigences de performance et l’expertise de votre équipe. Tenez compte de la complexité des données, des besoins de montée en charge, des exigences d’intégration et du fait que vous souhaitiez un service managé ou une solution open-source que vous pouvez personnaliser fortement.
Lisez ceci pour obtenir un aperçu de MongoDB et de Vearch, 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. En fin de compte, 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 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 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 publié 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 classement VectorDBBench.
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

Zilliz Cloud On-Demand Compute: Pay Only for What You Use
The customer case behind Zilliz Cloud On-Demand: how a $10K vector search bill came down to under $500, and the engineering changes that made it possible.

Will Amazon S3 Vectors Kill Vector Databases—or Save Them?
AWS S3 Vectors aims for 90% cost savings for vector storage. But will it kill vectordbs like Milvus? A deep dive into costs, limits, and the future of tiered storage.

Introducing DeepSearcher: A Local Open Source Deep Research
In contrast to OpenAI’s Deep Research, this example ran locally, using only open-source models and tools like Milvus and LangChain.
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.


