← retour aux snippets

sentence-transformers: embeddings de phrases

encoder des phrases en vecteurs denses et comparer

sentence-transformers: embeddings de phrases

objectif

Expliquer et montrer comment encoder des phrases en vecteurs denses et comparer.

code minimal

# pip install sentence-transformers
from sentence_transformers import SentenceTransformer, util
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
emb = model.encode(["bonjour le monde", "salut monde", "chien et chat"], normalize_embeddings=True)
sim = float(util.cos_sim(emb[0], emb[1]))
sim

utilisation

# rechercher la phrase la plus proche
import numpy as np
q = model.encode(["hello world"], normalize_embeddings=True)[0]
idx = int(np.argmax((emb @ q).ravel()))
idx

variante(s) utile(s)

# FAISS pour l'ANN à grande échelle (voir snippet FAISS)

notes

  • all-MiniLM-L6-v2 est rapide et léger.
  • Normalisez les embeddings pour utiliser le produit scalaire comme cosinus.