Étape 5 (récupération). Comment déboguer la qualité de la récupération
Cette page explique comment identifier la cause racine des problèmes de récupération. Utilisez cette page lorsque l’analyse de la cause racine indique une cause racine Improve Retrieval
.
La qualité de la récupération est sans doute le composant le plus important d’une application RAG. Si les blocs les plus pertinents ne sont pas retournés pour une requête donnée, le LLM n’a pas accès aux informations nécessaires pour générer une réponse de haute qualité. Une récupération médiocre peut entraîner une sortie non pertinente, incomplète ou altérée. Cette étape nécessite un effort manuel pour analyser les données sous-jacentes. Mosaic AI Agent Framework, avec son intégration étroite entre la plateforme de données (y compris Unity Catalog and Vector Search), et le suivi des expériences avec MLflow (y compris l’évaluation LLM et le suivi MLflow) facilite beaucoup la résolution des problèmes.
Instructions
Suivez ces étapes pour résoudre les problèmes de qualité de la récupération :
- Ouvrez le notebook B_quality_iteration/01_root_cause_quality_issues.
- Utilisez les requêtes pour charger les traces MLflow des enregistrements ayant rencontré des problèmes de qualité de la récupération.
- Pour chaque enregistrement, examinez manuellement les blocs récupérés. Si disponibles, comparez-les aux documents de récupération au sol.
- Recherchez des modèles ou des problèmes courants parmi les requêtes à faible qualité de récupération. Par exemple :
- Les informations pertinentes sont manquantes dans toute la base de données vectorielle.
- Nombre insuffisant de blocs ou de documents retournés pour une requête de récupération.
- Les blocs sont trop petits et manquent de contexte.
- Les blocs sont trop volumineux et contiennent plusieurs rubriques non liées.
- Le modèle d’incorporation ne parvient pas à capturer de similarité sémantique pour les termes spécifiques au domaine.
- En fonction du problème identifié, imaginez les causes racines potentielles et les correctifs correspondants. Pour obtenir des conseils, consultez Raisons courantes d’une mauvaise qualité de récupération.
- Suivez les étapes décrites dans implémenter et évaluer les modifications pour implémenter et évaluer un éventuel correctif. Cela peut impliquer la modification du pipeline de données (par exemple, l’ajustement de la taille de bloc ou l’essai d’un autre modèle d’incorporation) ou la modification de la chaîne RAG (par exemple, l’implémentation de la recherche hybride ou la récupération de blocs supplémentaires).
- Si la qualité de récupération n’est toujours pas satisfaisante, répétez les étapes 4 et 5 pour les correctifs les plus prometteurs suivants jusqu’à obtenir les performances souhaitées.
- Réexécutez l’analyse de la cause racine pour déterminer si la chaîne globale présente d’autres causes racines à traiter.
Raisons courantes d’une mauvaise qualité de récupération
Le tableau suivant répertorie les étapes de débogage et les éventuels correctifs des problèmes de récupération courants. Les correctifs sont classés par composant :
- Pipeline de données
- Configuration de chaîne
- Code de chaîne
Le composant définit les étapes à suivre dans l’étape Implémenter et évaluer les modifications.
Problème de récupération | Étapes de débogage | Correctif potentiel |
---|---|---|
Les blocs sont trop petits | – Examinez les segments pour obtenir des informations de coupure incomplètes. | - Pipeline de données Augmenter la taille des segments ou le chevauchement. - Pipeline de données Essayer une autre stratégie de segmentation. |
Les blocs sont trop volumineux | – Vérifiez si les blocs récupérés contiennent plusieurs rubriques non liées. | - Pipeline de données Réduire la taille du segment. - Pipeline de données Améliorer la stratégie de segmentation pour éviter le mélange de sujets sans rapport (par exemple, segmentation sémantique). |
Les blocs n’ont pas suffisamment d’informations sur le texte à partir duquel ils ont été pris | – Évaluez si le manque de contexte de chaque bloc provoque une confusion ou une ambiguïté dans les résultats récupérés. | - Pipeline de données Essayer d’ajouter des métadonnées et des titres à chaque segment (par exemple, des titres de section). - Configuration de chaîne Récupérer plus de segments et utiliser un LLM avec une taille de contexte plus importante. |
Le modèle d’incorporation ne comprend pas avec précision le domaine ou les expressions clés dans les requêtes utilisateur | – Vérifiez si des blocs sémantiquement similaires sont récupérés pour la même requête. | - Pipeline de données Essayer différents modèles d’intégration. - Configuration de chaîne Essayer la recherche hybride. - Code de chaîne Récupérer les résultats de la recherche et les reclasser. N’intégrez dans le contexte LLM que les résultats les mieux classés. - Pipeline de données Affiner le modèle d’intégration sur la base de données spécifiques à un domaine. |
Informations pertinentes manquantes dans la base de données vectorielle | – Vérifiez si des documents ou sections pertinents sont manquants dans la base de données vectorielle. | - Pipeline de données Ajouter des documents plus pertinents à la base de données vectorielle. - Pipeline de données Améliorer l’analyse syntaxique et l’extraction des métadonnées. |
Les requêtes de récupération sont mal formulées | – Si les requêtes utilisateur sont directement utilisées pour la recherche sémantique, analysez ces requêtes et vérifiez l’ambiguïté ou le manque de spécificité. Cela peut facilement se produire dans les conversations à plusieurs tours où la requête utilisateur brute fait référence à des parties précédentes de la conversation. Son utilisation en tant que requête de récupération est alors impossible. – Vérifiez si les termes de requête correspondent à la terminologie utilisée dans le corpus de recherche. |
- Code de chaîne Ajouter des approches d’expansion ou de transformation des requêtes (par exemple, à partir d’une requête d’utilisateur, transformer la requête avant la recherche sémantique). - Code de chaîne Ajouter la compréhension des requêtes pour identifier l’intention et les entités (par exemple, utiliser un LLM pour extraire les propriétés à utiliser dans le filtrage des métadonnées). |
Étape suivante
Si vous avez également identifié des problèmes de qualité de génération, poursuivez avec l’étape 5 (génération). Comment déboguer la qualité de la génération.
Si vous pensez que vous avez résolu tous les problèmes identifiés, passez à l’étape 6. Implémentez et évaluez de manière itérative des correctifs de la qualité.