Introduction aux Embeddings
Mis à jour le 29 juillet 2026
Qu’est-ce qu’un embedding ?
Un embedding est une représentation numérique d’un texte sous forme de vecteur dans un espace multidimensionnel. Chaque mot, phrase ou document est transformé en une liste de nombres — un vecteur — qui capture sa signification sémantique. La raison d’être de cette transformation tient en une phrase : les ordinateurs ne comprennent pas le texte brut, ils travaillent avec des nombres. Les embeddings traduisent le langage humain dans un format que les algorithmes peuvent manipuler, comparer et analyser.
Prenez un service client qui archive dix ans de tickets. Tant que ces tickets restent du texte, la seule opération mécanique possible est la recherche de mots exacts : « livraison » ne trouvera jamais « acheminement ». Une fois les tickets encodés en vecteurs, ils deviennent des points comparables entre eux, et « mon colis n’est jamais arrivé » rejoint « commande non reçue » sans partager un seul mot.
Vecteurs et espace sémantique
Imaginez un espace à plusieurs dimensions (1024 dimensions pour mistral-embed, par exemple). Chaque texte occupe une position précise dans cet espace, et les textes ayant des significations proches se retrouvent proches géométriquement.
# Un embedding est simplement une liste de nombres
embedding_exemple = [0.0234, -0.1567, 0.0891, 0.0456] # 1024 valeurs en réalité
# Deux phrases similaires auront des vecteurs proches
phrase_1 = "Le chat dort sur le canapé" # -> vecteur A
phrase_2 = "Le félin sommeille sur le sofa" # -> vecteur B (proche de A)
phrase_3 = "La bourse a chuté hier" # -> vecteur C (éloigné de A et B)
Cette propriété est ce qui rend les embeddings si puissants : la proximité géométrique reflète la proximité sémantique. Le modèle n’a jamais appris sous forme de règle que « félin » est un synonyme de « chat » ; il a appris à placer ces deux mots dans des contextes voisins, ce qui suffit à rapprocher les vecteurs A et B tout en laissant C à l’écart.
La distance comme mesure de similarité
Pour déterminer si deux textes sont proches, vous mesurez la distance entre leurs vecteurs, et trois métriques se partagent l’usage. La distance euclidienne correspond à la ligne droite entre deux points : plus elle est petite, plus les textes sont similaires. La similarité cosinus mesure l’angle entre deux vecteurs, un angle de 0° (cosinus = 1) signifiant des textes identiques sémantiquement. Le produit scalaire, enfin, est rapide à calculer, ce qui explique qu’on l’emploie couramment pour le classement.
La similarité cosinus s’est imposée parce qu’elle ignore la longueur des vecteurs. Comparez le résumé d’un contrat en trois lignes au contrat complet de quarante pages : la distance euclidienne pénalise le résumé alors qu’il parle exactement du même sujet, tandis que l’angle entre les deux vecteurs reste faible.
import numpy as np
def cosine_similarity(vec_a, vec_b):
"""Calcule la similarité cosinus entre deux vecteurs."""
dot_product = np.dot(vec_a, vec_b)
norm_a = np.linalg.norm(vec_a)
norm_b = np.linalg.norm(vec_b)
return dot_product / (norm_a * norm_b)
# Résultat entre -1 et 1
# 1.0 = identique, 0.0 = aucun rapport, -1.0 = opposé
Applications des embeddings
Les embeddings sont à la base de nombreuses applications modernes, et il vaut la peine de voir ce que chacune donne concrètement. La recherche sémantique trouve des documents par signification et non par mots-clés exacts : une base de procédures internes répond à « que faire si un client refuse la livraison » même si la procédure s’intitule « gestion des retours au dépôt ». Le RAG (Retrieval-Augmented Generation) pousse la logique plus loin en injectant les documents retrouvés dans le prompt d’un LLM, qui répond alors à partir de vos données plutôt que de sa mémoire d’entraînement.
Trois autres usages exploitent la même géométrie. La classification de textes catégorise automatiquement des documents en observant de quel groupe connu leur vecteur est le plus proche — un e-mail entrant tombe dans « facturation » ou « technique » sans règle écrite à la main. La détection de doublons repère les contenus quasi identiques dans une base, ce qui évite de publier deux fois la même fiche produit rédigée par deux équipes. Le clustering regroupe des documents par thème sans étiquettes prédéfinies, méthode courante pour dégrossir un corpus dont personne ne connaît la structure. Enfin, les systèmes de recommandation suggèrent du contenu similaire, exactement le mécanisme d’un « articles associés » en bas de page.
Pourquoi Mistral pour les embeddings ?
Mistral propose deux modèles d’embedding spécialisés. mistral-embed traite le texte naturel et produit 1024 dimensions ; codestral-embed est entraîné pour le code source et monte jusqu’à 3072 dimensions. Le choix entre les deux se fait sur la nature de la matière première : de la documentation rédigée d’un côté, des fichiers .py ou .ts de l’autre.
Ces modèles sont accessibles via une API simple, avec un excellent rapport qualité/coût. Dans les leçons suivantes, vous apprendrez à les utiliser concrètement.
Points clés à retenir
- Un embedding transforme du texte en vecteur numérique multidimensionnel
- La proximité géométrique entre vecteurs reflète la similarité sémantique
- La similarité cosinus est la métrique la plus courante pour comparer des embeddings
- Mistral propose deux modèles : mistral-embed (texte) et codestral-embed (code)
- Les embeddings sont le fondement du RAG, de la recherche sémantique et du clustering