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.