Embeddings (plongements vectoriels)

IA / LLM 🟡 Mid

Définition

Représentation d'un texte (ou d'une image) sous forme de vecteur de nombres flottants, telle que deux contenus proches en sens ont des vecteurs proches. text-embedding-3-small d'OpenAI produit 1 536 dimensions, text-embedding-3-large 3 072 ; voyage-4 (recommandé par Anthropic) 1 024 par défaut. La similarité se mesure en cosinus ou produit scalaire.

Analogie

Placer chaque phrase comme une épingle sur une carte : les phrases qui parlent de la même chose sont voisines.

Exemple de code

import OpenAI from 'openai';
const openai = new OpenAI();

const { data } = await openai.embeddings.create({
  model: 'text-embedding-3-small',      // 1536 dimensions
  input: ['Réinitialiser mon mot de passe', 'Mot de passe oublié'],
});
const [a, b] = data.map(d => d.embedding);
// Vecteurs normalisés à 1 : le produit scalaire = similarité cosinus
const cosine = a.reduce((s, x, i) => s + x * b[i], 0);
console.log(cosine.toFixed(3)); // proche de 1 = même intention

Cas d'usage

Recherche sémantique, RAG, déduplication, clustering de tickets.

Anti-pattern

Mélanger des embeddings de modèles différents dans le même index : les espaces vectoriels ne sont pas comparables.
#ia#embeddings#rag#interview

En entretien

  1. Explique-moi ce qu'est un embedding.

    C'est la représentation d'un texte sous forme de vecteur de nombres flottants, tel que deux contenus proches en sens ont des vecteurs proches, un peu comme des épingles placées sur une carte par proximité de sujet. La similarité se mesure ensuite en cosinus ou en produit scalaire.

  2. Quelle différence entre text-embedding-3-small et voyage-4 ?

    text-embedding-3-small d'OpenAI produit 1 536 dimensions alors que voyage-4, recommandé par Anthropic, en produit 1 024 par défaut. Ce sont deux modèles d'embeddings différents avec des tailles de vecteurs différentes.

  3. Quand est-ce que tu ferais attention à ne pas mélanger des embeddings ?

    Jamais dans le même index, car les espaces vectoriels de modèles différents ne sont pas comparables entre eux. Il faut ré-embedder tout le corpus avec un seul modèle si on en change.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre