Site icon Tech-Connect

C’est quoi les embeddings ? Comment l’IA transforme du texte en nombres

C'est quoi les embeddings Comment l'IA transforme du texte en nombres

Il y a un petit quiz qu’on aime bien poser aux gens avant d’expliquer les embeddings. Lequel de ces deux mots est le plus proche du mot ‘chien’ : ‘chat’ ou ‘voiture’ ? Tout le monde répond ‘chat’. Et si on vous demande ‘comment vous le savez’ ? Vous diriez probablement : ‘parce que chat et chien sont tous les deux des animaux domestiques, ils vivent dans des maisons, les gens les nourrissent…’ En somme, vous avez une représentation mentale de chaque mot, avec un ensemble de propriétés associées. Et ces représentations vous permettent de calculer, instinctivement, que ‘chat’ est plus proche de ‘chien’ que ‘voiture’ ne l’est.

Les embeddings font exactement ça. Mais pour une intelligence artificielle et de façon numérique.

C’est l’un des concepts les plus fondamentaux de toute l’IA moderne et pourtant, c’est celui qui est le moins souvent expliqué clairement. Presque toutes les fonctionnalités IA qui ‘comprennent’ du texte utilisent des embeddings en coulisse : la recherche Google, les recommandations Netflix, le moteur RAG derrière ChatGPT, la détection de spam. Ce guide explique le concept du départ, avec des analogies visuelles et des exemples concrets.

Le problème fondamental : Comment un ordinateur ‘comprend’-il du texte ?

Les ordinateurs ne comprennent que les nombres. Ce n’est pas une métaphore, c’est littéral. À l’intérieur d’un processeur, tout est des 0 et des 1. Des tensions électriques hautes et basses. Les lettres, les images, les sons, tout est converti en nombres avant d’être traité.

Pour les images, c’est facile à comprendre. Un pixel rouge, c’est trois nombres : (255, 0, 0) pour ses valeurs rouge, vert, bleu. Une image de 1000×1000 pixels, c’est un million de pixels, chacun avec trois valeurs donc 3 millions de nombres. L’ordinateur peut comparer deux images en comparant leurs tableaux de nombres.

Mais pour le texte, c’est beaucoup plus compliqué. Le mot ‘chien’, comment le représenter en nombres ? Ses lettres ? Son code ASCII ? Le problème, c’est qu’une représentation basée sur les lettres ne capture pas le sens. ‘Chien’ et ‘toutou’ sont totalement différents en lettres, mais synonymes en sens. ‘Chien’ et ‘chienne’ sont presque identiques en lettres, mais représentent des réalités légèrement différentes. Comment capturer tout ça ?

💡  Question fondamentale : pour qu’une IA puisse répondre ‘chien et chat sont similaires’, elle a besoin que chien et chat soient représentés par des nombres proches. Et pour que ‘chien’ et ‘voiture’ soient représentés par des nombres éloignés. C’est exactement le problème que les embeddings résolvent.

L’approche naïve : Le codage 1 parmi n et pourquoi il échoue

Avant les embeddings, les chercheurs utilisaient une technique appelée « codage 1 parmi n » ou en anglais « one-hot encoding ». L’idée est simple : imaginez que votre vocabulaire contient 10 000 mots. Vous créez un tableau de 10 000 cases, toutes à zéro, sauf celle correspondant au mot, qui passe à 1.

chien = [0, 0, 0, 1, 0, 0, …, 0] — 1 dans la 4ème case sur 10 000

chat = [0, 1, 0, 0, 0, 0, …, 0] — 1 dans la 2ème case sur 10 000

voiture = [0, 0, 0, 0, 0, 1, …, 0] — 1 dans la 6ème case sur 10 000

Ce système a un défaut fatal. Calculez la distance entre ‘chien’ et ‘chat’ : ils diffèrent sur 2 cases (l’une a un 1 dans la case 4, l’autre dans la case 2). Calculez la distance entre ‘chien’ et ‘voiture’ : ils diffèrent aussi sur exactement 2 cases (l’une a un 1 dans la case 4, l’autre dans la case 6). Pour le codage 1 parmi n, ‘chat’ et ‘voiture’ sont à égale distance de ‘chien’. Le sens n’est pas capturé du tout.

C’est le problème fondamental du one-hot : chaque mot est aussi loin de tous les autres mots. Pas d’information sémantique, pas de voisinage signifiant. Les mots flottent dans un espace où rien n’a de sens.

Les embeddings : Transformer du sens en coordonnées

L’embedding est la solution élégante à ce problème. Plutôt que de représenter chaque mot avec 10 000 cases (une par mot du vocabulaire), un embedding représente chaque mot avec un vecteur dense de 768, 1 024, ou 4 096 nombres, selon le modèle. Et ces nombres sont appris automatiquement par le modèle d’IA de façon à ce que des mots sémantiquement similaires aient des vecteurs similaires.

Un vecteur, c’est simplement une liste ordonnée de nombres. En géographie, la position d’une ville peut être représentée par deux coordonnées : latitude et longitude. Paris c’est (48.85, 2.35), Lyon c’est (45.74, 4.83). Un embedding fait la même chose, mais dans un espace de 768 dimensions plutôt que 2 et pour des concepts plutôt que des positions géographiques.

chien = [0.21, -0.83, 0.15, 0.67, -0.42, …, 0.33] — 768 nombres flottants

chat = [0.19, -0.81, 0.18, 0.64, -0.39, …, 0.31] — 768 nombres flottants

voiture = [-0.45, 0.22, -0.67, -0.12, 0.88, …, -0.54] — 768 nombres très différents

Vous voyez la différence ? Les vecteurs de ‘chien’ et ‘chat’ sont très similaires, les nombres sont proches. Le vecteur de ‘voiture’ est très différent des deux. Le modèle a ‘appris’ que chien et chat partagent un espace sémantique commun (animaux domestiques) tandis que voiture appartient à un autre univers (véhicules mécaniques).

🧠  Vocabulaire technique : on dit que les mots ‘chien’ et ‘chat’ ont une haute similarité cosinus (on explique ce concept en dessous), ce qui signifie que leurs vecteurs pointent dans des directions proches dans l’espace à 768 dimensions.

L’espace vectoriel : Une carte géographique du langage

Pour comprendre intuitivement les embeddings, imaginez une carte en 2D où chaque mot est un point. Les mots sémantiquement proches sont géographiquement proches sur cette carte. Les mots sans rapport sont éloignés.

Sur cette carte imaginaire, vous verriez des clusters, des zones où des mots du même domaine se regroupent naturellement. Un cluster ‘animaux’ avec chien, chat, cheval, lapin. Un cluster ‘transport’ avec voiture, train, avion, vélo. Un cluster ‘émotions’ avec joie, tristesse, colère, peur. Ces clusters émergent naturellement du processus d’apprentissage, sans que personne n’ait dit au modèle ‘ces mots appartiennent à la même catégorie’.

La réalité est bien sûr plus complexe : les embeddings ont des centaines de dimensions, pas deux. Mais la même logique s’applique. Des mots dont les contextes d’usage dans le texte humain se ressemblent finissent proches dans cet espace multidimensionnel. Des mots dont les contextes diffèrent radicalement finissent éloignés.

📍  Analogie parfaite : imaginez une carte du monde non pas de la géographie, mais du sens. Plutôt que la France est à côté de l’Espagne et de l’Italie (proximité géographique), dans cet espace, ‘médecin’ est à côté de ‘infirmière’ et ‘chirurgien’ (proximité sémantique). ‘Pythagore’ est proche de ‘géométrie’ et ‘triangle’. Et ‘pizza’ est proche de ‘pâtes’ et ‘italie’ mais aussi de ‘mozzarella’ et ‘four’.

La magie de l’arithmétique sémantique : Roi – Homme + Femme = Reine

Et maintenant, la partie la plus stupéfiante des embeddings. Si les mots sont des points dans un espace vectoriel, et si cet espace capture le sens, alors on peut faire de l’arithmétique sur des concepts.

L’expérience la plus célèbre de l’histoire des embeddings date de 2013, avec word2vec de Google. Les chercheurs ont démontré que :

vecteur(‘roi’) – vecteur(‘homme’) + vecteur(‘femme’) ≈ vecteur(‘reine’) → La différence entre roi et homme est la même que la différence entre reine et femme

vecteur(‘Paris’) – vecteur(‘France’) + vecteur(‘Italie’) ≈ vecteur(‘Rome’) → Paris est à la France ce que Rome est à l’Italie

vecteur(‘chien’) – vecteur(‘chiot’) ≈ vecteur(‘chat’) – vecteur(‘chaton’) → La relation adulte/jeune est encodée dans la différence vectorielle

Comment est-ce possible ? L’intuition est la suivante. Le modèle a lu des milliards de phrases où ‘roi’ et ‘reine’ apparaissent dans des contextes similaires (la cour royale, les châteaux, les couronnes…) mais aussi des contextes différents (les rois sont mentionnés avec ‘sa majesté le roi’, les reines avec ‘sa majesté la reine’). La différence entre ces contextes encode implicitement la différence de genre.

Donc ‘roi – homme’ capture quelque chose comme ‘la dimension royale sans la dimension masculine’. Et ‘reine – femme’ capture quelque chose de similaire. Ces deux vecteurs pointent dans des directions très proches dans l’espace vectoriel et c’est exactement ce que mesure la similarité cosinus.

🤯  Ce qui rend ça extraordinaire : personne n’a programmé cette logique. Personne n’a dit au modèle ‘roi et reine sont liés par le genre’. Il a appris ça en lisant du texte, en observant les motifs dans lesquels ces mots apparaissent, et en construisant des représentations vectorielles qui capturent ces relations implicitement.

Comment les embeddings sont créés : L’entraînement

La question naturelle est : comment apprend-on ces vecteurs ? Comment le modèle sait-il que ‘chien’ et ‘chat’ doivent être proches ?

La réponse est dans la linguistique distributionnelle, une idée simple et puissante formulée par le linguiste J.R. Firth en 1957 : ‘On connaît un mot à la compagnie qu’il tient’. Autrement dit, des mots qui apparaissent dans des contextes similaires ont probablement des sens similaires.

L’intuition derrière l’apprentissage

Imaginez que le modèle lit des milliards de phrases. Il observe que ‘chien’ apparaît souvent dans des phrases comme ‘Mon ___ aboie’, ‘Je promène mon ___’, ‘Mon ___ a faim’, ‘Le ___ dort’. Et il observe que ‘chat’ apparaît dans des phrases comme ‘Mon ___ miaule’, ‘Je nourris mon ___’, ‘Mon ___ a faim’, ‘Le ___ dort’. Les contextes se ressemblent beaucoup, donc les vecteurs doivent être proches.

En revanche, ‘voiture’ apparaît dans ‘Je conduis ma ___’, ‘Ma ___ est en panne’, ‘La ___ roule’. Des contextes totalement différents, donc le vecteur doit être éloigné.

Le processus d’entraînement simplifié

⚙️  Note technique : les architectures modernes comme BERT (Google), RoBERTa, ou les modèles de OpenAI et Anthropic n’utilisent pas le simple word2vec. Ils utilisent des Transformers avec mécanisme d’attention qui permettent de calculer un embedding différent pour le même mot selon son contexte : ‘banque’ dans ‘je vais à la banque’ a un vecteur différent de ‘banque’ dans ‘la banque du fleuve’.

La similarité cosinus : Comment mesurer la distance sémantique

Si les embeddings sont des vecteurs (des flèches dans un espace multidimensionnel), comment mesure-t-on leur similarité ? On pourrait utiliser la distance euclidienne, la distance ‘droite’ entre deux points. Mais en pratique, pour les embeddings textuels, on utilise plutôt la similarité cosinus.

La similarité cosinus mesure l’angle entre deux vecteurs plutôt que leur distance absolue. Si deux vecteurs pointent dans exactement la même direction (angle = 0°), la similarité cosinus vaut 1 : similarité parfaite. S’ils pointent dans des directions perpendiculaires (angle = 90°), la similarité vaut 0 : aucune relation sémantique. S’ils pointent dans des directions opposées (angle = 180°), la similarité vaut -1 : sens contraires (comme ‘chaud’ et ‘froid’).

Exemple de paireSimilarité cosinusInterprétation
‘chien’ et ‘chat’~0.85Très similaires : même univers sémantique
‘chien’ et ‘animal’~0.75Très proches : relation genre/espèce
‘chien’ et ‘laisse’~0.62Proches : objets associés
‘chien’ et ‘banque’~0.10Peu de relation
‘chaud’ et ‘froid’~-0.20Légèrement opposés (antonymes)
‘roi’ et ‘reine’~0.80Très similaires : même domaine, genres différents

Pourquoi cosinus plutôt qu’euclidien ? Parce que la direction d’un vecteur est plus informative que sa longueur. Deux textes de longueur très différente (un tweet et un roman) peuvent parler du même sujet. Leurs vecteurs auraient des longueurs très différentes mais des directions similaires. La similarité cosinus capture ça, la distance euclidienne non.

Embeddings et recherche sémantique : Quand Google comprend vos questions

Voici l’application la plus quotidienne des embeddings, tellement intégrée dans nos habitudes qu’on ne la remarque plus. Quand vous cherchez ‘symptômes grippe’ sur Google, vous obtenez des résultats sur la fièvre, la toux, les courbatures, le repos au lit. Pas des résultats qui contiennent exactement le mot ‘symptômes’ ET le mot ‘grippe’.

C’est la recherche sémantique en action, alimentée par des embeddings. Voici comment ça fonctionne.

La recherche par mots-clés (l’ancienne façon)

La recherche traditionnelle, dite lexicale ou par mots-clés, cherche les documents qui contiennent exactement les mots de votre requête. Si vous cherchez ‘médecin fièvre’, elle retourne les pages qui contiennent les mots ‘médecin’ et ‘fièvre’. Une page qui parle de ‘docteur température élevée’ pourrait ne pas apparaître, même si elle est parfaitement pertinente.

La recherche sémantique (la façon moderne)

💡  C’est pour ça que Google comprend ‘je me sens pas bien, j’ai mal partout et j’ai très chaud’ et vous propose des résultats sur les symptômes de la grippe. Il ne cherche pas les mots, il cherche le sens.

Embeddings et RAG : Le cerveau derrière ChatGPT sur vos documents

Vous avez peut-être entendu parler de RAG pour Retrieval-Augmented Generation. On l’a expliqué en détail dans notre précédent Décryptage IA. Les embeddings en sont la pièce centrale.

Rappel rapide : le RAG permet à un LLM (comme ChatGPT ou Claude) de répondre à des questions sur vos propres documents : votre documentation interne, vos emails, vos contrats. Mais comment l’IA sait-elle quelle partie de vos milliers de documents est pertinente pour votre question ?

Les embeddings dans le pipeline RAG

Sans embeddings, il n’y a pas de RAG. Ce sont eux qui permettent à l’IA de retrouver rapidement les passages pertinents dans un corpus de millions de documents.

📚  Exemple concret : vous avez indexé tous vos contrats clients avec des embeddings. Vous posez la question : ‘Quel contrat a une clause de résiliation à 30 jours ?’ L’embedding de votre question est proche de l’embedding des clauses qui mentionnent ‘résiliation’, ‘préavis’, ‘délai’, ‘résoudre le contrat’… Ces passages sont récupérés et le LLM vous répond avec les clauses pertinentes. Aucun mot-clé exact ne suffirait à trouver ça.

Les outils disponibles en 2026 : Par où commencer

Outil/ModèleTypeDimensionsPrixIdéal pour
text-embedding-3-small (OpenAI)API cloud1 536$0,02/M tokensProjets généraux, excellent rapport qualité/prix
text-embedding-3-large (OpenAI)API cloud3 072$0,13/M tokensMeilleure qualité, projets critiques
embed-multilingual-v3 (Cohere)API cloud1 024$0,10/M tokensMultilingue (dont français) : excellent
nomic-embed-text-v1.5Open source (local)768GratuitAuto-hébergement, vie privée maximale
mxbai-embed-large-v1Open source (local)1 024GratuitHaute performance sans cloud
all-MiniLM-L6-v2 (sentence-transformers)Open source384GratuitDémarrage rapide, léger, via Python

Les bases de données vectorielles pour stocker les embeddings

Les limites des embeddings : Ce qu’ils ne capturent pas bien

Les embeddings sont puissants, mais ils ont des limites réelles qu’il faut connaître.

Le concept le plus important de toute l’IA

Si je devais choisir UN concept d’IA que tout le monde devrait comprendre, pas juste les développeurs, mais les chefs de projet, les directeurs marketing, les managers d’équipes tech, ce serait les embeddings.

Pourquoi ? Parce que presque toute l’IA ‘intelligente’ que vous voyez repose dessus. La recherche sémantique dans Notion, Confluence ou Slack : c’est des embeddings. Le fait que ChatGPT puisse répondre sur vos documents internes, c’est du RAG, donc des embeddings. Les recommandations Netflix qui comprennent que si vous avez aimé Inception vous pourriez aimer Tenet, c’est des embeddings.

Comprendre les embeddings, c’est comprendre comment l’IA ‘comprend’. Pas au sens de la conscience ou de l’intuition humaine. Mais au sens mathématique de la représentation du sens dans un espace numérique. C’est un outil conceptuel d’une puissance remarquable, né de l’idée simple qu’on connaît un mot à la compagnie qu’il tient.

La prochaine fois que vous utiliserez une fonctionnalité IA qui semble ‘comprendre’ ce que vous cherchez, rappelez-vous qu’il y a très probablement un vecteur de 768 nombres quelque part qui fait le travail.

🗣️ Le débat est ouvert !

🔸 Après avoir lu cet article, est-ce que vous voyez différemment les applications IA que vous utilisez au quotidien ? La recherche Google, Spotify, Netflix, la recherche dans Notion ou Confluence, savez-vous maintenant si elles utilisent probablement des embeddings ? Partagez vos observations.

🔸 Question pratique : utilisez-vous déjà des embeddings dans vos projets (RAG, recherche sémantique, recommandations) ? Quel modèle d’embedding et quelle base de données vectorielle utilisez-vous ? Partagez vos retours.

Si cet article vous a aidé à comprendre enfin ce que sont les embeddings, partagez-le avec quelqu’un qui vous a déjà demandé ‘mais comment l’IA fait pour comprendre ça ?’. Maintenant vous avez la réponse.

Quitter la version mobile