Une base de données vectorielle est un type spécialisé de base de données conçu pour stocker, gérer et interroger des vecteurs à haute dimension, souvent appelés embeddings. Dans le contexte de l'intelligence artificielle (IA) et de l'apprentissage automatique (ML), ces vecteurs sont des représentations numériques de données non structurées comme le texte, les images, l'audio et la vidéo, générées par des modèles d'apprentissage profond (DL). Contrairement aux bases de données traditionnelles qui excellent dans le traitement des données structurées et des correspondances exactes, les bases de données vectorielles sont optimisées pour les recherches de similarité, ce qui permet aux applications de trouver des éléments en fonction de la proximité conceptuelle ou sémantique plutôt que de la correspondance des mots-clés. Cette capacité est fondamentale pour de nombreuses fonctionnalités modernes pilotées par l'IA.
Concepts de base et fonctionnalités
Les bases de données vectorielles fonctionnent sur le principe de la recherche vectorielle, qui consiste à trouver dans la base de données les vecteurs qui sont "les plus proches" d'un vecteur d'interrogation donné. Cette proximité est généralement mesurée à l'aide de mesures de distance telles que la similarité cosinusienne ou la distance euclidienne. Le flux de travail principal comprend :
- Génération d'intégration : Les données (par exemple, le texte, les images) sont converties en vecteurs à l'aide d'un modèle d'incorporation (comme BERT pour le texte ou un modèle d'incorporation pour les images). Ultralytics YOLO d'Ultralytics pour les images). Ces vecteurs capturent l'essence sémantique des données dans un espace à haute dimension.
- Indexation : Les vecteurs générés sont stockés dans la base de données vectorielle. Pour permettre une recherche rapide, la base de données utilise des algorithmes d'indexation spécialisés, principalement des techniques de recherche par approximation des plus proches voisins (ANN) comme HNSW (Hierarchical Navigable Small World) ou IVF (Inverted File Index). Ces index permettent des recherches de similarité rapides, même sur des milliards de vecteurs, en échangeant une précision parfaite contre des gains de vitesse importants, ce qui est crucial pour l'inférence en temps réel. Les bibliothèques ANN les plus populaires sont FAISS et ScaNN.
- Requête : Lorsqu'une requête (également convertie en vecteur) est reçue, la base de données utilise ses index pour trouver et renvoyer efficacement les vecteurs les plus similaires au vecteur de la requête en fonction de la métrique de distance choisie.
Bases de données vectorielles et bases de données traditionnelles
Les bases de données traditionnelles (comme les bases de données SQL ou NoSQL) sont conçues pour les données structurées ou semi-structurées et s'appuient sur une correspondance exacte à l'aide de méthodes d'indexation de base de données standard (par exemple, les arbres B). Elles ne sont pas équipées de façon inhérente pour gérer la recherche de similarité requise pour les données non structurées représentées sous forme de vecteurs.
Les principales différences sont les suivantes :
- Type de données : Les bases de données traditionnelles traitent les données alphanumériques, JSON, etc. Les bases de données vectorielles traitent les vecteurs numériques à haute dimension.
- Type de requête : Les bases de données traditionnelles effectuent des correspondances exactes, des requêtes par plage ou des recherches par mot-clé. Les bases de données vectorielles effectuent des recherches de similarité (recherche du plus proche voisin).
- Indexation : Les bases de données traditionnelles utilisent des index comme les arbres B ou les index de hachage. Les bases de données vectorielles utilisent des index ANN.
Applications dans le domaine de l'IA et de l'apprentissage automatique
Les bases de données vectorielles constituent l'épine dorsale de nombreuses applications d'intelligence artificielle :
- Recherche sémantique: Permettre aux moteurs de recherche ou aux bases de connaissances internes de trouver des résultats basés sur le sens plutôt que sur de simples mots-clés. Par exemple, une recherche sur "idées de déjeuners sains" peut renvoyer des recettes de salades et de bols de céréales, même si elles ne contiennent pas les termes exacts de la recherche.
- Systèmes de recommandation: Alimenter des plateformes comme Netflix ou Spotify pour suggérer des films ou des chansons similaires à ce qu'un utilisateur a précédemment aimé, en se basant sur les enchâssements de contenu et les profils d'utilisateurs.
- Reconnaissance d'images et recherche visuelle : Permettre aux utilisateurs de trouver des images similaires(recherche inversée d'images) ou permettre la découverte de produits dans le commerce électronique en téléchargeant une image. Il s'agit d'une application clé de la vision par ordinateur (VA). Des plates-formes comme Ultralytics HUB pourraient exploiter des bases de données vectorielles pour gérer et rechercher dans de grands ensembles de données visuelles.
- Traitement du langage naturel (NLP): Prise en charge d'applications telles que les systèmes de réponse aux questions, les chatbots et le regroupement de documents en comprenant la sémantique du texte.
- Génération améliorée par récupération (RAG): Améliorer les grands modèles de langage (LLM) en récupérant des informations pertinentes et actualisées dans une base de données vectorielle afin d'ancrer les réponses du modèle dans des données factuelles, réduisant ainsi les hallucinations.
- Détection d'anomalie: Identifier les points de données inhabituels (vecteurs) qui se trouvent loin des grappes denses dans l'espace vectoriel, utile pour la détection des fraudes ou la surveillance des systèmes.
- Outils d'exploration des données: Des outils comme Ultralytics Explorer utilisent les embeddings pour aider les utilisateurs à visualiser et à comprendre de grands ensembles de données en regroupant les points de données similaires.
Bases de données vectorielles populaires
Plusieurs bases de données vectorielles open-source et commerciales sont disponibles, notamment :
- Pinecone: Un service populaire de base de données vectorielles gérées.
- Milvus: une base de données vectorielles open-source conçue pour être évolutive.
- Weaviate: Une base de données vectorielles open-source, native pour l'IA, avec des capacités graphiques.
- Chroma DB: une base de données d'intégration open-source axée sur l'expérience des développeurs.
- Qdrant: Une base de données vectorielles open-source et un moteur de recherche de similarités.
L'essor des bases de données vectorielles reflète l'importance croissante des embeddings et de la recherche de similarités dans la construction d'applications d'IA sophistiquées, ce qui entraîne une croissance significative du marché des bases de données vectorielles. Elles constituent un élément d'infrastructure essentiel pour exploiter efficacement les connaissances capturées par les modèles modernes d'apprentissage automatique.