Comprendre le RAG : Donner une Mémoire à l'IA
Découvrez le Retrieval Augmented Generation : pourquoi les LLMs hallucinent, comment le RAG résout ce problème et les concepts clés (embeddings, vector search, chunking).
Le Problème : les LLMs Hallucinent
Les Large Language Models (GPT-4, Claude, Llama) sont entraînés sur des données figées dans le temps. Ils ont deux limites majeures :
1. Knowledge Cutoff
Le modèle ne connaît rien après sa date d''entraînement. Si vous demandez les résultats d''un match d''hier, il ne peut pas répondre.
2. Pas d''accès à vos données privées
Le modèle n''a aucune idée du contenu de votre documentation interne, de vos contrats ou de votre base de connaissances.
3. Les hallucinations
Quand un LLM ne sait pas, il invente une réponse plausible au lieu de dire "je ne sais pas".
Question : "Quel est le protocole de sécurité interne de notre entreprise ?"
LLM seul : "Le protocole de sécurité standard inclut..." ← inventé
LLM + RAG : "Selon votre document 'Politique-Sécurité-2024.pdf', article 3.2..." ← sourcé
Les hallucinations sont le problème n°1 des LLMs en entreprise. Un chatbot qui invente des réponses sur vos produits, vos contrats ou vos procédures peut avoir des conséquences graves.
La Solution : le RAG
RAG (Retrieval Augmented Generation) = Récupération + Génération Augmentée.
L''idée est simple : avant de répondre, on cherche les documents pertinents dans votre base de données, puis on les donne au LLM comme contexte.
Analogie simple
Imaginez un examen :
- LLM seul = examen à livre fermé (le modèle répond de mémoire, risque d''erreurs)
- LLM + RAG = examen à livre ouvert (le modèle consulte les documents avant de répondre)
Les Briques du RAG
1. Les Embeddings (Vecteurs)
Un embedding est une liste de nombres (vecteur) qui représente le sens d''un texte. Deux phrases au sens similaire auront des vecteurs proches dans l''espace.
"Le chat dort sur le tapis" → [0.12, -0.45, 0.78, ...] (1536 nombres)
"Le félin sommeille sur le sol" → [0.11, -0.44, 0.79, ...] (très proche !)
"Le prix du Bitcoin monte" → [0.89, 0.23, -0.56, ...] (très différent)
Modèles d''embedding populaires :
| Modèle | Créateur | Dimensions | Usage |
|---|---|---|---|
| text-embedding-3-small | OpenAI | 1536 | Bon rapport qualité/prix |
| text-embedding-3-large | OpenAI | 3072 | Meilleure qualité |
| embed-v4.0 | Cohere | 1024 | Multilingue excellent |
| all-MiniLM-L6-v2 | HuggingFace | 384 | Gratuit, local |
2. La Vector Database
Une base de données spécialisée pour stocker et chercher des vecteurs efficacement. Au lieu de chercher par mots-clés exacts, elle trouve les documents sémantiquement proches de votre question.
Question : "Comment résilier mon abonnement ?"
Recherche classique : cherche les mots "résilier" et "abonnement"
Recherche vectorielle : trouve aussi "annuler mon contrat", "mettre fin à ma souscription"
Vector databases populaires :
| Base | Type | Idéal pour |
|---|---|---|
| LanceDB | Embarquée (fichier) | Prototypage, applications légères |
| PgVector | Extension PostgreSQL | Production (si vous avez déjà Postgres) |
| Pinecone | Cloud managé | Production sans infra à gérer |
| ChromaDB | Embarquée | Prototypage Python |
| Weaviate | Self-hosted / Cloud | Recherche hybride avancée |
3. Le Chunking (Découpage)
Les documents sont souvent trop longs pour être envoyés entièrement au LLM. On les découpe en chunks (morceaux) de taille raisonnable.
Document de 50 pages
↓ Chunking
Chunk 1 : "Introduction... paragraphe 1-3" (500 tokens)
Chunk 2 : "Chapitre 1... paragraphe 4-6" (500 tokens)
Chunk 3 : "Chapitre 1... paragraphe 7-9" (500 tokens)
...
Stratégies de chunking :
| Stratégie | Principe | Quand l''utiliser |
|---|---|---|
| Fixed Size | Blocs de N caractères | Simple, rapide |
| Recursive | Découpe par paragraphes, puis phrases | Texte structuré |
| Semantic | Regroupe par similarité de sens | Qualité maximale |
| Markdown | Découpe par titres/sections | Documentation technique |
La taille du chunk est cruciale. Trop petit : on perd le contexte. Trop grand : on noie l''information pertinente. 500-1000 tokens est un bon point de départ.
Le Pipeline RAG en 5 Étapes
Étape 1 : Ingestion
Charger vos documents (PDF, texte, pages web, bases de données).
Étape 2 : Chunking
Découper les documents en morceaux de taille raisonnable.
Étape 3 : Embedding
Transformer chaque chunk en vecteur via un modèle d''embedding.
Étape 4 : Stockage
Stocker les vecteurs et les chunks originaux dans une vector database.
Étape 5 : Requête (au moment où l''utilisateur pose une question)
- Embed la question de l''utilisateur
- Chercher les K chunks les plus proches dans la vector database
- Construire le prompt : "Voici des documents pertinents : [chunks]. Réponds à cette question : [question]"
- Envoyer au LLM qui génère une réponse basée sur les documents
Types de Recherche
Recherche Sémantique (Dense)
Basée uniquement sur les embeddings. Trouve les documents au sens proche.
- Force : comprend les synonymes, les reformulations
- Faiblesse : peut rater des mots-clés exacts importants
Recherche par Mots-clés (Sparse)
Recherche classique par correspondance de mots (BM25, TF-IDF).
- Force : excellente pour les noms propres, codes produit, termes techniques
- Faiblesse : ne comprend pas les synonymes
Recherche Hybride (Recommandée)
Combine les deux approches pour le meilleur des deux mondes.
Score final = α × score_sémantique + (1-α) × score_keywords
La recherche hybride est le standard recommandé pour la plupart des applications RAG. Elle est plus robuste que chaque méthode seule.
RAG vs Fine-tuning : Quand Utiliser Quoi ?
| Critère | RAG | Fine-tuning |
|---|---|---|
| Données changent souvent | RAG (mise à jour instantanée) | Fine-tuning (réentraîner) |
| Besoin de sources | RAG (documents citables) | Fine-tuning (pas de source) |
| Coût initial | Faible | Élevé (GPU, données) |
| Hallucinations | Réduites (documents réels) | Toujours possible |
| Style/ton spécifique | Limité | Excellent |
| Données confidentielles | Contrôlable (local) | Risque de mémorisation |
En pratique, 80% des cas d''usage en entreprise sont mieux servis par le RAG que par le fine-tuning. Le fine-tuning est plutôt réservé aux cas où vous voulez changer le comportement fondamental du modèle.
Les Métriques du RAG
Comment savoir si votre RAG fonctionne bien ?
| Métrique | Ce qu''elle mesure | Bon score |
|---|---|---|
| Recall@K | % de documents pertinents trouvés dans les K résultats | > 80% |
| Precision@K | % de résultats qui sont réellement pertinents | > 70% |
| Faithfulness | La réponse est-elle fidèle aux documents ? | > 90% |
| Answer Relevancy | La réponse répond-elle à la question ? | > 85% |
| Context Relevancy | Les chunks récupérés sont-ils pertinents ? | > 75% |
Pour Aller Plus Loin
- Prochain cours : construisez votre premier pipeline RAG avec le framework Agno en Python
- Explorez les vector databases : LanceDB, Pinecone, Weaviate
- Lisez le papier original : Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (Lewis et al., 2020)
Specialiste IA — Master Intelligence Artificielle
Diplome d'un Master en Intelligence Artificielle, je travaille au quotidien sur des projets IA en entreprise. J'ai cree IwanttolearnAI pour rendre l'apprentissage de l'IA accessible a tous, gratuitement.
Continuer a apprendre
Stratégies de Chunking et Indexation pour le RAG
La qualité d'un RAG repose à 80% sur le chunking. Découvrez comment découper vos documents pour maximiser la pertinence des réponses de votre agent IA.
GraphRAG et Hybrid Search : BM25 + Vecteur
Le RAG vectoriel pur a ses limites. Hybrid search (BM25 + embedding) et GraphRAG résolvent les cas complexes — apprenez à les implémenter avec Agno et LanceDB.
Vector Databases : pgvector vs Pinecone vs Weaviate : Comparatif Complet
pgvector, Pinecone, Weaviate, LanceDB, Qdrant… comment choisir sa vector database ? Comparatif complet avec intégration Agno et cas pratique Supabase.