Explication des bases de données vectorielles : comment les machines effectuent des recherches par sens
Découvrez comment les bases de données vectorielles transforment le texte en représentations numériques afin de permettre une recherche sémantique, et en quoi elles diffèrent des bases de données traditionnelles.
Qu’est-ce qu’une base de données vectorielle ?
Imaginez que vous ayez une barre de recherche et que vous tapiez le mot "chien." Une fonction de recherche standard parcourra vos documents à la recherche de la chaîne littérale "chien.". Mais que se passe-t-il si le document utilise en réalité le mot "chiot" à la place ? Une recherche de texte brut ne le détectera pas du tout, car pour un ordinateur, "chien" et "chiot" ne sont que deux séquences de caractères différentes, même si nous, les humains, savons immédiatement qu’ils désignent la même chose.
C’est là le problème fondamental. Les ordinateurs sont excellents pour comparer des chaînes de texte exactes, mais ils ont du mal à comprendre le sens par eux-mêmes. C’est précisément cette lacune que vise à combler une base de données vectorielle.
C’est en bref le problème fondamental. Compte tenu de cela, examinons ce qu’est réellement un vecteur.
Qu’est-ce qu’un vecteur, au juste ?
À l’essentiel, un vecteur n’est rien d’autre qu’une liste de nombres. Rien de plus mystérieux que cela. Cette liste de nombres sert à représenter quelque chose d’autre, qui peut être un seul mot, une phrase complète, tout un paragraphe, ou même une image.
Pensez à quelque chose que vous utilisez déjà tous les jours : les coordonnées GPS. Lorsque vous envoyez votre emplacement à un ami, vous ne le décrivez pas comme « près du grand arbre, après le portail bleu, à côté du magasin ». Au lieu de cela, vous envoyez simplement deux nombres, la latitude et la longitude, et ces deux valeurs indiquent avec précision où vous vous trouvez.
Ainsi, lorsque un modèle d’IA transforme le mot « chien » en vecteur, il lui attribue essentiellement une coordonnée dans cet espace. Le mot « chiot » obtient quant à lui une coordonnée très proche, car ces deux mots ont également un sens similaire.
La carte du sens
Imaginez une grande carte, mais au lieu de villes dispersées dessus, cette carte est remplie de mots. Les mots ayant des significations similaires se trouvent près les uns des autres, tandis que ceux dont les sens ne sont pas liés sont placés loin l’un de l’autre.
Sur une telle carte, « chien », « chiot » et « canin » se regrouperaient étroitement, car ils désignent essentiellement le même concept. « Pomme », « banane » et « mangue » formeraient leur propre groupe distinct. En revanche, un mot comme « tristesse » resterait isolé, sans lien avec les autres, car il n’a aucun rapport réel avec eux.
Comment fonctionne réellement une base de données vectorielle ?
- Convertir du texte en vecteur (cette étape est appelée embedding)
- Stocker ce vecteur dans la base de données accompagné du texte correspondant
- Convertir également votre requête de recherche en vecteur
- Trouver les vecteurs les plus proches et restituer le texte qui y est associé
Décortiquons chacune de ces étapes plus en détail.
1. Embedding : Convertir du texte en nombres
Au préalable de tout stockage, chaque phrase ou document est d’abord soumis à un modèle d’incorporation. Ce modèle prend un fragment de texte et en génère un vecteur, c’est-à-dire cette même liste numérique longue décrite précédemment.
Par exemple, en entrant une phrase telle que « J’aime l’apprentissage automatique » dans une fonction d’incorporation, on obtient une sortie numérique sous forme d’une série de valeurs décimales, avec quelques dizaines et centièmes, que ce soit en valeur positive ou négative.
Lorsque cette transformation a lieu, la phrase n’est plus simplement une chaîne de caractères ; elle devient un point précis situé quelque part au sein d’un vaste espace sémantique.
2. Stockage du vecteur
Lorsqu’un vecteur a été généré, il est enregistré dans la base de données vectorielle accompagné du texte dont il a été dérivé. Parmi les bases de données vectorielles les plus utilisées aujourd’hui figurent Pinecone, Chroma, Weaviate et Qdrant. Il n’est pas nécessaire de mémoriser cette liste ; il suffit de se rappeler que des outils de ce type existent spécifiquement pour gérer ce type d’archivage.
3. Convertir votre question en vecteur
Lorsque vous saisissez une question, comme « Qu’est-ce que l’apprentissage automatique ? », cette même question est traitée par le même modèle d’incorporation et est également transformée en vecteur.
4. Trouver la correspondance la plus proche
À ce stade, la base de données prend le vecteur de votre question et le compare à chacun des vecteurs déjà stockés en son sein. Elle cherche ensuite ceux qui se trouvent le plus près de votre requête. Cette « proximité » est généralement calculée à l’aide d’une technique appelée similarité cosinus, bien que vous n’ayez pas besoin de vous pencher sur les mathématiques qui la sous-tendent pour l’instant. La conclusion principale est simple : les vecteurs situés proche les uns des autres représentent également des significations proches.
Cela couvre l’ensemble du processus, du début à la fin. Une fois décomposé étape par étape, il n’est en réalité pas si compliqué.
Où est utilisée la base de données vectorielle dans la vie réelle ?
Vous vous demandez peut-être où cette technologie apparaît réellement dans les outils du quotidien. Voici quelques exemples concrets :
1. Systèmes RAG Dans les architectures de génération améliorée par la recherche, le composant chargé de la récupération des données, c’est-à-dire celui qui cherche parmi vos documents, s’appuie en arrière-plan sur une base de données vectorielle. Il s’agit essentiellement du lien qui unit la récupération de documents à la recherche vectorielle.
2. Recommandations de produits Lorsqu’un magasin en ligne affiche des « produits similaires », il compare fréquemment les vecteurs des produits plutôt que de se contenter de correspondre aux étiquettes de catégorie.
3. Recommandations musicales et vidéo Les applications qui suggèrent des chansons en fonction de l’humeur ou du sentiment général, plutôt que de se fier strictement aux labels de genre, fonctionnent en comparant des vecteurs issus des caractéristiques propres à l’audio lui-même.
4. Chatbots et service client Un chatbot de support capable d’explorer la documentation interne d’une entreprise pour répondre aux questions des clients fonctionne, dans la plupart des cas, sur une base de données vectorielle en arrière-plan.
Base de données vectorielle vs base de données classique
À ce stade, vous vous demandez peut-être ce qui distingue réellement cela des bases de données conventionnelles que vous connaissez déjà. Voici la différence :
- Une base de données classique stocke des valeurs exactes et récupère les données par correspondance ou filtres précis. Elle est particulièrement adaptée aux requêtes du type "trouver le client avec l’ID = 5."
- Une base de données vectorielle stocke le sens sous forme numérique et récupère les données en fonction du degré de similarité. Elle est idéale pour des requêtes comme "trouver des documents similaires à cette question."
N’oubliez pas qu’une base de données vectorielle n’est pas conçue pour remplacer une base de données classique. En pratique, la plupart des systèmes du monde réel utilisent les deux en parallèle. La base de données classique gère des informations structurées telles que le prix, l’ID ou la date, tandis que la base de données vectorielle s’occupe de tout ce qui nécessite une compréhension du sens, comme le texte, les images ou les questions ouvertes.
Pour conclure, voici un bref résumé :
- La recherche par mots-clés traditionnelle ne correspond qu’aux mots exacts et échoue lorsque la même idée est formulée différemment
- Un vecteur n’est rien de plus qu’une liste de nombres utilisés pour représenter un sens
- Une base de données vectorielle stocke ces représentations numériques et récupère les résultats les plus proches lorsqu’on effectue une recherche
C’est vraiment tout. Il n’y a pas de magie, juste une manière ingénieuse de stocker des significations afin que l’ordinateur puisse les rechercher d’une façon similaire à celle dont notre cerveau traite naturellement les informations. Si vous souhaitez vous exercer, essayer un outil comme Chroma est un bon point de départ, car il est gratuit et accessible aux débutants.
Lectures complémentaires
- RAG Explained : Comment les systèmes d’IA récupèrent des connaissances fraîches sur demande — Découvrez comment fonctionne la génération augmentée par la récupération, des blocs d’information et des embeddings à la recherche vectorielle, permettant ainsi aux modèles d’IA de répondre aux questions sans réentraînement.