0Pricing
Learn AI with Python · Leçon

Introduction aux bases de données vectorielles

Découvrez pourquoi les bases de données vectorielles existent, comment utiliser FAISS pour la recherche locale par similarité et comment stocker les représentations vectorielles pour la recherche par l’IA.

Introduction aux bases de données vectorielles est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.

Au-delà des correspondances exactes

Les bases de données traditionnelles trouvent les lignes à partir de valeurs exactes (WHERE name = "x"). Mais l’IA utilise des représentations vectorielles — des vecteurs qui capturent le sens — et vous voulez souvent obtenir les éléments les plus similaires à une requête, plutôt que des correspondances exactes.

Les bases de données vectorielles sont conçues pour accélérer cette recherche de similarité.

Qu’est-ce qu’une représentation vectorielle ?

Une représentation vectorielle est une liste de nombres (un vecteur) qui représente un texte, une image ou un fichier audio, de sorte que les éléments similaires soient proches les uns des autres dans l’espace vectoriel.

La recherche sémantique, les recommandations et la génération augmentée par récupération (RAG) reposent toutes sur les représentations vectorielles.

import numpy as np

# A toy 4-dim embedding for a sentence
vec = np.array([0.12, -0.43, 0.88, 0.05], dtype="float32")
print(vec.shape)   # (4,)

Pourquoi pas une base de données classique ?

Comparer une requête à des millions de vecteurs au moyen d’une boucle par force brute est lent. Les bases de données vectorielles utilisent des index spécialisés et des calculs de distance pour renvoyer les plus proches voisins en quelques millisecondes.

Elles passent également à l’échelle, conservent les données et gèrent les métadonnées avec les vecteurs.

Mesurer la similarité

La proximité se mesure avec une métrique de distance :

  • L2 (euclidienne) — distance en ligne droite ; plus elle est petite, plus les éléments sont proches
  • Cosinus — angle entre les vecteurs ; adapté au texte

FAISS en prend plusieurs en charge ; nous utiliserons L2.

Présentation de FAISS

FAISS (Facebook AI Similarity Search) est une bibliothèque rapide et gratuite pour la recherche vectorielle. Elle s’exécute localement, sans serveur — ce qui est idéal pour apprendre et créer des prototypes.

import faiss
import numpy as np
# pip install faiss-cpu

Créer un index avec IndexFlatL2

IndexFlatL2(dim) construit un index plat (par force brute et exact) utilisant la distance L2. Vous devez lui indiquer la dimension de vos vecteurs.

« Plat » signifie que les résultats sont exacts — ce qui est parfait pour les collections petites à moyennes.

import faiss

dim = 4
index = faiss.IndexFlatL2(dim)
print(index.is_trained)   # True (flat index needs no training)

Ajouter des vecteurs avec index.add

Fournissez vos représentations vectorielles sous la forme d’un tableau NumPy float32 à 2 dimensions, de forme (n, dim). index.add les stocke ; index.ntotal indique le nombre total d’éléments.

import numpy as np

embeddings = np.random.random((100, dim)).astype("float32")
index.add(embeddings)
print(index.ntotal)   # 100

Rechercher avec index.search

index.search(query, k) renvoie les k vecteurs les plus proches. La fonction renvoie deux tableaux : les distances D et les indices I (les positions dans l’ordre où vous les avez ajoutés).

query = np.random.random((1, dim)).astype("float32")
D, I = index.search(query, k=5)
print("nearest ids:", I[0])
print("distances:", D[0])

Des indices aux éléments

FAISS renvoie des positions, et non vos données d’origine. Conservez une liste parallèle (ou une base de données) qui associe chaque position de l’index à l’élément réel, afin de pouvoir retrouver les résultats.

docs = ["doc about cats", "doc about dogs", "doc about cars"]
# after search:
for pos in I[0]:
    print(docs[pos])   # map id -> original document

Une petite chaîne de traitement pour la recherche sémantique

Le schéma complet : produisez les représentations vectorielles de vos documents, ajoutez-les à un index, produisez la représentation vectorielle de la requête, effectuez la recherche, puis renvoyez les documents correspondants. (Les modèles de représentation vectorielle comme sentence-transformers produisent les vecteurs.)

import faiss, numpy as np

# doc_vectors: (n, dim) from an embedding model
index = faiss.IndexFlatL2(doc_vectors.shape[1])
index.add(doc_vectors)

# query_vec: (1, dim) embedding of the user query
D, I = index.search(query_vec, k=3)
results = [docs[i] for i in I[0]]
print(results)

Quand utiliser une base de données vectorielle

Utilisez une base de données vectorielle lorsque vous avez besoin :

  • D’une recherche sémantique sur du texte ou des images
  • De recommandations fondées sur la similarité
  • De RAG : récupérer un contexte pertinent pour un LLM

FAISS est très pratique en local ; les solutions gérées (Pinecone, Weaviate, pgvector) ajoutent la persistance et la capacité à passer à l’échelle.

Vérification rapide : recherche avec FAISS

Vous appelez index.search(query, k=5) sur un index FAISS.

Récapitulatif : bases de données vectorielles

Vous avez appris les fondements de la recherche de similarité :

  • Les représentations vectorielles rapprochent les éléments similaires dans l’espace vectoriel
  • Les bases de données vectorielles accélèrent la recherche des plus proches voisins à grande échelle
  • FAISS IndexFlatL2(dim) construit un index L2 exact
  • index.add(embeddings) stocke les vecteurs ; index.search(query, k) renvoie les distances et les indices
  • Associez les indices renvoyés à vos éléments d’origine

Le chapitre sur les bases de données est terminé. Ensuite : structurer les projets d’IA avec Git.

Questions Fréquemment Posées

La leçon « Introduction aux bases de données vectorielles » est-elle gratuite ?

Oui — le texte complet de « Introduction aux bases de données vectorielles » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Introduction aux bases de données vectorielles » ?

Découvrez pourquoi les bases de données vectorielles existent, comment utiliser FAISS pour la recherche locale par similarité et comment stocker les représentations vectorielles pour la recherche par… Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Learn AI with Python ?

Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Introduction aux bases de données vectorielles » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?

Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. SQLite avec le module sqlite3 de Python
  2. Intégration de Pandas et SQL
  3. Stocker et interroger les résultats de l’apprentissage automatique
  4. Introduction aux bases de données vectorielles
← Retour à Learn AI with Python