promptgarten 🌱
🌍 ZH
Terme●●○4 min · +40 XP

Bases de données vectorielles : chercher par sens plutôt que par mots

Une base de données vectorielle stocke des embeddings et trouve les plus proches à toute vitesse – la base du RAG et de la recherche sémantique.

Ce que fait une base de données vectorielle

Un modèle d'embedding transforme un texte (ou une image) en vecteur – une longue liste de nombres qui capture le sens. Une base de données vectorielle stocke un grand nombre de ces vecteurs et répond à une question à toute vitesse : quels vecteurs stockés sont les plus proches d'un nouveau vecteur ?

À quoi ça sert

C'est exactement la base du RAG (retrieval-augmented generation) et de la recherche sémantique : au lieu de chercher des mots exacts, la base de données trouve des morceaux de texte de sens proche, même si aucun mot ne correspond. « Comment résilier ? » retrouve ainsi aussi une section intitulée « mettre fin au contrat ».

Bases de données vectorielles connues

  • pgvector : extension pour une base Postgres classique, aucun système séparé nécessaire.
  • Chroma : léger, open source, apprécié pour les petits projets et un démarrage rapide.
  • Qdrant : base de données autonome, conçue pour de plus gros volumes et la production.
  • Autres noms connus : Pinecone, Weaviate, Milvus.

Quand tu n'en as PAS besoin

Pour quelques centaines ou quelques milliers de morceaux de texte, un simple tableau en mémoire avec un calcul de similarité basique suffit souvent – une base de données vectorielle dédiée ne se justifie que lorsque le volume de données, la vitesse ou les accès simultanés dépassent ce que ça permet.

EXEMPLE

Exemple SQL avec pgvector : CREATE EXTENSION vector; CREATE TABLE docs (id bigserial PRIMARY KEY, content text, embedding vector(1024)); SELECT content FROM docs ORDER BY embedding <-> '[0.01, 0.02, ...]' LIMIT 5;

🛠️ EXERCICE — À TOI DE JOUER

Pour l'un de tes petits projets, détermine si tu as besoin d'une base de données vectorielle ou si un simple tableau suffit.

  1. Estime combien de morceaux de texte (chunks) compte actuellement ta base de connaissances.
  2. Si c'est moins de quelques milliers : essaie un simple tableau en mémoire avec similarité cosinus.
  3. Si tu utilises déjà Postgres : essaie plutôt pgvector avec une petite table de test.
  4. Compare l'effort et le temps de réponse des deux approches.

AUTO-VÉRIFICATION

  • As-tu estimé combien de chunks compte ta base de connaissances ?
  • As-tu vraiment essayé les deux approches, pas seulement réfléchi ?
  • Sais-tu maintenant quelle approche demande le moins d'effort pour ton projet ?

QUIZ RAPIDE

Selon la règle empirique, quand n'as-tu PAS besoin d'une base de données vectorielle dédiée ?

SOURCES

SUJETS LIÉS

Embeddings : le texte transformé en nombres ●●○RAG (génération augmentée par récupération) ●●○Construire soi-même un RAG simple ●●●Context window (fenêtre de contexte) ●○○