Un Embedding est la conversion d'un texte en vecteur numérique de haute dimension (ex : 1536 dimensions pour text-embedding-3-small). Il permet à l'IA de comprendre le SENS des mots, pas juste leur ordre alphabétique. "Chat" et "Discussion" ont des embeddings similaires car ils partagent le même sens sémantique.
Les embeddings sont créés par des modèles spécialisés (OpenAI text-embedding-3-small, Cohere Embed, Mistral Embed). Chaque texte devient un vecteur de floats — une liste de 384 à 3072 nombres selon le modèle. Des textes sémantiquement similaires produisent des vecteurs proches dans l'espace vectoriel. La similarité se mesure par cosine similarity : 1.0 = identique, 0.0 = aucune relation. Les embeddings transforment la recherche textuelle (mots-clés) en recherche sémantique (sens). 1M de textes peut être cherchés en millisecondes via un index vectoriel (FAISS, Pinecone, Qdrant).
Un embedding, c'est comme installer chaque mot dans une constellation géante. Dans cette carte, "roi" et "reine" orbitent à côté, "roi" et "charcuterie" sont à des années-lumière. Le modèle ne comprend pas les mots un par un — il comprend leur POSITION dans cet espace. "Jeanne d'Arc" et "la Pucelle" sont collés car leurs vecteurs pointent vers la même zone.
Les modèles d'embedding varient en dimension et en performance : (1) text-embedding-3-small (OpenAI) : 1536 dimensions, performance 62% sur MTEB benchmark, (2) text-embedding-3-large : 3072 dimensions, 65% sur MTEB, (3) Cohere embed-multilingual-v3 : 1024 dimensions, 63% mais supporte 100+ langues. Les modèles de plus haute dimension capturent plus de nuances mais sont plus coûteux et plus lents.
Deux vecteurs sont comparés via cosine similarity (0 à 1) ou dot product. Cosine normalise la longueur — meilleur pour les textes de tailles variées. Dot product non normalisé favorise les textes longs. Applications : (1) recherche sémantique (semantic search), (2) déduplication de contenu (vecteurs similaires = contenu dupliqué), (3) classification (comparaison à des vecteurs de référence). Pinecone propose l'hybrid search (vector + keyword) pour combiner sémantique et exactitude.
La qualité de l'embedding dépend du preprocessing. Étapes critiques : (1) chunking (découper en segments de 256-1024 tokens), (2) nettoyage (supprimer URLs,代码, ponctuation excessive), (3)保留 structure (paragraphes, listes séparés). Chunking optimal : 512 tokens avec overlap de 20% entre chunks pour maintenir le contexte. Outils : LangChain, LlamaIndex pour le chunking intelligent avec métadonnées (titre, source, date).
Une bibliothèque numérique veut un moteur de recherche sémantique sur 50 000 articles (500M de tokens). Recherche keyword classique : 82% de pertinence perçue. Avec embeddings OpenAI text-embedding-3-small sur chunks de 512 tokens : +15% de pertinence (97% vs 82%), temps de réponse moyen 45ms pour 50 000 vecteurs indexés. Coût : $0.13 pour embed la bibliothèque entière (50 000 × 512 tokens / 1M × $0.0001). Comparaison : Pinecone serverless ($0.025/1K req) vs self-hosted FAISS (gratuit mais maintenance).
| Métrique | Benchmark | Objectif |
|---|---|---|
| Perf text-embedding-3-small (MTEB) | 62% | > 60% |
| Perf text-embedding-3-large (MTEB) | 65% | > 64% |
| Temps de search (50K vecteurs) | 45ms | < 100ms |
| Chunk size optimal | 512 tokens | 256-1024 selon |
| Overlap recommandé | 20% | 15-25% |
| Coût embedding (OpenAI) | $0.0001/1K tok | — |