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

Comprendre les Embeddings pour le RAG

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

  • Le texte entre dans le modele
  • Le modele analyse le contexte et le sens
  • 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.