Un ordinateur ne comprend pas qu'« horaires d'ouverture » et « à quelle heure êtes-vous ouverts ? » parlent de la même chose : les mots sont différents. Un embedding, ou plongement vectoriel en français, règle ce problème. C'est une suite de nombres qui représente le sens d'un texte, calculée par un modèle spécialisé, de sorte que deux textes de sens proche reçoivent des suites de nombres proches.
Comment ça marche, simplement
Imaginez une carte où chaque phrase serait placée selon ce qu'elle veut dire. Les questions sur les horaires se retrouveraient dans un même coin, celles sur les prix dans un autre, celles sur les retours ailleurs encore. Un embedding est l'adresse d'un texte sur cette carte. La carte n'a pas deux dimensions mais plusieurs centaines, voire quelques milliers, ce qui permet de distinguer des nuances fines.
Pour savoir si deux textes parlent de la même chose, il suffit alors de mesurer la distance entre leurs adresses. C'est un calcul rapide, que l'ordinateur peut répéter sur des milliers de passages en une fraction de seconde.
D'où vient l'idée
L'idée de représenter les mots par des nombres selon leur contexte est ancienne en linguistique : on reconnaît un mot à ses voisins. Elle a pris son essor pratique en 2013 avec word2vec, une méthode publiée par une équipe de Google menée par Tomas Mikolov, qui calculait un vecteur par mot. Les modèles actuels vont plus loin : ils calculent un embedding pour une phrase ou un paragraphe entier, en tenant compte de l'ordre des mots et du contexte.
À quoi servent les embeddings dans un assistant IA
Les embeddings sont au cœur de la recherche sémantique, qui permet à un assistant de retrouver le bon passage dans vos documents même si le visiteur n'emploie pas les mêmes mots. Le fonctionnement suit deux temps :
- À la préparation, chaque document de la base de connaissances est découpé en passages, et chaque passage reçoit son embedding. Ces vecteurs sont rangés dans une base de données vectorielle
- À chaque question, la question reçoit à son tour un embedding, et le système cherche les passages dont les vecteurs sont les plus proches. Ces passages sont transmis au modèle de langage, qui rédige la réponse
C'est la première étape du RAG. Si elle retrouve les mauvais passages, même le meilleur modèle donnera une réponse à côté.
Des embeddings qui traversent les langues
Les modèles d'embedding multilingues placent des textes de langues différentes sur la même carte. Une question en néerlandais sur la « opzegtermijn » se retrouve alors près d'un passage français sur le « délai de préavis ». C'est ce qui permet à un assistant belge de répondre en trois langues à partir d'une seule version des documents, à condition de vérifier les termes techniques.
Ce rapprochement fonctionne bien pour le vocabulaire courant. Il peut être moins fiable pour des abréviations maison, des noms d'offres ou des termes administratifs propres à une région. Un lexique qui met ces termes côte à côte dans les documents aide la recherche.
Les limites à connaître
- Le sens, pas les faits. Un embedding dit que deux textes parlent du même sujet, pas que l'un répond correctement à l'autre. Un passage sur les retours en magasin sera proche d'une question sur les retours en ligne, même s'il ne s'y applique pas
- Le découpage compte. Un passage trop long mélange plusieurs sujets et devient flou ; un passage trop court perd son contexte. Des documents structurés en sections claires donnent de meilleurs résultats
- Les nombres et les codes se représentent mal. Une référence de produit ou un numéro d'article se retrouve mieux par une recherche classique sur les mots exacts
- Changer de modèle d'embedding oblige à recalculer tous les vecteurs, car deux modèles ne placent pas les textes sur la même carte
C'est pourquoi beaucoup de systèmes combinent la recherche par embeddings et la recherche par mots-clés : la première trouve le sens, la seconde les termes exacts.
Embedding, entraînement et confidentialité
Calculer un embedding ne modifie pas le modèle et ne l'entraîne pas sur vos documents. Le texte est envoyé au modèle d'embedding, qui renvoie la suite de nombres. Comme pour toute donnée transmise à un prestataire, les conditions de traitement doivent être connues, surtout si les documents contiennent des informations personnelles. Le plus simple reste de ne pas charger de données personnelles dans une base publique.
Et dans KernChat ?
KernChat n'utilise pas d'embeddings à ce jour. Les sources d'un espace de connaissance entrent telles quelles dans la fenêtre de contexte du modèle, dans l'ordre de priorité fixé par l'organisation, et chaque phrase qui s'appuie sur une source la cite. Quand les sources ne tiennent pas toutes dans la limite prévue, un classement par mots communs avec la question fait entrer d'abord les plus proches. Ce choix garde la réponse fidèle au texte complet des documents, sans dépendre d'un découpage en passages, et convient à la taille de la base documentaire d'une PME.