Une base de données vectorielle est une base de données spécialisée conçue pour stocker et gérer des données sous forme de vecteurs de haute dimension. Le terme vient des vecteurs, qui sont des représentations mathématiques des caractéristiques ou attributs contenus dans les données. Contrairement aux bases de données traditionnelles, qui sont bien adaptées à la gestion de données structurées organisées en lignes et en colonnes, la structure d'une base de données vectorielle organise les informations sous forme de représentations vectorielles avec un nombre fixe de dimensions regroupées selon leur similarité.
Chaque vecteur au sein d'une base de données vectorielle se compose d'un nombre spécifique de dimensions, qui peut varier de quelques dizaines à plusieurs milliers. Le nombre de dimensions dépend de la complexité et de la granularité des données. Cette structure permet aux bases de données vectorielles de gérer efficacement des informations complexes et multifacettes, et d'effectuer des recherches et des analyses rapides basées sur la similarité.
Selon l'International Data Corporation (IDC), 90 % des nouvelles données créées sont des données non structurées, telles que du texte, des images et des vidéos. Les modèles basés sur l'apprentissage, tels que les réseaux de neurones profonds, sont de plus en plus utilisés pour gérer ces données non structurées pour des applications dans tous les secteurs, du commerce électronique aux soins de santé. Ces applications fonctionnent en transformant les données non structurées en vecteurs d'intégration (embeddings). Une fois les données « vectorisées », des tâches telles que les recherches, les recommandations et l'analyse peuvent être mises en œuvre via la recherche IA basée sur la similarité. La gestion des données vectorielles a lieu dans les bases de données vectorielles.
Savoir quand utiliser les bases de données vectorielles dépend des autres processus et technologies que vous utilisez. Elles sont un composant clé pour alimenter de nombreux systèmes d'IA, et certaines applications de modèles de langage étendus (LLM) (mais pas toutes) utilisent des bases de données vectorielles pour des recherches de similarité rapides ou pour fournir un contexte ou des connaissances spécifiques au domaine. Par exemple, elles jouent un rôle crucial dans la génération augmentée par récupération (RAG), une approche où la base de données vectorielle est utilisée pour améliorer l'invite passée au LLM en ajoutant un contexte supplémentaire à côté de la requête.
Les bases de données vectorielles permettent également la recherche hybride. Cette approche combine la recherche traditionnelle basée sur des mots-clés avec la recherche de similarité sémantique pour localiser des informations pertinentes même lorsque les mots-clés ne correspondent pas exactement. Les bases de données vectorielles peuvent également être utilisées pour un certain nombre de tâches de traitement du langage naturel (NLP), y compris l'analyse sémantique et des sentiments, ou pour l'entraînement de modèles d'apprentissage automatique (ML).
Un vecteur est un tableau numérique de haute dimension qui exprime la position d'un point particulier à travers plusieurs dimensions. Imaginez un espace vectoriel de mots comme un nuage tridimensionnel où les mots sont représentés par des points. Dans cet espace, les mots ayant des significations apparentées se regroupent. Par exemple, le point représentant « pomme » serait positionné plus près de « poire » que de « voiture ». Cet arrangement spatial reflète les relations sémantiques entre les mots, la proximité indiquant une similarité de sens.
Un vecteur est généré en appliquant une fonction d'intégration (embedding) aux données brutes pour les transformer en une représentation. Ces représentations sont appelées « embeddings » car un modèle ML prend un regroupement représentatif et l'intègre dans un espace vectoriel. Les vecteurs sont intégrés sous forme de listes de nombres, ce qui facilite les opérations des modèles ML avec les données. En fait, la performance des méthodes ML dépend de manière critique de la qualité des représentations vectorielles. Un paragraphe entier de texte ou un groupe de nombres peut être réduit à un vecteur, permettant au modèle d'effectuer des opérations efficacement.
Les bases de données vectorielles sont conçues pour stocker, indexer et interroger efficacement les données via des intégrations vectorielles de haute dimension. Une fois qu'un utilisateur saisit une requête ou une demande dans la base de données vectorielle, celle-ci lance la séquence de processus suivante :
Ces processus permettent aux bases de données vectorielles d'effectuer des recherches sémantiques et des récupérations basées sur la similarité, ce qui les rend idéales pour des applications telles que les systèmes de recommandation, la reconnaissance d'images et de vidéos, l'analyse de texte et la détection d'anomalies.
Les bases de données vectorielles offrent une série d'avantages :
Les bases de données vectorielles sont utilisées dans toutes les industries pour une gamme variée d'applications et de cas d'utilisation. Voici quelques-uns des exemples les plus courants de bases de données vectorielles :
L'essor des LLM pour des tâches comme la récupération d'informations, parallèlement à la popularité croissante des plateformes de commerce électronique et de recommandation, exige des systèmes de gestion de bases de données vectorielles capables d'offrir des capacités d'optimisation des requêtes pour les données non structurées.
Dans les applications multimodales, les données sont intégrées et stockées dans des bases de données vectorielles, facilitant la récupération efficace des représentations vectorielles. Lorsqu'un utilisateur soumet une requête textuelle, le système utilise à la fois le LLM et la base de données vectorielle. Le LLM fournit des capacités NLP, tandis que les algorithmes de la base de données vectorielle effectuent des recherches ANN. Cette approche peut produire de meilleurs résultats par rapport à l'utilisation de l'un ou l'autre composant isolément.
Les bases de données vectorielles sont de plus en plus appliquées aux LLM via le RAG, ce qui permet une explicabilité accrue en appliquant un contexte aux sorties des LLM. Les invites des utilisateurs peuvent être augmentées par l'inclusion de contexte pour atténuer les défis fondamentaux des LLM, tels que l'hallucination ou les biais.
Les bases de données vectorielles peuvent jouer un rôle clé dans la reconnaissance d'images en stockant des embeddings de haute dimension d'images générées par des modèles ML. Comme les bases de données vectorielles sont optimisées pour les tâches de recherche de similarité, elles sont idéales pour des applications telles que la détection d'objets, la reconnaissance faciale et la recherche d'images.
Les bases de données vectorielles sont affinées pour la récupération rapide de contexte par similarité. Les plateformes de commerce électronique peuvent utiliser des bases de données vectorielles pour trouver des produits ayant des attributs visuels similaires, tandis que les sites de médias sociaux peuvent suggérer des images connexes aux utilisateurs. Un exemple illustratif est Pinterest, où les bases de données vectorielles alimentent la découverte de contenu en représentant chaque image comme un vecteur de haute dimension. Lorsqu'un utilisateur épingle une image de coucher de soleil côtier, le système peut rapidement rechercher dans sa base de données vectorielle pour suggérer des images visuellement similaires, comme d'autres paysages de plage ou couchers de soleil.
Les bases de données vectorielles ont révolutionné le NLP en permettant le stockage et la récupération efficaces de représentations de mots distribuées. Des modèles comme Word2Vec, GloVe et BERT sont entraînés sur d'énormes jeux de données textuelles pour générer des embeddings de mots de haute dimension qui capturent les relations sémantiques, lesquels sont ensuite stockés dans des bases de données vectorielles pour un accès rapide.
Comme elles permettent des recherches de similarité rapides, les bases de données vectorielles permettent aux modèles de trouver des mots ou des phrases contextuellement pertinents. Cette capacité est particulièrement précieuse pour des tâches comme la recherche sémantique, la réponse aux questions, la classification de texte et l'extraction d'entités nommées. De plus, les bases de données vectorielles peuvent stocker des embeddings au niveau des phrases, capturant les contextes de mots et permettant une compréhension du langage plus nuancée.
Une fois qu'une base de données vectorielle est entraînée à l'aide d'un modèle d'embedding, elle peut être utilisée pour générer des recommandations personnalisées. Lorsqu'un utilisateur interagit avec le système, son comportement et ses préférences sont utilisés pour générer l'embedding de l'utilisateur. Par exemple, un utilisateur peut demander à un LLM une recommandation de série télévisée et la base de données vectorielle peut suggérer des séries télévisées dont les intrigues ou les évaluations sont similaires aux préférences de l'utilisateur. Les séries télévisées dont les embeddings sont les plus proches de l'encodage de l'utilisateur sont alors recommandées en conséquence.
Les institutions financières utilisent des bases de données vectorielles pour détecter les transactions frauduleuses. Les bases de données vectorielles permettent aux entreprises de comparer les vecteurs de transactions avec des schémas de fraude connus en temps réel. L'évolutivité des bases de données vectorielles leur permet également de gérer les risques et d'acquérir de nouvelles perspectives sur le comportement des consommateurs. Ces bases de données peuvent identifier des schémas qui indiquent des activités en encodant les données de transaction sous forme de vecteurs. De plus, elles facilitent l'évaluation de la solvabilité et la segmentation des consommateurs en analysant les données pour améliorer le processus de prise de décision.
Malgré leurs nombreux avantages et cas d'utilisation, une compréhension complète des bases de données vectorielles doit également inclure leurs défis.
Les bases de données vectorielles nécessitent des pipelines d'ingestion de données efficaces où les données brutes et non traitées provenant de diverses sources peuvent être nettoyées, traitées et intégrées à un modèle ML avant d'être stockées sous forme de vecteurs dans la base de données.
Databricks AI Search offre une solution complète à ce défi. Il automatise la génération, la gestion et l'optimisation des vecteurs, gérant la synchronisation en temps réel des données sources avec les indices vectoriels correspondants. Le logiciel gère les pannes, optimise le débit et effectue un réglage automatique de la taille des lots et une mise à l'échelle automatique sans nécessiter d'intervention manuelle.
Cette approche réduit le besoin de pipelines d'ingestion de données séparés, minimisant la « corvée des développeurs » et permettant aux équipes de se concentrer sur des tâches de niveau supérieur qui ajoutent directement de la valeur commerciale plutôt que de passer du temps à construire et à maintenir des processus complexes de préparation des données.
Les bases de données vectorielles nécessitent une sécurité, des contrôles d'accès et une gouvernance des données supplémentaires, ainsi que la maintenance et la gestion nécessaires. Les organisations d'entreprise exigent des contrôles de sécurité et d'accès stricts sur les données afin que les utilisateurs ne puissent pas accéder aux modèles GenAI qui sont liés à des données confidentielles.
De nombreuses bases de données vectorielles actuelles n'ont pas de contrôles de sécurité et d'accès robustes en place ou exigent des organisations qu'elles construisent et maintiennent un ensemble distinct de politiques de sécurité. Databricks AI Search fournit une interface unifiée qui définit des politiques de données pour suivre automatiquement la lignée des données sans avoir besoin d'outils supplémentaires. Cela garantit que les LLM ne révéleront pas de données confidentielles aux utilisateurs qui ne devraient pas y avoir accès.
Comme elles offrent de puissantes capacités de recherche de similarité et de gestion de données de haute dimension, les bases de données vectorielles sont des outils essentiels pour les scientifiques des données travaillant avec des modèles d'IA et de ML. Databricks AI Search se distingue comme une base de données vectorielle sans serveur qui élimine le besoin de configuration manuelle, permettant aux scientifiques des données de se concentrer sur leur travail principal plutôt que sur la gestion de l'infrastructure.
Les principaux avantages de Databricks AI Search incluent une intégration transparente avec l'architecture lakehouse, une ingestion de données automatisée et des résultats jusqu'à cinq fois plus rapides par rapport à d'autres bases de données vectorielles populaires. Il est également compatible avec les outils de gouvernance des données et de sécurité existants via Unity Catalog, assurant la protection et la conformité des données.
Databricks AI Search offre une flexibilité pour les utilisateurs novices et avancés, avec une mise à l'échelle automatisée pour l'ingestion et l'interrogation des données, ainsi que des API « plug-and-replace » pour ceux qui préfèrent un contrôle accru sur leurs pipelines. Cette combinaison de facilité d'utilisation et de performances puissantes simplifie la construction d'une base de données vectorielle pour les scientifiques des données à tous les niveaux d'expertise.
Les bases de données vectorielles organisent les données sous forme de points dans un espace vectoriel multidimensionnel. Chaque point représente une donnée, et son emplacement reflète ses caractéristiques par rapport à d'autres données. Cette structure de base de données vectorielle est bien adaptée à de nombreuses applications GenAI, car les embeddings vectoriels sont générés par des LLM et les données peuvent être recherchées et récupérées facilement.
En revanche, les bases de données graphiques organisent les données en les stockant dans une structure de graphe. Les entités sont représentées comme des nœuds sur un graphe, tandis que les connexions entre ces points de données sont représentées comme des arêtes. La structure de graphe permet aux éléments de données du magasin d'être une collection de nœuds et d'arêtes, les arêtes représentant les relations entre les nœuds. La structure interconnectée des bases de données graphiques les rend bien adaptées aux scénarios où les connexions entre les points de données sont aussi importantes que les données elles-mêmes.
Utilisez ce tableau pour comparer rapidement comment chaque type de base de données stocke les données, gère les requêtes et s'adapte à différentes charges de travail.
| Base de données vectorielle | Index vectoriel | SGBDR traditionnel | BD de graphes | |
|---|---|---|---|---|
| Modèle de données | Streaming/continu (secondes à minutes) | Analyse proactive, basée sur l'IA | Analyse proactive, basée sur l'IA | Analyse proactive, basée sur l'IA |
| Types de requêtes | Analystes, dirigeants | Équipes d'opérations, applications, systèmes automatisés | Équipes d'opérations, applications, systèmes automatisés | Équipes d'opérations, applications, systèmes automatisés |
| Latence typique | Exploration ad hoc, rapports planifiés | Métriques prédéfinies, alertes, déclencheurs automatisés | Métriques prédéfinies, alertes, déclencheurs automatisés | Métriques prédéfinies, alertes, déclencheurs automatisés |
| Évolutivité | Interprétation humaine → décision | Déclencheurs automatisés, recommandations intégrées | Déclencheurs automatisés, recommandations intégrées | Déclencheurs automatisés, recommandations intégrées |
| Filtrage | Entrepôt de données, pipelines ETL | Plateformes de streaming, traitement d'événements | Plateformes de streaming, traitement d'événements | Plateformes de streaming, traitement d'événements |
| Garanties transactionnelles | Cohérence éventuelle typique | Aucune, couche de recherche en lecture seule | ACID complet | ACID (varie selon l'outil) |
| Gouvernance / sécurité | En amélioration, varie selon le fournisseur | Minimale, dépend du système hôte | RBAC mature, journaux d'audit, chiffrement | Modérée, varie selon le fournisseur |
| Outils courants | Pinecone, Weaviate, Qdrant | FAISS, HNSW lib, ScaNN | PostgreSQL, MySQL, SQL Server | Neo4j, Amazon Neptune, ArangoDB |
Un index vectoriel et une base de données vectorielle jouent des rôles distincts mais complémentaires dans la gestion des données de haute dimension.
Index vectoriel : Un index vectoriel est une structure de données spécialisée conçue pour faciliter les recherches de similarité rapides parmi les plongements vectoriels. Il améliore considérablement la vitesse de recherche en organisant les vecteurs de manière à permettre une récupération efficace. Des exemples d'indices vectoriels incluent Facebook AI Similarity Search (FAISS), HNSW et LSH. Ces indices peuvent être utilisés comme processus algorithmiques autonomes ou intégrés dans des systèmes plus vastes pour optimiser les opérations de recherche.
Base de données vectorielle : Une base de données vectorielle est une solution complète de gestion de données qui non seulement intègre l'indexation vectorielle, mais offre également des fonctionnalités supplémentaires telles que le stockage de données ; les opérations de création, lecture, mise à jour et suppression (CRUD) ; le filtrage de métadonnées et la mise à l'échelle horizontale. Elle est conçue pour gérer et interroger efficacement les plongements vectoriels, prenant en charge des opérations complexes et garantissant l'intégrité et la sécurité des données.
Le choix de la bonne base de données vectorielle dépend des exigences spécifiques de votre charge de travail, de la taille prévue de la croissance de vos données et de la manière dont la base de données s'intègre à votre pile technologique existante. Une solution qui fonctionne parfaitement pour un petit prototype peut avoir du mal sous un trafic à l'échelle de l'entreprise, tandis qu'une plateforme riche en fonctionnalités pourrait être trop complexe pour des cas d'utilisation plus simples. Gardez ces critères à l'esprit pour choisir une base de données vectorielle qui évolue avec vos besoins et s'intègre bien aux systèmes existants.
Ces deux termes sont souvent utilisés de manière interchangeable, mais ils désignent des couches différentes du système.
Portée : Un index vectoriel est une structure de données unique — comme HNSW ou IVF — optimisée pour accélérer la recherche du plus proche voisin. En revanche, une base de données vectorielle est un système complet construit autour d'un ou plusieurs de ces index, avec des capacités de stockage et de requête.
Prise en charge CRUD : Les index vectoriels ont souvent un support limité ou inefficace pour les mises à jour et les suppressions. Les bases de données vectorielles offrent des opérations robustes de création, lecture, mise à jour et suppression au-dessus de la couche d'index.
Mise à l'échelle : Un index autonome réside en mémoire et ne gère pas la distribution ou la réplication. Une base de données vectorielle, cependant, gère la mise à l'échelle horizontale, le partitionnement et la persistance à travers l'infrastructure.
Autonome vs. intégré : Les index vectoriels peuvent être intégrés directement dans le code de l'application (par exemple, FAISS). Les bases de données vectorielles sont des services avec des API, des contrôles d'accès et des outils de gestion intégrés.
Une base de données vectorielle est un choix courant pour les pipelines RAG de production, mais elle n'est pas toujours nécessaire. La bonne réponse dépend de votre échelle et de votre complexité.
Pour le RAG de production à grande échelle, une base de données vectorielle devient précieuse lorsque vous avez besoin d'un stockage persistant, de filtrage de métadonnées, de contrôles d'accès et de la capacité à mettre à jour votre ensemble de données au fil du temps
Les environnements multi-locataires ou réglementés justifient presque toujours une base de données vectorielle, car ils nécessitent une isolation des locataires, une journalisation d'audit et des contrôles d'accès granulaires que les index autonomes ne fournissent pas
Lorsque votre ensemble de données est statique et petit, le surcoût d'une base de données vectorielle peut l'emporter sur les avantages — un index léger chargé au démarrage peut gérer la récupération tout aussi bien
Pour le prototypage, un index en mémoire comme FAISS ou un simple magasin basé sur des fichiers est souvent suffisant et beaucoup plus facile à configurer qu'une base de données vectorielle complète
La recherche hybride combine deux signaux de récupération fondamentalement différents — la correspondance par mots-clés et la similarité sémantique — en un seul résultat de requête.
Les bases de données vectorielles ajoutent une réelle surcharge opérationnelle, et il existe plusieurs scénarios où cette complexité n'est tout simplement pas justifiée.
L'essor récent des LLM et des applications GenAI plus généralement a contribué à une adoption concomitante des bases de données vectorielles. À mesure que les applications d'IA continuent de mûrir, le développement de nouveaux produits et l'évolution des besoins des utilisateurs détermineront l'orientation des futures tendances en matière de bases de données vectorielles. Cependant, il existe des orientations généralement attendues pour cette technologie.
Intégration accrue avec les modèles ML : La relation entre les bases de données vectorielles et les modèles ML fait l'objet de recherches accrues. Ces efforts visent à réduire la taille et la dimensionnalité des vecteurs, minimisant ainsi les besoins de stockage pour les grands ensembles de données et augmentant l'efficacité computationnelle.
Personnalisation RAG : RAG est une approche utilisée pour améliorer le contexte fourni à un LLM dans les cas d'utilisation GenAI, y compris les applications de chatbot et de questions-réponses générales. La base de données vectorielle est utilisée pour améliorer l'invite passée au LLM en ajoutant un contexte supplémentaire à côté de la requête.
Recherche multi-vectorielle : Des recherches supplémentaires sont attendues sur l'amélioration des capacités de recherche multi-vectorielle, ce qui est important pour des applications telles que la reconnaissance faciale. Les techniques actuelles reposent souvent sur la combinaison de scores individuels, mais cette approche peut être coûteuse en calcul, car elle augmente le nombre de calculs de distance requis.
Recherche hybride : L'évolution des systèmes de recherche a conduit à une adoption croissante d'approches hybrides qui combinent des méthodes traditionnelles basées sur des mots-clés avec des techniques modernes de récupération de vecteurs
Databricks AI Search est la solution de base de données vectorielle intégrée de Databricks pour la plateforme Data Intelligence. Ce système entièrement intégré élimine le besoin de pipelines d'ingestion de données séparés et applique des contrôles de sécurité et des mécanismes de gouvernance des données, assurant une protection cohérente de tous les actifs de données.
Databricks AI Search offre une expérience haute performance et prête à l'emploi, permettant aux LLM de récupérer rapidement des résultats pertinents avec une latence minimale. Les utilisateurs bénéficient d'une mise à l'échelle et d'une optimisation automatiques, éliminant le besoin de réglage manuel de la base de données. Cette intégration simplifie le processus de stockage, de gestion et d'interrogation des embeddings vectoriels, facilitant ainsi la mise en œuvre d'applications d'IA par les organisations, telles que les systèmes de recommandation et les recherches sémantiques, tout en maintenant les normes de sécurité et de gouvernance des données.
Où puis-je trouver plus d'informations sur les bases de données vectorielles et la recherche vectorielle ?
De nombreuses ressources sont disponibles pour trouver plus d'informations sur les bases de données vectorielles et la recherche vectorielle, notamment :
Contactez Databricks pour planifier une démo et discuter de vos LLM et bases de données vectorielles.
(Cet article de blog a été traduit à l'aide d'outils basés sur l'intelligence artificielle) Article original
Abonnez-vous à notre blog et recevez les derniers articles directement dans votre boîte mail.