Vespa vs MyScale : 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 Vespa et MyScale, 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, 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.
Vespa est une base de données vectorielle conçue à cet effet. MyScale est une base de données construite sur ClickHouse qui combine la recherche vectorielle et l’analytique SQL avec des capacités de recherche vectorielle en tant qu’extension. Cet article compare leurs capacités de recherche vectorielle.
Vespa : Présentation et technologie de base
Vespa est un puissant moteur de recherche et une base de données vectorielle capable de gérer plusieurs types de recherches simultanément. Il excelle dans la recherche vectorielle, la recherche textuelle et la recherche dans des données structurées. Cela signifie que vous pouvez l’utiliser pour trouver des éléments similaires (comme des images ou des produits), rechercher des mots spécifiques dans du texte et filtrer les résultats en fonction d’éléments comme des dates ou des nombres, le tout en une seule opération. Vespa est flexible et peut fonctionner avec différents types de données, des simples nombres aux structures complexes.
L’une des fonctionnalités remarquables de Vespa est sa capacité à effectuer une recherche vectorielle. Vous pouvez ajouter n’importe quel nombre de champs vectoriels à vos documents, et Vespa les parcourra rapidement. Il peut même gérer des types spéciaux de vecteurs appelés tenseurs, qui sont utiles pour représenter des éléments comme des embeddings de documents en plusieurs parties. Vespa est intelligent dans sa façon de stocker et de rechercher ces vecteurs, ce qui lui permet de gérer de très grands volumes de données sans ralentir.
Vespa est conçu pour être extrêmement rapide et efficace. Il utilise son propre moteur spécial écrit en C++ pour gérer la mémoire et effectuer les recherches, ce qui l’aide à offrir de bonnes performances même lorsqu’il traite des requêtes complexes et de grandes quantités de données. Il est conçu pour continuer à fonctionner de manière fluide même lorsque vous ajoutez de nouvelles données ou gérez de nombreuses recherches en même temps. Cela le rend idéal pour les grandes applications réelles qui doivent gérer beaucoup de trafic et de données.
Un autre aspect intéressant de Vespa est qu’il peut automatiquement évoluer pour gérer davantage de données ou de trafic. Vous pouvez ajouter davantage d’ordinateurs à votre configuration Vespa, et il répartira automatiquement le travail entre eux. Cela signifie que votre système de recherche peut se développer à mesure que vos besoins augmentent, sans que vous ayez à effectuer beaucoup de configuration compliquée. Vespa peut même s’ajuster automatiquement pour gérer les changements dans la quantité de données ou de trafic que vous avez, ce qui peut aider à réduire les coûts. Cela en fait un excellent choix pour les entreprises qui ont besoin d’un système de recherche capable de grandir avec elles au fil du temps.
Qu’est-ce que MyScale ? Présentation et technologie de base
MyScale est une base de données cloud construite sur la base de la base de données open source ClickHouse, conçue pour les charges de travail d’IA et de machine learning. Elle peut gérer des données structurées et vectorielles ainsi que des analyses en temps réel et du machine learning. 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 offre des performances élevées et une grande évolutivité 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 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 avec les bases de données relationnelles.
MyScale dispose de plusieurs types d’index vectoriels et de métriques de similarité pour prendre en charge différents cas d’utilisation. Elle prend en charge les métriques de distance courantes comme la distance euclidienne (L2), le produit interne (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 à la fois en performance et en coût.
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 conservant les performances de calcul et l’intégration entre différents types de données.
Principales différences
Choisir la bonne solution de recherche vectorielle est essentiel au succès de votre projet. Cette comparaison examine Vespa et MyScale, deux des acteurs majeurs dans le domaine de la recherche vectorielle, afin de vous aider à prendre une décision éclairée en fonction de vos besoins.
Recherche
Vespa propose une approche de recherche unifiée, combinant recherche vectorielle, recherche textuelle et recherche dans les données structurées en un seul endroit. La recherche vectorielle prend en charge plusieurs champs vectoriels par document et une gestion spécialisée des tenseurs pour les embeddings de documents complexes. Le moteur de recherche utilise un moteur C++ personnalisé pour la gestion de la mémoire et le traitement des requêtes.
MyScale adopte une approche différente en s’appuyant sur ClickHouse. Elle intègre la recherche vectorielle directement avec SQL, avec plusieurs types d’index : MSTG, ScaNN, IVFFLAT, IVFPQ, IVFSQ, HNSW. Elle prend en charge les métriques de distance courantes : distance euclidienne (L2), produit interne (IP), similarité cosinus. Le moteur vectoriel MSTG de MyScale utilise des SSD NVMe pour augmenter la densité des données.
Données
Vespa peut gérer divers types de données, des simples nombres aux structures complexes. Il est excellent pour gérer plusieurs types de recherche en même temps, ce qui le rend adapté aux applications qui doivent combiner différentes approches de recherche.
MyScale se concentre sur les données structurées et vectorielles, avec un fort accent sur les séries temporelles et l’analyse en temps réel. Il utilise une architecture de base de données OLAP pour le traitement vectorisé des données, afin que les développeurs puissent travailler à la fois avec des données structurées et vectorielles à l’aide de requêtes SQL familières.
Performance et évolutivité
Vespa peut s’auto-dimensionner sur plusieurs machines. Le système distribue automatiquement les charges de travail et s’adapte aux changements de volume de données et de schémas de trafic. L’auto-dimensionnement aide à optimiser l’utilisation des ressources et les coûts.
MyScale utilise l’architecture haute performance de ClickHouse pour l’évolutivité. Leur moteur vectoriel propriétaire MSTG revendique de meilleures performances et une meilleure efficacité des coûts par rapport aux bases de données vectorielles spécialisées, en particulier lors de l’utilisation de SSD NVMe.
Intégration et expérience développeur
Vespa est une solution de recherche complète capable de gérer plusieurs types de recherche sans outils supplémentaires. Mais aucune information sur l’intégration avec d’autres systèmes.
MyScale se distingue par son approche centrée sur SQL. Les développeurs familiarisés avec SQL peuvent commencer à travailler avec la recherche vectorielle sans apprendre de nouveaux langages de requête. MyScale Telemetry pour la surveillance et le débogage des systèmes LLM facilite la maintenance et l’optimisation des applications.
Infrastructure
L’auto-dimensionnement et la distribution des charges de travail de Vespa peuvent aider à optimiser l’utilisation des ressources et à réduire les coûts d’exploitation. Le système s’adapte aux schémas d’utilisation réels.
MyScale combine base de données SQL, base de données vectorielle et recherche plein texte dans un seul système, ce qui peut réduire les coûts d’infrastructure et de maintenance. Leur moteur vectoriel MSTG utilise efficacement les SSD NVMe, ce qui peut également améliorer le rapport coût-performance.
Quand choisir chaque technologie
Vespa excelle dans les applications qui nécessitent plusieurs types de recherche fonctionnant ensemble de manière fluide, comme les plateformes d’e-commerce combinant recherche par similarité de produits, recherche textuelle et filtres structurés. Son dimensionnement automatique et son moteur C++ personnalisé le rendent idéal pour les applications à grande échelle où vous devez traiter des requêtes complexes sur différents types de données tout en maintenant de hautes performances.
MyScale convient le mieux aux équipes utilisant déjà des bases de données SQL qui souhaitent ajouter des capacités de recherche vectorielle sans apprendre de nouveaux langages de requête. Il est particulièrement puissant pour les applications impliquant des données de séries temporelles, l’analyse en temps réel et les insights pilotés par l’IA, surtout lorsque vous avez besoin d’une surveillance détaillée de vos systèmes LLM et que vous souhaitez garder une pile technologique simple.
Conclusion
Vespa et MyScale offrent tous deux des fonctionnalités convaincantes pour la recherche vectorielle, mais ils empruntent des voies différentes pour y parvenir. La force de Vespa réside dans son approche de recherche unifiée, son dimensionnement automatique et sa capacité à gérer des structures de documents complexes avec plusieurs champs vectoriels. MyScale se distingue par son approche centrée sur SQL, ses options d’indexation vectorielle spécialisées et ses outils de surveillance intégrés pour les systèmes LLM. Votre choix doit s’aligner sur l’expertise de votre équipe, votre infrastructure existante et vos exigences spécifiques en matière de gestion des données, de performance et d’évolutivité. Envisagez d’exécuter des benchmarks avec vos données et schémas d’utilisation réels avant de prendre une décision finale.
Lisez ceci pour obtenir un aperçu de Vespa 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 comparer les 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 d’analyse comparative 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 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 déterminés à améliorer ses fonctionnalités et 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, GenAI et ML
Continuer à lire

Demystifying the Milvus Sizing Tool
Explore how to use the Sizing Tool to select the optimal configuration for your Milvus deployment.

Similarity Metrics for Vector Search
Exploring five similarity metrics for vector search: L2 or Euclidean distance, cosine distance, inner product, and hamming distance.

Vector Databases vs. Graph Databases
Use a vector database for AI-powered similarity search; use a graph database for complex relationship-based queries and network analysis.
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.


