Un embedding transforme un texte en une liste de quelques centaines de nombres : un vecteur. Deux textes de sens proche reçoivent des vecteurs proches, même sans mot en commun. C'est la brique qui permet la recherche par le sens, le regroupement de verbatims et le RAG.
Un plan de rangement de bibliothèque : chaque texte reçoit une adresse, et les textes qui parlent de la même chose se retrouvent sur la même étagère, quels que soient leurs mots.
Un modèle pré-entraîné, souvent de la famille BERT, lit la phrase entière et produit un vecteur par token.
Les vecteurs des tokens sont moyennés en un vecteur unique pour le texte, ici 384 nombres. Le modèle a été entraîné pour que des phrases de même sens tombent au même endroit.
La similarité cosinus mesure l'angle entre deux vecteurs : plus elle est proche de 1, plus les sens sont proches. On peut alors chercher, regrouper ou classer.
Des avis libres en français. On veut savoir de quoi parlent les clients sans lire chaque avis et sans liste de mots-clés établie à l'avance.
Chaque avis devient un vecteur. Un K-means regroupe les vecteurs voisins en 6 thèmes, qu'on nomme en lisant l'avis le plus central de chacun. La même base répond à une recherche formulée librement.
Aucune métrique ne dit si un thème est utile. On lit une vingtaine d'avis par groupe et on vérifie qu'ils parlent de la même chose. Pour la recherche, on mesure la part de résultats pertinents parmi les 10 premiers.
Pas d'entraînement : on choisit un modèle et une façon de comparer. Noms donnés pour sentence-transformers.
Il doit connaître la langue et le domaine. Un petit modèle multilingue comme celui du code suffit pour démarrer ; les classements publics comme MTEB aident à comparer.
Normaliser les vecteurs à une longueur de 1 rend le produit scalaire égal au cosinus. Les calculs et les index de recherche deviennent plus simples.
Chaque modèle tronque au-delà d'une longueur maximale, souvent quelques centaines de tokens. Un document long se découpe en passages, avec un vecteur par passage.
# Thèmes des avis clients : embeddings en Python
import pandas as pd
from sentence_transformers import SentenceTransformer
from sklearn.cluster import KMeans
avis = pd.read_csv("avis_clients.csv")
# Petit modèle public multilingue : chaque avis devient un vecteur de 384 nombres
modele = SentenceTransformer("sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")
vecteurs = modele.encode(avis["texte"].tolist(), normalize_embeddings=True)
print("Taille des vecteurs :", vecteurs.shape)
# Recherche par le sens : la requête ne partage aucun mot avec les avis visés
requete = modele.encode(["Le paquet a mis une éternité à venir"], normalize_embeddings=True)[0]
avis["similarite"] = vecteurs @ requete # cosinus, car vecteurs normalisés
print(avis.nlargest(3, "similarite")[["texte", "similarite"]])
# Regroupement des avis en 6 thèmes, nommés en lisant l'avis le plus central
km = KMeans(n_clusters=6, n_init=10, random_state=42).fit(vecteurs)
distances = km.transform(vecteurs)
for k in range(6):
print("Thème", k, ":", (km.labels_ == k).sum(), "avis | exemple :", avis["texte"][distances[:, k].argmin()])
Les embeddings de phrases se calculent en Python (sentence-transformers) : en R, le package text passe lui-même par Python.
Une représentation d'un objet (mot, phrase, image, produit) sous forme de vecteur de nombres, apprise par un modèle. Sa propriété utile : des objets proches par le sens ont des vecteurs proches, ce qui se mesure par un simple calcul.
TF-IDF compte les mots : deux textes sans mot commun ont une similarité nulle. Un embedding capte le sens : « colis en retard » et « livraison trop lente » se retrouvent proches. TF-IDF reste plus rapide, plus lisible, et suffit souvent pour des textes au vocabulaire stable.
Dans une base vectorielle (pgvector pour PostgreSQL, Qdrant, Milvus, Elasticsearch…) qui retrouve les plus proches voisins en quelques millisecondes grâce à des index approximatifs. Pour quelques dizaines de milliers de textes, une matrice en mémoire suffit.
Un vecteur par mot, le même quel que soit le contexte. Les embeddings de phrases vont plus loin.
Voir la fiche → la version par mots-clésDeux textes sans mot commun y sont sans rapport. Plus rapide et plus lisible, mais aveugle aux synonymes.
Voir la fiche → l'usage phareLes embeddings retrouvent les passages utiles, que le LLM utilise pour répondre.
Voir la fiche →Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.
Nous utilisons des cookies de mesure d'audience et de suivi publicitaire pour comprendre la fréquentation du site et l'efficacité de nos annonces. Rien n'est déposé sans votre accord. En savoir plus