Embeddings et bases vectorielles : la recherche sémantique
Comment une machine « comprend » que deux phrases parlent de la même chose ? Via les embeddings. Explications et code.
Chercher « voiture » et trouver des documents sur les « automobiles » : c’est la recherche sémantique. Elle repose sur les embeddings, au cœur du RAG et de bien des fonctionnalités IA.
Qu’est-ce qu’un embedding ?
Un embedding transforme un texte en un vecteur de nombres (par ex. 1 536 dimensions). L’idée géniale : deux textes de sens proche donnent des vecteurs proches dans l’espace.
embed("chat") # -> [0.12, -0.04, 0.88, ...]
embed("chaton") # -> [0.14, -0.02, 0.85, ...] (très proche)
embed("avion") # -> [-0.71, 0.33, 0.05, ...] (éloigné)
Mesurer la proximité
On compare deux vecteurs par leur similarité cosinus : proche de 1 = sens très proche, proche de 0 = sans rapport. C’est ce calcul que fait une base vectorielle, à grande échelle et très vite.
La base vectorielle
Elle stocke des millions de vecteurs et trouve les plus proches d’une requête en quelques millisecondes, grâce à des index spécialisés (HNSW, IVF) :
db.add(id="doc1", vector=embed("politique de retour sous 30 jours"))
hits = db.query(embed("comment renvoyer un article ?"), top_k=3)
# -> retrouve "doc1" même sans mots en commun
Au-delà de la recherche
Les embeddings servent aussi à classer, regrouper (clustering), détecter des doublons ou recommander. Dès qu’on a besoin de « ce qui se ressemble », ils sont l’outil.
À retenir
La recherche par mots-clés trouve les mots ; la recherche sémantique trouve le sens. Les deux sont souvent complémentaires (recherche hybride) — un détail d’implémentation qui change beaucoup la pertinence.
Envie d’aller plus loin avec WORKFLOW v6 ?
Découvrir WORKFLOW v6