A/B Test du Pipeline RAG
Warning
Le test A/B vous permet de comparer différentes configurations de votre pipeline RAG pour trouver la combinaison optimale de fonctionnalités. Testez l'impact de chaque paramètre sur la qualité de vos réponses.
Qu'est-ce que le test A/B pour RAG ?
Le test A/B pour RAG consiste à exécuter la même requête avec deux configurations de pipeline différentes et à comparer les résultats. Cela vous permet d'identifier quelles fonctionnalités améliorent réellement la qualité de recherche pour vos données spécifiques.
Architecture du pipeline
Le pipeline RAG d'IgnitionRAG se compose de quatre étapes principales :
Requête → Amélioration de la requête → Recherche → Reranking → Résultats
1. Amélioration de la requête
Transforme la requête utilisateur pour améliorer la recherche : réécriture, expansion, HyDE, multi-query et extraction de filtres.
2. Recherche
Exécute la recherche vectorielle, BM25 ou hybride pour trouver les chunks les plus pertinents.
3. Reranking
Réordonne les résultats avec un modèle spécialisé (Jina ou LLM) pour améliorer la précision.
4. Résultats
Génère la réponse finale avec citations et références aux sources.
Fonctionnalités configurables
Le pipeline offre 11 fonctionnalités que vous pouvez activer ou désactiver individuellement :
hybridSearch
activé par défaut
Combine la recherche vectorielle (sémantique) et BM25 (lexicale) pour de meilleurs résultats. Le paramètre alpha contrôle la balance : 0 = BM25 seul, 1 = vectoriel seul, 0.7 = recommandé.
selfQuery
activé par défaut
Extrait automatiquement des filtres de métadonnées depuis la requête utilisateur. Par exemple, « documents de 2024 » génère un filtre sur la date.
queryRewriting
activé par défaut
Réécrit les requêtes ambiguës ou mal formulées pour améliorer la clarté. Transforme le langage conversationnel en requêtes de recherche précises.
queryExpansion
désactivé par défaut
Ajoute des synonymes et termes associés à la requête pour améliorer le rappel BM25. Utile pour les collections avec du vocabulaire varié.
hyde (Hypothetical Document Embeddings)
désactivé par défaut
Génère un document hypothétique qui répondrait à la question, puis utilise son embedding pour la recherche. Améliore significativement les requêtes sous forme de questions.
multiQuery
désactivé par défaut
Génère plusieurs variations de la requête et fusionne les résultats. Utile pour les questions complexes qui peuvent être interprétées de différentes façons.
reranking
activé par défaut
Réordonne les résultats avec Jina Reranker ou un LLM pour améliorer la précision. Le reranking est particulièrement efficace après une recherche hybride.
contextualRetrieval
désactivé par défaut
Ajoute un préfixe de contexte à chaque chunk lors de l'ingestion pour améliorer la compréhension hors contexte. Doit être activé avant l'ingestion.
citations
activé par défaut
Génère des citations inline [1], [2] dans les réponses avec références aux documents sources. Améliore la traçabilité et la confiance.
parallelEnhancement
activé par défaut
Exécute les améliorations de requête en parallèle au lieu de séquentiellement. Réduit la latence d'environ 60% sans impact sur la qualité.
dynamicFeatureSelection
désactivé par défaut
Active automatiquement les fonctionnalités selon le type de requête : questions → HyDE, requêtes complexes → multiQuery, requêtes courtes → queryExpansion, patterns de filtres → selfQuery.
API de configuration RAG
Chaque collection possède sa propre configuration RAG. Utilisez ces endpoints pour la gérer :
Récupérer la configuration
GET /api/collections/:id/rag-config
// Réponse :
// {
// "features": {
// "hybridSearch": true,
// "selfQuery": true,
// "queryRewriting": true,
// "queryExpansion": false,
// "hyde": false,
// "multiQuery": false,
// "reranking": true,
// "contextualRetrieval": false,
// "citations": true,
// "parallelEnhancement": true,
// "dynamicFeatureSelection": false
// },
// "hybrid": { "alpha": 0.7 }
// }Mettre à jour la configuration
PUT /api/collections/:id/rag-config
{
"features": {
"hyde": true,
"multiQuery": true
}
}Réinitialiser aux valeurs par défaut
DELETE /api/collections/:id/rag-configTest A/B rapide
L'endpoint de test rapide permet de comparer deux configurations en une seule requête :
POST /api/collections/:id/rag-config/test
{
"query": "Comment configurer l'authentification ?",
"configA": {
"features": { "hyde": false, "reranking": true }
},
"configB": {
"features": { "hyde": true, "reranking": true }
}
}
// Réponse :
// {
// "resultA": { "answer": "...", "sources": [...], "latency": 1200 },
// "resultB": { "answer": "...", "sources": [...], "latency": 1800 },
// "comparison": {
// "latencyDiff": "+50%",
// "sourcesOverlap": 0.6
// }
// }API de test A/B complet
Pour des tests plus approfondis avec plusieurs requêtes, utilisez l'API A/B test dédiée :
Créer un test
POST /api/ab-tests
{
"name": "HyDE vs baseline",
"collectionId": "<collection-id>",
"configA": { "features": { "hyde": false } },
"configB": { "features": { "hyde": true } },
"queries": [
"Comment configurer l'auth ?",
"Quels formats sont supportés ?",
"Comment fonctionne le reranking ?"
]
}Exécuter le test
POST /api/ab-tests/:id/run
// Exécute toutes les requêtes avec les deux configurations
// et stocke les résultats pour analyseVoir les résultats
GET /api/ab-tests/:id
// Réponse avec résultats détaillés par requête,
// métriques de latence, overlap des sources,
// et recommandation automatiqueComprendre les résultats
Les résultats d'un test A/B incluent plusieurs métriques :
- Latence : temps de réponse de chaque configuration. Une latence plus faible est préférable à qualité égale.
- Overlap des sources : pourcentage de sources communes entre les deux configurations. Un faible overlap indique des résultats très différents.
- Qualité des réponses : comparez manuellement la pertinence et la complétude des réponses générées.
- Nombre de sources : vérifiez que la configuration retourne suffisamment de sources pertinentes.
Exemples pratiques
Voici deux comparaisons courantes pour optimiser votre pipeline :
HyDE activé vs désactivé
Testez l'impact de HyDE sur les requêtes sous forme de questions. HyDE améliore généralement les questions factuelles mais peut ajouter de la latence :
// Config A : sans HyDE (baseline)
{ "features": { "hyde": false } }
// Config B : avec HyDE
{ "features": { "hyde": true } }
// Résultat typique :
// - Questions factuelles : B gagne (+15% pertinence)
// - Requêtes par mots-clés : A gagne (latence -40%)Recherche hybride vs vectorielle seule
Comparez la recherche hybride (vecteur + BM25) à la recherche vectorielle pure. La recherche hybride excelle quand vos documents contiennent des termes techniques précis :
// Config A : vectoriel seul
{ "features": { "hybridSearch": false } }
// Config B : hybride (recommandé)
{ "features": { "hybridSearch": true }, "hybrid": { "alpha": 0.7 } }
// Résultat typique :
// - Termes techniques : B gagne (+25% rappel)
// - Questions générales : résultats similairesProchaines étapes
Maintenant que vous savez comparer vos configurations, explorez les autres guides avancés pour aller plus loin.
Tip