pgvector vs MyScale : choisir la bonne base de données vectorielle pour vos besoins
À mesure que l’IA et les technologies fondées sur les données progressent, le choix d’une base de données vectorielle appropriée pour votre application devient de plus en plus important. pgvector et MyScale sont deux options dans ce domaine. Cet article compare ces technologies afin de vous aider à prendre une décision éclairée pour votre projet.
Qu’est-ce qu’une base de données vectorielle ?
Avant de comparer pgvector 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 à haute dimension, qui sont des représentations numériques de données non structurées. Ces vecteurs encodent des informations complexes, comme 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 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 des problèmes comme les hallucinations de l’IA.
Il existe de nombreux types de bases de données vectorielles sur le marché, notamment :
- Bases de données vectorielles spécialisées telles que Milvus, Zilliz Cloud (Milvus entièrement géré), et Weaviate
- 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.
pgvector est une base de données traditionnelle dotée de capacités de recherche vectorielle sous forme de module complémentaire. MyScale est une base de données construite sur ClickHouse qui combine la recherche vectorielle et l’analytique SQL avec des capacités supplémentaires de recherche vectorielle. Cet article compare leurs capacités de recherche vectorielle.
pgvector : aperçu et technologie de base
pgvector est une extension pour PostgreSQL qui ajoute la prise en charge des opérations vectorielles. Elle permet aux utilisateurs de stocker et d’interroger des embeddings vectoriels directement dans leur base de données PostgreSQL, fournissant des capacités de recherche de similarité vectorielle sans avoir besoin d’une base de données vectorielle distincte.
Les principales fonctionnalités de pgvector incluent :
- Prise en charge de la recherche exacte et approximative du plus proche voisin
- Intégration avec les mécanismes d’indexation de PostgreSQL
- Capacité à effectuer des opérations vectorielles comme l’addition et la soustraction
- Prise en charge de diverses métriques de distance (euclidienne, cosinus, produit interne)
Par défaut, pgvector utilise la recherche exacte du plus proche voisin, qui garantit un rappel parfait mais peut être plus lente pour les grands ensembles de données. Pour optimiser les performances, pgvector offre la possibilité de créer des index pour la recherche approximative du plus proche voisin. Cette approche échange une partie de la précision contre une vitesse considérablement améliorée, ce qui constitue souvent un compromis intéressant dans de nombreuses applications réelles.
Il est important de noter que l’ajout d’un index approximatif peut modifier les résultats de vos requêtes. C’est différent des index de base de données classiques, qui n’affectent pas les résultats réellement renvoyés. Les deux types d’index approximatifs pris en charge par pgvector sont :
- HNSW (Hierarchical Navigable Small World) : Introduit dans la version 0.5.0 de pgvector, HNSW est connu pour ses hautes performances et la qualité de ses résultats. Il construit une structure de graphe multicouche qui permet une traversée rapide lors des recherches.
- IVFFlat (Inverted File Flat) : Cette méthode divise l’espace vectoriel en clusters. Lors d’une recherche, elle identifie d’abord les clusters les plus pertinents, puis effectue une recherche exacte au sein de ces clusters. Cela peut accélérer considérablement les recherches dans de grands ensembles de données.
Le choix entre ces types d’index dépend de votre cas d’utilisation spécifique, en tenant compte de facteurs tels que la taille de l’ensemble de données, la vitesse de requête requise et le compromis acceptable en matière de précision. HNSW offre généralement de meilleures performances, mais peut utiliser plus de mémoire, tandis qu’IVFFlat peut être plus efficace en mémoire, mais peut être légèrement plus lent ou moins précis dans certains cas.
Lorsque vous implémentez pgvector dans votre projet, essayez d’expérimenter avec les deux types d’index et leurs paramètres afin de trouver la configuration optimale pour vos besoins spécifiques. Ce processus d’ajustement fin peut avoir un impact sur les performances et la précision de vos opérations de recherche vectorielle.
Vous voulez apprendre à commencer à utiliser pgvector ? Consultez ce tutoriel !
Qu’est-ce que MyScale ? Présentation et technologie de base
MyScale est une base de données cloud basée sur 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 l’analytique en temps réel et le 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 de ClickHouse, MyScale offre de hautes performances 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 fonctionner 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 familiarisés avec les bases de données relationnelles.
MyScale propose plusieurs types d’index vectoriels et 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 scalaire (IP) et la similarité cosinus. La base de données dispose 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 matière de performances et de 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 des analyses de données conjointes, 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 base 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
Méthodologie de recherche
pgvector offre une indexation HNSW et IVFFlat avec des métriques de distance standard (euclidienne, cosinus, produit interne). MyScale propose davantage d’options, notamment MSTG, ScaNN, IVFFLAT, IVFPQ, IVFSQ et HNSW, prenant en charge les mêmes métriques de distance.
Gestion des données
pgvector hérite des capacités relationnelles de PostgreSQL pour la gestion des données structurées. MyScale combine la recherche vectorielle, les données structurées et la recherche en texte intégral à l’aide d’une architecture OLAP.
Évolutivité et performance
pgvector fonctionne mieux avec des jeux de données modérés, nécessitant des ajustements pour des échelles plus importantes. Le moteur MSTG de MyScale utilise des SSD NVMe pour une densité de données plus élevée et revendique de meilleures performances que les bases de données vectorielles spécialisées.
Flexibilité et personnalisation
pgvector s’appuie sur la flexibilité des requêtes de PostgreSQL. MyScale offre une personnalisation SQL et plusieurs algorithmes d’indexation avec des paramètres ajustables.
Intégration et écosystème
pgvector s’intègre aux déploiements et outils PostgreSQL existants. MyScale fournit une prise en charge SQL native et des outils de télémétrie pour la surveillance des systèmes LLM.
Facilité d’utilisation
pgvector est simple à utiliser pour les utilisateurs de PostgreSQL. L’interface SQL de MyScale la rend accessible aux développeurs familiers avec les bases de données relationnelles.
Quand choisir pgvector
Choisissez pgvector lorsque vous utilisez déjà PostgreSQL, que vous avez besoin de capacités de recherche vectorielle de base, que vous souhaitez éviter de gérer plusieurs bases de données et que vous travaillez avec des jeux de données de taille modérée qui ne nécessitent pas de mise à l’échelle complexe ni d’opérations vectorielles avancées.
Quand choisir MyScale
Choisissez MyScale lorsque vous avez besoin d’options avancées d’indexation vectorielle, de capacités combinées de recherche vectorielle et de recherche en texte intégral, d’une mise à l’échelle haute performance pour de grands jeux de données, d’une surveillance intégrée pour les systèmes LLM, ou que vous prévoyez de gérer des types de données complexes nécessitant des opérations de requête sophistiquées.
Conclusion
pgvector excelle dans la fourniture de capacités de recherche vectorielle au sein des environnements PostgreSQL, offrant simplicité et intégration avec les workflows existants. MyScale se distingue par ses options d’indexation avancées, ses capacités de recherche combinées et ses fonctionnalités d’évolutivité. Votre choix doit dépendre de votre infrastructure actuelle, de la taille de votre jeu de données, des exigences de complexité de recherche et de votre besoin éventuel d’outils spécialisés de surveillance de l’IA et des LLM.
Lisez ceci pour obtenir un aperçu de pgvector et de 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 d’analyse comparative open-source pour la comparaison des bases de données vectorielles. Au final, une analyse comparative approfondie avec vos propres jeux de données et modèles de requêtes sera essentielle 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 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 convient à 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 librement l’utiliser, le modifier et le distribuer. L’outil est activement maintenu par une communauté de développeurs engagés à améliorer ses fonctionnalités et ses performances.
Téléchargez VectorDBBench depuis son dépôt GitHub pour reproduire nos résultats d’analyse comparative 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 Enterprise Vector Search Powers High-Performance AI on AWS
Zilliz Cloud on AWS powers secure, scalable, ultra-fast vector search for enterprise AI apps, with BYOC, sub-10ms latency, and zero-DevOps simplicity.

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

Bringing AI to Legal Tech: The Role of Vector Databases in Enhancing LLM Guardrails
Discover how vector databases enhance AI reliability in legal tech, ensuring accurate, compliant, and trustworthy AI-powered legal solutions.
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.


