← retour aux snippets

FAISS: recherche de voisins rapide (CPU)

indexer des vecteurs et interroger les plus proches voisins avec FAISS

FAISS: recherche de voisins rapide (CPU)

objectif

Expliquer et montrer comment indexer des vecteurs et interroger les plus proches voisins avec FAISS.

code minimal

import numpy as np
import faiss  # pip install faiss-cpu
d = 64
xb = np.random.random((10000, d)).astype("float32")
index = faiss.IndexFlatIP(d)  # cosinus si vecteurs normalisés
# faiss.normalize_L2(xb)
index.add(xb)
D, I = index.search(xb[:3], 5)
I[0]

utilisation

# index quantifié pour mémoire réduite
# index = faiss.index_factory(d, "IVF100,Flat", faiss.METRIC_L2)

variante(s) utile(s)

# Sauvegarde / chargement
# faiss.write_index(index, "index.faiss")
# index2 = faiss.read_index("index.faiss")

notes

  • Choisir METRIC_IP + normalisation pour cosinus.
  • IVF,PQ réduisent mémoire et accélèrent, au prix d’approximation.