Les embeddings textuels
Mis à jour le 30 juillet 2026
Une fois le document découpé en chunks, l’étape suivante du pipeline RAG consiste à trouver quels chunks sont les plus pertinents pour la question de l’utilisateur. C’est fondamentalement un problème de recherche : il faut parcourir tous les chunks et identifier ceux qui correspondent à la question posée.
La recherche sémantique
L’approche la plus courante pour trouver les chunks pertinents est la recherche sémantique. Contrairement à une recherche par mots-clés qui cherche des correspondances exactes, la recherche sémantique utilise des embeddings pour comprendre le sens et le contexte à la fois de la question de l’utilisateur et de chaque chunk.
Qu’est-ce qu’un embedding ?
Un embedding textuel est une représentation numérique du sens contenu dans un texte. C’est comme convertir des mots et des phrases dans un format que les ordinateurs peuvent manipuler mathématiquement.
Le processus fonctionne ainsi :
- On envoie du texte à un modèle d’embedding
- Le modèle renvoie une longue liste de nombres (l’embedding)
- Chaque nombre est compris entre -1 et +1
- Ces nombres représentent différentes qualités ou caractéristiques du texte d’entrée
Comprendre les nombres
Chaque nombre dans un embedding est essentiellement un “score” pour une qualité du texte. Cependant, point important : on ne sait pas précisément ce que chaque nombre représente.
Il est utile d’imaginer qu’un nombre pourrait mesurer “à quel point le texte est joyeux” ou “à quel point le texte parle d’oceans”, mais ce ne sont que des exemples conceptuels. La signification réelle de chaque dimension est apprise par le modèle pendant l’entraînement et n’est pas directement interpretable par un humain.
VoyageAI pour générer des embeddings
Anthropic ne fournit pas actuellement de génération d’embeddings. Le fournisseur recommandé est VoyageAI. Pour l’utiliser :
- Créer un compte VoyageAI (gratuit pour démarrer)
- Obtenir une clé API
- Ajouter la clé à vos variables d’environnement
Dans votre fichier .env :
VOYAGE_API_KEY="votre_cle_ici"
Implémentation
D’abord, installer la librairie VoyageAI :
%pip install voyageai
Ensuite, configurer le client et créer une fonction pour générer des embeddings :
from dotenv import load_dotenv
import voyageai
load_dotenv()
client = voyageai.Client()
def generate_embedding(text, model="voyage-3-large", input_type="query"):
"""Génère un embedding pour le texte donne."""
result = client.embed([text], model=model, input_type=input_type)
return result.embeddings[0]
Quand vous exécutez cette fonction sur un chunk de texte, vous obtenez une liste de nombres à virgule flottante représentant l’embedding. Le processus est rapide — le vrai défi est de comprendre comment utiliser ces embeddings efficacement pour trouver le contenu le plus pertinent.
L’étape suivante consiste à apprendre comment comparer les embeddings pour déterminer quels chunks sont les plus similaires à la question d’un utilisateur, ce qui constitue le coeur de la recherche sémantique.
Quiz : Embeddings
Question 1 : Pourquoi utilise-t-on des embeddings plutôt qu’une simple recherche par mots-clés ?
Réponse : Les embeddings capturent le sens du texte, pas juste les mots exacts. Ainsi, une question sur “les dangers pour l’entreprise” peut trouver un chunk intitulé “Facteurs de risque” même si les mots exacts ne correspondent pas.
Question 2 : Chaque nombre d’un embedding a-t-il une signification humainement compréhensible ?
Réponse : Non. Les dimensions sont apprises automatiquement par le modèle et ne sont pas directement interpretables. On peut imaginer des analogies (joyeux/triste, technique/littéraire), mais ce ne sont que des approximations conceptuelles.