An embedding is a mathematical representation (numerical vector) of a text or object that captures its meaning for AI systems.
Un embedding est la transformation d'une donnée (texte, image, audio) en un vecteur de nombres réels de haute dimension. Deux éléments sémantiquement proches (ex: 'chien' et 'canin') ont des vecteurs proches dans l'espace d'embedding, même si leurs mots sont différents. C'est ce qui permet à l'IA de comprendre le sens plutôt que de faire de la simple correspondance de mots-clés.
Dans le contexte du RAG et de la recherche sémantique, les embeddings sont essentiels : les documents sont transformés en vecteurs et stockés dans une base vectorielle (Pinecone, Weaviate, pgvector). Quand un utilisateur pose une question, elle est également transformée en vecteur et la base vectorielle retourne les documents les plus similaires sémantiquement.
Les modèles d'embedding les plus utilisés sont text-embedding-ada-002 d'OpenAI, les modèles de Sentence-Transformers, et E5 de Microsoft. Pour les applications multilingues, des modèles comme multilingual-e5 sont particulièrement performants.
Les embeddings permettent à un moteur de recherche de retourner 'sneakers running femme' quand un client tape 'chaussures jogging pour femmes', car les vecteurs sont proches sémantiquement.
Les embeddings permettent de retrouver des clauses contractuelles similaires même si la formulation exacte diffère, facilitant la recherche de précédents et de clauses analogues.
Les embeddings permettent de matcher des CVs avec des offres d'emploi selon le sens de l'expérience et des compétences, et non plus juste selon des mots-clés exacts.
Les embeddings indexent les comptes-rendus médicaux et permettent aux médecins de retrouver des cas cliniques similaires même décrits avec un vocabulaire différent, facilitant le diagnostic par analogie.
Les embeddings indexent toutes les résolutions de tickets passés. Quand un nouveau ticket arrive, le système trouve automatiquement les cas similaires déjà résolus et propose la solution au technicien.
| Modèle | Éditeur | Multilangue | Dimensions | Coût |
|---|---|---|---|---|
| text-embedding-3-large | OpenAI | Oui | 3072 | 0,13$/M tokens |
| multilingual-e5-large | Microsoft (open-source) | Excellent | 1024 | Gratuit (self-hosted) |
| Cohere Embed v3 | Cohere | Oui | 1024 | 0,10$/M tokens |
| BGE-M3 | BAAI (open-source) | Excellent | 1024 | Gratuit (self-hosted) |
| CamemBERT embeddings | INRIA (open-source) | Français optimisé | 768 | Gratuit (self-hosted) |
Keyword search looks for exact term matches. Semantic search (based on embeddings) looks for meaning matches: it returns relevant results even if different words are used.
Yes, modern multilingual embedding models (multilingual-e5, CamemBERT embeddings) handle French, Arabic and other languages with excellent performance.
Costs are very low: embedding one million tokens costs about $0.10 with OpenAI. For a corpus of 10,000 documents of 1,000 words, the initial embedding cost is in the order of a few dollars.
Yes, when new documents are added to your database. The good news is that updates are incremental: only new documents need to be embedded, not the entire database.
For SMEs, pgvector (PostgreSQL extension) is ideal as it integrates with your existing database. For large volumes, Pinecone (managed cloud) or Weaviate (open-source) offer better performance. At Propulse, we often use pgvector with Supabase for its simplicity and controlled costs.
Yes, multimodal models like CLIP (OpenAI) create embeddings for images and text in the same vector space. This enables searching for an image by text description or vice versa. For audio, it is first transcribed to text, then embeddings are generated.
We start from your concrete situation: your tools, your processes, your data. No jargon — just results.