Guides IA · 11 min de lecture

Qu'est-ce qu'un embedding en IA ? Vecteurs, similarité et RAG

Un embedding représente un texte par un vecteur pour rapprocher les sens similaires. Découvrez la similarité cosinus et son rôle dans le RAG.

Un espace vectoriel bleu indigo sombre avec trois groupes de points lumineux et une étincelle de requête plus brillante près du groupe ambré

Un embedding en IA est un vecteur numérique, ou liste de nombres à virgule flottante, qui représente du texte ou d’autres données dans un espace mathématique où les sens similaires sont proches. Les modèles d’apprentissage automatique utilisent les embeddings vectoriels pour mesurer les liens entre concepts, alimenter la recherche sémantique et retrouver un contexte pertinent dans les systèmes RAG.

Lorsque j’explique les embeddings aux ingénieurs qui construisent leur premier pipeline de recherche, je leur demande d’imaginer une carte où les sujets remplacent la géographie. La recherche par mots-clés vérifie si deux chaînes partagent exactement les mêmes lettres, ce qui échoue lorsqu’un document parle de chien et un autre de chiot. Un embedding vectoriel comble cet écart en transformant le sens en coordonnées, afin que les logiciels puissent comparer les idées à l’aide d’une géométrie simple.

Comment un embedding vectoriel représente-t-il le sens ?

Un embedding vectoriel représente le sens en convertissant des entrées complexes, comme des mots, des expressions ou des images, en coordonnées dans un espace d’embedding multidimensionnel. Selon le glossaire des définitions de l’IA de Stanford HAI, les embeddings placent les éléments similaires à proximité dans un espace mathématique : des mots comme chien et chiot reçoivent ainsi des vecteurs proches, tandis que chien et tartine sont éloignés.

Dans le guide des embeddings d’OpenAI, un embedding est défini comme un vecteur de nombres à virgule flottante dont la distance mesure la proximité entre des chaînes de texte. Une faible distance entre deux vecteurs indique un lien fort, une grande distance un lien faible. IBM Think présente le même principe pour différents types de données : les embeddings vectoriels transforment des entrées non mathématiques comme du texte ou des images en tableaux numériques exploitables par les modèles d’apprentissage automatique, de sorte que des éléments du monde réel plus similaires reçoivent des vecteurs plus similaires.

Le Machine Learning Crash Course de Google ajoute trois propriétés pratiques des espaces d’embedding qui influencent leur utilisation par les ingénieurs :

  • Projection dans un espace de dimension inférieure : les modèles projettent souvent des entrées brutes de grande dimension dans un espace d’embedding plus dense et de dimension inférieure, où la distance peut être calculée mathématiquement comme une similarité relative.
  • Coordonnées individuelles opaques : les dimensions individuelles d’un embedding appris sont rarement interprétables comme des concepts clairs étiquetés à la main. Le sens réside dans la position et la direction combinées de tous les nombres du tableau.
  • Spécificité à la tâche : les embeddings sont généralement entraînés pour des tâches précises. Un espace vectoriel optimisé pour la recherche sémantique de texte diffère donc d’un espace entraîné pour les recommandations de produits.

Puisque les vecteurs encodent les liens plutôt que l’orthographe exacte, OpenAI cite six tâches courantes en production pour les embeddings : la recherche (classement des résultats selon leur pertinence pour la requête), le regroupement, les recommandations, la détection d’anomalies, la mesure de diversité et la classification (attribution à une chaîne de l’étiquette la plus proche).

Les embeddings de mots, de phrases et de documents

Les embeddings de mots, de phrases et de documents diffèrent par la quantité de texte qu’un modèle compresse en un seul vecteur. Le choix de la bonne granularité détermine si votre système suit des termes individuels, de courtes requêtes utilisateur ou des passages de plusieurs paragraphes.

Embeddings de mots

Un embedding de mot est un vecteur dense attribué à un seul mot ou token d’IA. Les embeddings de mots statiques comme word2vec, présenté par Tomas Mikolov et ses collègues en 2013, attribuent un vecteur global fixe à chaque mot d’un vocabulaire. Comme l’explique le Machine Learning Crash Course de Google, les modèles entraînés à prédire le contexte d’un mot supposent que les mots apparaissant dans des contextes similaires ont des sens apparentés.

Les embeddings de mots statiques ont une limite bien connue : un seul vecteur doit représenter simultanément tous les sens d’un mot, comme banque pour un établissement financier et banque de données. Google indique aussi, en citant Deep Learning with Python de François Chollet, que les embeddings de mots statiques utilisaient couramment des dimensions telles que 256, 512 ou 1024.

Embeddings de phrases

Un embedding de phrase représente une expression ou une phrase entière par un seul vecteur, au lieu de produire un vecteur distinct pour chaque mot. IBM note que les embeddings de phrases capturent le sens sémantique combiné d’une expression complète et servent souvent à encoder les requêtes utilisateur dans les processus de recherche et de réponse aux questions. Encoder la phrase entière aide à distinguer des chaînes qui contiennent les mêmes mots dans un ordre différent.

Embeddings de documents

Un embedding de document représente un passage plus long, une section d’article ou un bloc entier de document sous forme d’un vecteur. Une méthode de base simple combine les vecteurs de mots en calculant leur moyenne, mais elle perd souvent la structure et les nuances. Les modèles d’embedding de texte conçus à cet effet encodent tout le passage en une seule étape. Dans les systèmes de recherche réels, les équipes compressent rarement un livre entier en un vecteur ; elles divisent plutôt les longs fichiers en blocs plus petits et produisent un embedding par bloc.

Type d’embedding Granularité de l’entrée Unité vectorielle typique Rôle principal et limite
Embedding de mot Mot ou token unique Un vecteur par élément du vocabulaire Capture la similarité des termes ; les modèles statiques comme word2vec réunissent tous les sens d’un mot dans un vecteur
Embedding de phrase Expression ou phrase unique Un vecteur par requête ou ligne Capture l’intention au niveau de l’expression ; souvent utilisé pour les requêtes de recherche et les réponses aux questions
Embedding de document Passage ou bloc de document Un vecteur par bloc ou document Facilite la recherche dans un corpus ; les longs documents doivent généralement être découpés avant l’embedding

Que signifient les dimensions d’un embedding ?

Les dimensions d’un embedding mesurent la longueur d’un vecteur, c’est-à-dire le nombre de nombres à virgule flottante produits par un modèle pour chaque entrée. Les vecteurs plus grands ont une capacité accrue à encoder de fines distinctions sémantiques, tandis que les plus petits réduisent la mémoire utilisée, la taille de l’index et les calculs de comparaison.

Les modèles d’embedding de troisième génération d’OpenAI illustrent directement ce compromis. Au 14 novembre 2026, la documentation officielle d’OpenAI fixe les longueurs de sortie par défaut à 1536 dimensions pour text-embedding-3-small et 3072 dimensions pour text-embedding-3-large. Les deux modèles acceptent un paramètre facultatif dimensions dans la requête API, permettant de demander un vecteur plus court sans perdre les propriétés de représentation des concepts de l’embedding.

OpenAI a entraîné les deux modèles de troisième génération pour que les nombres en fin de vecteur puissent être supprimés proprement. Selon le guide des embeddings d’OpenAI au 14 novembre 2026, un embedding text-embedding-3-large raccourci à 256 dimensions surpasse encore un embedding text-embedding-ada-002 non raccourci de 1536 dimensions au benchmark MTEB. Si une base de données vectorielle impose une limite stricte de 1024 dimensions, OpenAI indique que les développeurs peuvent toujours appeler text-embedding-3-large avec dimensions réglé sur 1024, en échangeant un peu de précision contre la compatibilité et un stockage réduit.

Les développeurs qui raccourcissent manuellement les vecteurs après leur réception par une API doivent ensuite appliquer une normalisation de longueur L2. Transmettre directement le paramètre dimensions lors de la création de l’embedding évite le post-traitement manuel et constitue la méthode recommandée par OpenAI.

Comment la similarité cosinus compare-t-elle les embeddings ?

La similarité cosinus compare deux vecteurs d’embedding en mesurant le cosinus de l’angle qui les sépare. Comme elle évalue l’orientation dans l’espace d’embedding plutôt que la grandeur brute des vecteurs, deux passages orientés dans la même direction sémantique obtiennent un score élevé même si leurs longueurs diffèrent.

Pour des vecteurs généraux, la similarité cosinus va de -1 à 1 :

  • 1 : les deux vecteurs pointent exactement dans la même direction, indiquant une similarité maximale.
  • 0 : les deux vecteurs sont orthogonaux, indiquant des sens non corrélés.
  • -1 : les deux vecteurs pointent dans des directions opposées.

La distance euclidienne est une autre métrique : elle mesure la distance en ligne droite entre deux points de l’espace d’embedding. À la question du choix d’une fonction de distance, la FAQ d’OpenAI sur les embeddings recommande explicitement la similarité cosinus, tout en précisant que le choix de la métrique change généralement peu les résultats pour les vecteurs OpenAI. Chaque embedding renvoyé par l’API d’OpenAI est déjà normalisé à une longueur de 1 : la similarité cosinus est donc égale au produit scalaire, et elle produit le même classement de recherche que la distance euclidienne.

Comment les embeddings sont-ils utilisés dans le RAG ?

Les embeddings alimentent la génération augmentée par récupération (RAG) en comparant la question d’un utilisateur à des blocs de documents stockés avant qu’un modèle de langage ne rédige une réponse. Au lieu de dépendre uniquement des faits mémorisés pendant le préentraînement, un pipeline RAG recherche dans des collections de textes privés ou à jour à l’aide de la similarité vectorielle.

Conformément aux recommandations d’OpenAI sur la réponse aux questions et la recherche de texte, un pipeline RAG standard suit cinq étapes :

  1. Découper le corpus : divisez les longs documents sources en passages plus petits afin que chaque vecteur représente une idée ciblée. Notre guide explique des stratégies précises pour découper des documents pour le RAG.
  2. Encoder et indexer les blocs : envoyez chaque bloc à un modèle d’embedding et stockez les vecteurs obtenus avec leur texte source. OpenAI recommande une base de données vectorielle pour effectuer des recherches rapides dans de grandes collections.
  3. Encoder la requête utilisateur : faites passer la question reçue par exactement le même modèle d’embedding pour placer la requête dans le même espace mathématique que les blocs indexés.
  4. Récupérer les plus proches voisins : calculez des scores de similarité, comme la similarité cosinus ou le produit scalaire sur des vecteurs normalisés, et récupérez les blocs les plus pertinents.
  5. Transmettre le contexte au modèle : insérez les blocs de texte récupérés dans le prompt du modèle de langage afin qu’il produise une réponse fondée sur vos documents sources.

La taille des blocs et les seuils de récupération varient fortement selon la structure des documents et les types de requêtes. Les équipes devraient donc tester les stratégies de découpage sur leur corpus réel plutôt que de se fier à une taille universelle.

Modèles d’embedding OpenAI, limites et tarifs

Au 14 novembre 2026, l’API d’embedding d’OpenAI propose trois principaux modèles de texte avec des limites de tokens fixes et une tarification par token. Les développeurs produisent des vecteurs en envoyant une requête POST https://api.openai.com/v1/embeddings contenant input et model, ainsi que les paramètres facultatifs dimensions (pour les modèles de troisième génération) et encoding_format (float par défaut, ou base64).

Les trois modèles d’embedding OpenAI présentés ont les mêmes limites par requête : un maximum de 8,192 tokens par entrée, jusqu’à 2,048 éléments par tableau d’entrée et au plus 300,000 tokens au total sur toutes les entrées d’un appel API. Les chaînes vides sont refusées. Pour compter les tokens localement avant l’envoi, OpenAI conseille d’utiliser l’encodage cl100k_base avec tiktoken. Les trois modèles prennent aussi en charge la Batch API d’OpenAI.

Modèle Dimensions par défaut Tokens d’entrée maximum Prix par million de tokens (14 novembre 2026) Pages environ par dollar (~800 tokens/page) Score MTEB publié par OpenAI
text-embedding-3-small 1536 8,192 $0.02 62,500 62.3%
text-embedding-3-large 3072 8,192 $0.13 9,615 64.6%
text-embedding-ada-002 1536 8,192 $0.10 12,500 61.0%

Ces chiffres proviennent directement de la page des tarifs d’OpenAI et du guide des embeddings au 14 novembre 2026. OpenAI décrit text-embedding-3-small comme un successeur amélioré de text-embedding-ada-002 et présente text-embedding-3-large comme son modèle le plus performant pour les tâches en anglais et dans d’autres langues. Les pourcentages MTEB ci-dessus doivent être considérés uniquement comme les benchmarks publiés par OpenAI dans sa documentation à cette date, et non comme un classement indépendant et actualisé de tous les fournisseurs d’embeddings du secteur.

FAQ

Quelle est la différence entre un embedding vectoriel et un token ?

Un token est un fragment de texte d’entrée, comme un mot ou une partie de mot, qu’un modèle lit et facture. Un embedding vectoriel est le tableau dense de nombres à virgule flottante produit par le modèle pour représenter le sens d’un ou plusieurs tokens. Vous pouvez fournir jusqu’à 8,192 tokens à un modèle d’embedding OpenAI pour recevoir un vecteur.

Le paramètre dimensions d’OpenAI réduit-il la précision des embeddings ?

Raccourcir un vecteur avec le paramètre dimensions échange un peu de précision contre des coûts de stockage et de calcul réduits. OpenAI indique que ses modèles de troisième génération ont été entraînés pour permettre la suppression des nombres en fin de vecteur tout en préservant la représentation des concepts. Au 14 novembre 2026, OpenAI rapporte qu’un vecteur text-embedding-3-large de 256 dimensions surpasse encore un vecteur text-embedding-ada-002 non raccourci de 1536 dimensions sur MTEB.

Faut-il utiliser la similarité cosinus ou la distance euclidienne pour les embeddings OpenAI ?

La similarité cosinus est la métrique recommandée par OpenAI, même si les deux fonctions donnent des classements identiques pour les vecteurs OpenAI. Puisque les embeddings OpenAI sont normalisés à une longueur de 1, la similarité cosinus équivaut mathématiquement au produit scalaire et la distance euclidienne conserve exactement le même ordre. Pour des vecteurs généraux non normalisés provenant d’autres sources, la similarité cosinus isole l’angle plutôt que la grandeur.

Les modèles d’embedding connaissent-ils les événements récents ?

Les modèles d’embedding de troisième génération d’OpenAI, text-embedding-3-small et text-embedding-3-large, ne connaissent pas les événements survenus après septembre 2021. OpenAI précise dans sa FAQ sur les embeddings que cette limite de connaissance est généralement moins contraignante pour les embeddings que pour les modèles de génération de texte, même si certaines requêtes propres à un domaine ou postérieures à cette limite peuvent produire des correspondances de moindre qualité.

À qui appartiennent les embeddings générés par l’API OpenAI ?

Selon la FAQ officielle d’OpenAI, les clients possèdent à la fois les entrées qu’ils envoient et les vecteurs de sortie générés par les modèles OpenAI, y compris les embeddings. OpenAI indique que cette propriété s’applique à ses points d’accès d’embedding, tandis que les utilisateurs restent responsables de la conformité de leur utilisation de l’API au droit applicable.

Sources

Écrit par

Chunyu Cai

Chunyu Cai est le directeur général de Lotook, LLC et un entrepreneur qui écrit sur les modèles d’IA, les agents et leur influence sur le travail au quotidien. Chunyu Cai est titulaire d’un master de l’établissement Imperial College London.