Partager via


Bases de données vectorielles open source

S’APPLIQUE À : MongoDB vCore

Lorsque les développeurs sélectionnent des bases de données vectorielles, les options open source offrent de nombreux avantages. « Open source » signifie que le code source du logiciel est disponible librement, ce qui permet aux utilisateurs de personnaliser la base de données en fonction de leurs besoins spécifiques. Cette flexibilité est bénéfique pour les organisations qui sont soumises à des exigences réglementaires uniques en matière de données, telles que les entreprises du secteur des services financiers.

Un autre avantage des bases de données vectorielles open source est le solide soutien dont elles bénéficient de la part de la communauté. Bien souvent, les communautés d’utilisateurs actives contribuent au développement de ces bases de données, fournissent un support et partagent les meilleures pratiques, favorisant ainsi l’innovation.

Certaines personnes choisissent les bases de données vectorielles open source car elles sont « gratuites », ce qui signifie qu’il n’y a aucun coût lié à l’acquisition ou à l’utilisation du logiciel. Une alternative consiste à utiliser les niveaux gratuits proposés par les services de bases de données vectorielles managés. Ces services managés offrent non seulement un accès gratuit jusqu’à une certaine limite d’utilisation, mais simplifient également la charge opérationnelle en gérant la maintenance, les mises à jour et la scalabilité. Ainsi, en utilisant le niveau gratuit des services de bases de données vectorielles managés, les utilisateurs peuvent réaliser des économies tout en réduisant la surcharge de gestion. Cette approche permet aux utilisateurs de se concentrer davantage sur leurs activités principales plutôt que sur l’administration de base de données.

Mécanisme de fonctionnement des bases de données vectorielles

Les bases de données vectorielles sont conçues pour stocker et gérer des incorporations vectorielles qui sont des représentations mathématiques des données dans un espace dimensionnel élevé. Dans cet espace, chaque dimension correspond à une caractéristique des données, et des dizaines de milliers de dimensions peuvent être utilisées pour représenter des données sophistiquées. La position d’un vecteur dans cet espace représente ses caractéristiques. Les mots, expressions ou documents entiers, ainsi que les images, l’audio et d’autres types de données peuvent tous être vectorisés. Ces incorporations vectorielles sont utilisées dans la recherche de similarité, la recherche multimodèle, les moteurs de recommandations, les modèles LLM, etc.

L’architecture de ces bases de données comprend généralement un moteur de stockage et un mécanisme d’indexation. Le moteur de stockage optimise le stockage des données vectorielles afin d’accroître l’efficacité de la récupération et de la manipulation, tandis que le mécanisme d’indexation organise les données afin d’accélérer les opérations de recherche et de récupération.

Dans une base de données vectorielle, les incorporations sont indexées et interrogées via des algorithmes de recherche vectorielle en fonction de leur distance vectorielle ou de leur similarité. Un mécanisme robuste est nécessaire pour identifier les données les plus pertinentes. Parmi les algorithmes de recherche vectorielle connus, citons entre autres HNSW (Hierarchical Navigable Small World) et IVF (Inverted File).

Les bases de données vectorielles sont utilisées dans de nombreux domaines et situations dans l’IA analytique et générative, notamment le traitement du langage naturel, la reconnaissance vidéo et d’image, le système de recommandation, la recherche, etc. Par exemple, vous pouvez utiliser une base de données vectorielle pour :

  • Identifier des images, des documents et des chansons similaires en fonction de leurs contenus, thèmes, sentiments et styles
  • Identifier des produits similaires en fonction de leurs caractéristiques, fonctionnalités et groupes d’utilisateurs
  • Recommander du contenu, des produits ou des services en fonction des préférences des individus
  • Recommander du contenu, des produits ou des services en fonction des similitudes des groupes d’utilisateurs
  • Identifier les options potentielles les mieux adaptées parmi un grand pool de choix afin de répondre à des exigences complexes
  • Identifier les anomalies de données ou les activités frauduleuses qui ne correspondent pas aux modèles prédominants ou normaux
  • Implémenter une mémoire persistante pour les agents IA
  • Activer la génération augmentée de récupération (RAG)

Base de données vectorielle intégrée comparée à base de données vectorielle pure

Il existe deux types courants d’implémentations de base de données vectorielles : une base de données vectorielle pure et une base de données vectorielle intégrée dans une base de données NoSQL ou relationnelle.

Une base de données vectorielle pure est conçue pour stocker et gérer efficacement les incorporations vectorielles, ainsi qu’une petite quantité de métadonnées. Elle est distincte de la source de données à partir de laquelle les incorporations sont dérivées.

Une base de données vectorielle intégrée à une base de données NoSQL ou relationnelle hautement performante fournit des capacités supplémentaires. La base de données vectorielles intégrée dans une base de données NoSQL ou relationnelle permet de stocker, d’indexer et d’interroger les incorporations en même temps que les données d’origine correspondantes. Cette approche élimine le coût supplémentaire dû à la réplication des données dans une base de données vectorielle pure distincte. De plus, maintenir ensemble les incorporations vectorielles et les données d’origine facilite les opérations de données multimodales et permet d’accroître la cohérence, la mise à l’échelle et le niveau de performance des données.

Sélection de la meilleure base de données vectorielle open source

Le choix de la meilleure base de données vectorielle open source nécessite de prendre en compte plusieurs facteurs. Les performances et la scalabilité de la base de données sont cruciales, car elles déterminent si la base de données est capable de gérer vos besoins en charge de travail spécifiques. Les bases de données avec des capacités d’indexation et d’interrogation efficaces offrent généralement des performances optimales. L’un des autres facteurs est le support et la documentation de la communauté disponibles pour la base de données. Une communauté robuste et une documentation étendue peuvent fournir une assistance précieuse. Voici quelques bases de données vectorielles open source populaires :

  • Chroma
  • Milvus
  • Qdrant
  • Weaviate

Toutefois, l’option la plus populaire peut ne pas être la meilleure option pour vous. Vous devez donc comparer différentes options en fonction des fonctionnalités, des types de données pris en charge, et de la compatibilité avec les infrastructures et outils existants que vous utilisez. Gardez également à l’esprit les défis liés aux bases de données vectorielles open source (ci-dessous).

Défis liés aux bases de données vectorielles open source

La plupart des bases de données vectorielles open source, notamment celles listées ci-dessous, sont de pures bases de données vectorielles. En d’autres termes, elles sont conçues pour stocker et gérer des incorporations vectorielles uniquement, ainsi qu’une petite quantité de métadonnées. Étant donné qu’elles sont indépendantes de la source de données dont les incorporations sont issues, leur utilisation nécessite l’envoi de vos données entre des intégrations de service, ce qui ajoute des frais supplémentaires, une complexité et des goulots d’étranglement pour vos charges de travail de production.

Elles peuvent également poser des problèmes typiques des bases de données open source :

  • Configuration : les utilisateurs ont besoin de connaissances approfondies pour les installer, configurer et exploiter, en particulier pour les déploiements complexes. L’optimisation des ressources et de la configuration lors du scale-up des opérations nécessite une surveillance et des ajustements étroits.
  • Maintenance : les utilisateurs doivent gérer leurs propres mises à jour, correctifs et maintenance. Ainsi, une expertise en ML ne suffira pas ; les utilisateurs doivent également avoir une expérience approfondie dans l’administration des bases de données.
  • Support : le support officiel peut être limité par rapport aux services managés, s’appuyant davantage sur l’aide communautaire.

Par conséquent, bien qu’elles soient initialement gratuites, les bases de données vectorielles open source entraînent des coûts importants lors du scale-up. L’expansion des opérations nécessite davantage de matériel, de personnel informatique qualifié et de gestion avancée de l’infrastructure, ce qui entraîne des dépenses plus élevées en matériel et en personnel ainsi qu’une augmentation des coûts opérationnels. La mise à l’échelle des bases de données vectorielles open source peut être exigeante financièrement malgré l’absence de frais de licence.

Résolution des problèmes liés aux bases de données vectorielles open source

Une base de données vectorielle complètement managée intégrée dans une base de données relationnelle ou NoSQL hautement performante permet d’éviter les coûts et la complexité supplémentaires des bases de données vectorielles open source. Cette base de données stocke, indexe et interroge des incorporations, ainsi que les données d’origine correspondantes. Cette approche élimine le coût supplémentaire dû à la réplication des données dans une base de données vectorielle pure distincte. De plus, maintenir ensemble les incorporations vectorielles et les données d’origine facilite les opérations de données multimodales et permet d’accroître la cohérence, la mise à l’échelle et le niveau de performance des données. Pendant ce temps, le service complètement managé permet aux développeurs d’éviter les difficultés liées à la configuration, à la maintenance et à la dépendance envers la communauté inhérentes à une base de données vectorielle open source. D’autre part, certains services managés de base de données vectorielle offre un niveau de service gratuit de cycle de vie.

Par exemple, la base de données vectorielle intégrée dans Azure Cosmos DB for MongoDB. Cela permet aux développeurs de bénéficier des mêmes avantages financiers que ceux associés aux bases de données vectorielles open source, tandis que le fournisseur de services gère la maintenance, les mises à jour et la scalabilité. Quand il est temps d’effectuer un scale-up des opérations, la mise à niveau est rapide et simple tout en conservant un faible coût total de possession (TCO). Vous pouvez également utiliser ce service pour aisément mettre à l’échelle des applications MongoDB déjà en production.

Étapes suivantes