Retour aux rag
Avance20 min de lecture

Comprendre les Embeddings pour le RAG

Les embeddings sont au coeur du RAG. Decouvrez comment ils fonctionnent et pourquoi ils sont essentiels pour la recherche semantique.

EmbeddingsRAGVector DatabaseSemantique
Publie le 5 février 2024 - Mis a jour le 10 février 2024

Qu'est-ce qu'un embedding ?

Un embedding est une representation numerique (un vecteur) d'un texte qui capture son sens.

Intuition

Imaginez que chaque mot ou phrase soit un point dans un espace multidimensionnel. Les textes similaires en sens seront proches dans cet espace.

Exemple simplifie

"chat" → [0.2, 0.8, 0.1, ...]
"chaton" → [0.21, 0.79, 0.12, ...] (tres proche)
"voiture" → [0.9, 0.1, 0.7, ...] (eloigne)

Comment sont crees les embeddings ?

Modeles d'embedding

Des modeles specialises transforment le texte en vecteurs :

  • OpenAI : text-embedding-ada-002
  • Cohere : embed-english-v3.0
  • Open source : sentence-transformers

Processus

  1. Le texte entre dans le modele
  2. Le modele analyse le contexte et le sens
  3. Un vecteur de 768 a 1536 dimensions est genere

Pourquoi c'est important pour le RAG ?

Recherche semantique

Au lieu de chercher des mots-cles exacts, on cherche par sens.

Question : "Comment augmenter mes ventes ?"
Trouve : "Strategies pour booster le chiffre d'affaires"
(Meme si les mots sont differents !)

Similarite cosinus

Pour trouver les documents pertinents, on calcule la similarite entre les vecteurs.

Le pipeline d'indexation

Etape 1 : Chunking

Decouper les documents en morceaux de taille geree.

Document de 50 pages → 500 chunks de ~500 tokens

Etape 2 : Embedding

Transformer chaque chunk en vecteur.

Etape 3 : Stockage

Sauvegarder dans une base vectorielle.

Les bases de donnees vectorielles

Options populaires

  • Pinecone : Cloud, facile a utiliser
  • Weaviate : Open source, flexible
  • Chroma : Leger, ideal pour debuter
  • Qdrant : Performant, open source

Fonctionnement

# Pseudo-code simplifie
db.add(
    documents=["texte 1", "texte 2"],
    embeddings=[[0.1, 0.2, ...], [0.3, 0.4, ...]]
)

# Recherche
results = db.search(
    query_embedding=[0.15, 0.25, ...],
    top_k=5
)

Optimiser vos embeddings

1. Choisir la bonne taille de chunk

  • Trop petit : perte de contexte
  • Trop grand : bruit et imprecision
  • Ideal : 200-500 tokens avec chevauchement

2. Ajouter des metadonnees

{
    "text": "Le contenu...",
    "source": "manuel_utilisateur.pdf",
    "page": 42,
    "date": "2024-01-15"
}

3. Re-ranking

Apres la recherche vectorielle, re-classer les resultats avec un second modele.

Erreurs courantes

1. Chunks mal decoupes

Ne pas couper au milieu d'une phrase ou d'une idee.

2. Pas de pre-traitement

Nettoyer le texte avant l'embedding (enlever headers, footers redondants...).

3. Modele inadequat

Utiliser un modele adapte a votre langue et domaine.

Conclusion

Les embeddings sont la pierre angulaire du RAG. Comprendre leur fonctionnement vous permet de construire des systemes plus performants.

Envie d'aller plus loin ?

Decouvrez nos ebooks premium pour une formation complete et structuree.