FORM-IA-RAG · 1 jour · Spécialisation
RAG d’entreprise : ancrage, recherche et évaluation
Passer d’un RAG qui impressionne en démonstration à un RAG qui tient en production — parce que l’écart se joue entièrement sur le découpage, la recherche et la mesure.
Objectif pédagogique
Découper un corpus hétérogène sans détruire le sens ni les références
Choisir entre lexical, vectoriel et hybride sur des critères mesurés
Faire respecter les droits d’accès jusque dans les résultats
Exiger des citations vérifiables et détecter une réponse non ancrée
Refuser une mise en production sans jeu d’évaluation
Pour qui ?
- Développeurs et data engineers branchant un LLM sur un corpus interne
- Architectes arbitrant entre recherche plein texte, vectorielle et hybride
- Équipes dont le prototype RAG « marche sur la démo » mais pas en vrai
- Responsables search / gestion des connaissances
Prérequis
- Formation N1 ou équivalent (agents, MCP, appel d’outils)
- Python de lecture : lancer un script, lire un test
- Aucune connaissance préalable des bases vectorielles n’est requise
Programme — matin (théorie ~3h20)
| Module | Contenu | Durée |
|---|---|---|
| R1 | Anatomie d’un RAG : ingestion, découpage, index, récupération, ancrage — et là où ça casse en vrai | 40 min |
| R2 | Découpage et métadonnées : taille, recouvrement, découpage structurel, conservation des références de source | 45 min |
| R3 | Recherche : BM25 vs vectoriel vs hybride, reclassement, seuils. Quand le vectoriel seul dessert | 50 min |
| R4 | Ancrage et citations : obliger à citer, détecter l’invention, gérer le « je ne sais pas » | 35 min |
| R5 | Droits d’accès et cloisonnement : filtrer à la récupération, pas à l’affichage. Multi-tenant, PII | 30 min |
Programme — après-midi (labs ~3h30)
| Module | Contenu | Durée |
|---|---|---|
| TP1 | Indexer le corpus fourni, comparer trois stratégies de découpage sur le même jeu de questions | 70 min |
| TP2 | Recherche hybride + reclassement, mesurer le gain ; droits d’accès filtrés avant classement, fuite mesurée avec et sans filtre | 70 min |
| TP3 | Jeu d’évaluation (recall@k, ancrage, abstention), vérificateur d’ancrage phrase par phrase sur un générateur simulé qui ment trois fois, mise en CI avec seuils bloquants | 70 min |
Ce que le lab met en évidence
- Une question dont le terme précis est noyé dans un passage riche : le vectoriel seul la relègue au rang 4, le lexical la met en tête, le reclassement corrige
- Le découpage à taille fixe qui coupe un tableau en deux et rend la réponse fausse
- Quatre questions sans réponse dans le corpus : le système s’abstient-il, ou invente-t-il ?
- Deux notes contradictoires, dont une remplacée : le statut du document doit peser dans le classement — et un faux ami (« Remplace la note… ») a failli marquer la version en vigueur comme obsolète
- Un document porteur d’une injection indirecte : un contenu récupéré est une entrée non fiable
- Un conseiller support qui interroge le compte rendu du comité : le passage n’est pas indexé pour lui, la fuite est mesurée avec et sans pré-filtrage
- Un générateur simulé qui répond comme un modèle de langage et invente un plafond, un délai de carence et une adresse : le vérificateur d’ancrage signale ces trois-là, et aucune autre
Ce que le module ne couvre pas
- L’entraînement ou l’ajustement fin d’un modèle d’embedding
- Le déploiement d’une base vectorielle à l’échelle (dimensionnement, réplication)
- La sécurisation complète des contenus récupérés — traitée dans le module Sécurité
Livrables participants
- Index reproductible sur le corpus fourni, dans les trois stratégies de découpage
- Jeu d’évaluation exécutable : recall@k, ancrage, taux d’abstention
- Le script d’évaluation branché en CI, avec des seuils qui font échouer la chaîne
- Grille d’arbitrage lexical / vectoriel / hybride et check-list avant mise en production