La génération augmentée par la récupération (RAG) est le pattern dominant pour construire des applications LLM sur des données privées. Au lieu de fine-tuner un modèle, vous récupérez des fragments pertinents au moment de la requête et les injectez dans le prompt. Bien fait, cela réduit les hallucinations et maintient les connaissances à jour.
Architecture du Pipeline RAG
Requête Utilisateur
|
v
+---------------------+
| Traitement requête | (réécriture, expansion, décomposition)
+---------------------+
|
v
+---------------------+ +--------------------+
| Modèle d'embedding | | Ingestion Documents|
| (requête -> vecteur)| | | |
+---------------------+ | v |
| | Découpage |
v | Embedding |
+---------------------+ | Indexation |
| Recherche vectorielle|<---+--------------------+
+---------------------+
|
v
+---------------------+
| Re-ranking | (cross-encoder, Cohere Rerank, etc.)
+---------------------+
|
v
+---------------------+
| Assemblage prompt | (prompt système + fragments + requête)
+---------------------+
|
v
+---------------------+
| Génération LLM | (GPT-4, Claude, Llama, etc.)
+---------------------+
Comparaison des Stratégies de Découpage
| Stratégie | Taille | Chevauchement | Avantages | Inconvénients | Idéal pour |
|---|
| Taille fixe | 256-512 tokens | 10-20% | Simple, prévisible | Coupe en pleine phrase | Documents homogènes |
| Par phrase | 1-5 phrases | 1 phrase | Préserve le sens | Tailles inégales | Texte narratif |
| Par paragraphe | 1-3 paragraphes | 0-1 | Limites naturelles | Grande variance | Articles structurés |
| Sémantique | Variable | Adaptatif | Groupe le contenu lié | Plus lent, plus complexe | Documents mixtes |
| Récursif | Taille cible | 10-20% | Respecte la structure | Nécessite connaissance du format | Markdown, HTML, code |
| Parent-Enfant | Petit (recherche) + grand (contexte) | N/A | Recherche précise, contexte riche | Indexation complexe | Longs documents |
Comparaison des Modèles d'Embedding
| Modèle | Dimensions | Tokens max | Score MTEB | Coût | Ouvert/Ferme |
|---|
| OpenAI text-embedding-3-large | 3072 | 8191 | ~65 | 0,13 $/1M tokens | Fermé |
| OpenAI text-embedding-3-small | 1536 | 8191 | ~62 | 0,02 $/1M tokens | Fermé |
| Cohere embed-v3 | 1024 | 512 | ~65 | 0,10 $/1M tokens | Fermé |
| BGE-large-en-v1.5 | 1024 | 512 | ~64 | Gratuit (self-host) | Ouvert |
| E5-mistral-7b-instruct | 4096 | 32768 | ~66 | Gratuit (self-host) | Ouvert |
| nomic-embed-text-v1.5 | 768 | 8192 | ~62 | Gratuit (self-host) | Ouvert |
Matrice des Méthodes de Recherche
| Méthode | Précision | Rappel | Latence | Complexité | Quand l'utiliser |
|---|
| Recherche vectorielle dense | Élevée | Moyenne | Rapide | Faible | Point de départ par défaut |
| Sparse (BM25/SPLADE) | Moyenne | Élevée | Rapide | Faible | Requêtes avec mots-clés exacts |
| Hybride (Dense + Sparse) | Élevée | Élevée | Moyenne | Moyenne | Systèmes de production |
| Multi-requête | Élevée | Très élevée | Lente | Moyenne | Questions complexes |
| Graphe de connaissances + Vecteur | Très élevée | Élevée | Lente | Élevée | Connaissances structurées |
Cadre d'Évaluation RAGAS
| Métrique | Ce que ça mesure | Plage | Cible |
|---|
| Faithfulness | La réponse est-elle ancrée dans le contexte ? | 0-1 | > 0,85 |
| Answer Relevance | La réponse répond-elle à la question ? | 0-1 | > 0,80 |
| Context Précision | Les fragments récupérés sont-ils pertinents ? | 0-1 | > 0,75 |
| Context Recall | Tous les fragments nécessaires ont-ils été récupérés ? | 0-1 | > 0,75 |
Ressources