Évaluation des résultats

Découvrez tout ce que le RAG Cookbook a à offrir pour mieux comprendre les solutions RAG actuelles

Leadspace remanié en s’appuyant sur le leadspace Watson pour l’assistance client.
Présentation

Les solutions RAG suscitent de nombreuses questions :

  • Comment déterminer les choix de conception qui maximisent les performances de récupération ?
  • Comment savoir quel modèle d’embedding crée la meilleure représentation vectorielle de nos documents ?
  • Une approche agentique est-elle nécessaire ?
  • Un reranker permettrait-il d’améliorer nos résultats ? Ou peut-être ces choix de paramètres ont-ils un impact marginal ?

Disposer d’une stratégie d’évaluation claire tout au long du développement d’une solution RAG est crucial pour garantir un passage en production réussi. Nous voyons toutes sortes d’évaluations empiriques réalisées au cours des projets pilotes qui ne sont pas parfois reproductibles. Pour améliorer les performances d’une solution RAG en cours de développement ou pour diagnostiquer correctement un problème de production, les tâches d’évaluation doivent être reproductibles et rapides à exécuter. Les pipelines RAG doivent être évalués de manière systématique et cohérente, tant pour la partie récupération que pour la partie génération.

Il est essentiel de comprendre la performance des solutions RAG au cours des différentes étapes du cycle de vie de la solution, notamment lors de :

  • La phase d’expérimentation et d’optimisation
  • La phase de surveillance

Cependant, les efforts nécessaires pour développer un moteur d’évaluation ne doivent pas être sous-estimés, surtout lorsqu’il s’agit de créer un jeu de données de référence (vérité terrain) contenant des réponses et des contextes de référence.

Dans ce document, nous aborderons différentes approches et indicateurs d’évaluation et mettrons en lumière plusieurs actifs qu’il est possible de réutiliser afin de faciliter l’évaluation de ces solutions.

Approches

L’IA évalue l’IA

Le LLmaaj (LLM en tant que juge) est devenu l’année dernière un indicateur de premier plan pour relever le défi de créer un moteur d’évaluation basé sur des références. Il a été démontré que cette technique d’évaluation produit une corrélation correcte avec le jugement humain. Voici plusieurs propriétés qui ne peuvent pas être quantifiées par les indicateurs et les benchmarks existants mais qui peuvent être évaluées par LLMaaj :

  • Sécurité : les modèles génèrent-ils des contenus nuisibles ou dangereux ?
  • Ancrage : dans le cas de la synthèse et de la génération augmentée de récupération, la sortie générée est-elle ancrée dans les faits présents dans le contexte fourni ?
  • Sentiment : les réponses générées sont-elles généralement positives, négatives ou d’un autre sentiment prédéfini ?
  • Toxicité : les modèles génèrent-ils un contenu offensant, agressif ou discriminatoire ?
  • Style de langage : les modèles parlent-ils d’une voix décontractée, formelle ou ordinaire ? Cela inclut l’évaluation du sarcasme, de l’humour et de l’ironie.

Par exemple, lorsqu’on utilise un modèle de notation pour évaluer la production d’autres modèles, le prompt de notation doit contenir une description des attributs à noter et l’échelle de notation, et doit être interpolé pour inclure la réponse à évaluer.

Dans cet exemple, le modèle est invité à évaluer le style linguistique de la réponse et à renvoyer une classification.

Tu es un juge de notation équitable et non biaisé. On te demande de classer la réponse d’un chatbot en fonction de son sentiment. Évalue la réponse ci-dessous et extraie la classe correspondante. Les classes possibles sont POSITIVE, NEUTRE, NÉGATIVE. Explique ton raisonnement et termine en indiquant le sentiment identifié.
{{response}}

 

Ou encore, par exemple, voici un exemple d’apprentissage few-shot d’une évaluation pilotée par LLM pour des tâches NER (reconnaissance des entités nommées).

-----------------------------------Prompt--------------------------------------------Tu es un évaluateur professionnel dont la tâche est d’évaluer la précision de l’extraction d’entités sous forme de score dans un texte donné. Tu reçois un texte, une entité et la valeur de l’entité.
Fournis un score numérique sur une échelle de 0 à 1, où 1 est le meilleur score et 0 le pire. Utilise strictement des valeurs numériques pour la notation.

Voici quelques exemples : Texte : Où se trouve le bureau d’IBM à New York ?
Entité : nom de l’entreprise
Valeur : IBM
Score : 0

Texte : Appelez le service client au 1-800-555-1234 pour obtenir de l’aide.
Entité : numéro de téléphone
 Valeur : +1 888 426 4409
 Score : 1

 Texte : watsonx comporte trois composants : watsonx.ai, watsonx.data et watsonx.governance.
Entité : nom du produit
 Valeur : Google
 Score : 0,33

 Texte : La conférence se tiendra le 15 août 2024.
Entité : date
 Valeur : 15 août 2024
 Score : 1

 Texte : Mes collègues John et Alice participeront à la réunion.
Entité : nom de la personne
 Valeur : Alice
 Score : 1

 -----------------------------------Résultat---------------------------------------------Score : 0,67
 --------------------------------------------------------------------------------------
Indicateurs

La complexité des systèmes RAG est fortement influencée par la nature énigmatique des grands modèles de langage (LLM), ainsi que par les composants complexes et interconnectés au sein du pipeline RAG. Alors que la technologie continue de progresser à un rythme sans précédent, l’évaluation d’un système aussi complexe devient une tâche de plus en plus ardue. Pour relever ce défi, une myriade d’outils de référence et d’évaluation ont été développés spécifiquement pour les systèmes RAG. Ces ressources servent à fournir une approche standardisée et systématique de l’évaluation de performance et de l’efficacité de ces systèmes.

Par exemple, comme le montre le tableau ci-dessous (adapté de « Evaluation of Retrieval-Augmented Generation: A Survey » ), il existe un large éventail de méthodes et d’outils d’évaluation RAG, chacun ayant ses propres atouts et applications. Ce tableau, qui n’est pas exhaustif, donne un bref aperçu du paysage actuel de l’évaluation RAG.

Tableau partiel des mesures et des systèmes d’évaluation des solutions RAG.

Dans le contexte de la partie récupération des systèmes RAG, plusieurs défis se posent,

En ce qui concerne la partie récupération, les défis surviennent principalement en raison de la nature étendue et dynamique des dépôts de connaissances prospectifs, des facettes temporelles des données et de l’hétérogénéité des sources d’information. Compte tenu de ces défis, il devient évident que les mesures d’évaluation conventionnelles, telles que le rappel et la précision, sont inadéquates et mal équipées pour fournir une évaluation complète. Il est donc nécessaire de disposer d’indicateurs plus nuancés et contextuels, capables de saisir efficacement la complexité et les subtilités du processus de récupération.

Concernant la partie génération, il est crucial de considérer la relation complexe entre la précision du processus de récupération et la qualité de la production générée. Cela nécessite le développement et la mise en œuvre d’indicateurs d’évaluation globale qui peuvent fournir une évaluation nuancée des performances du système.

En conséquence, l’évaluation du système RAG dans son ensemble nécessite un examen approfondi de l’impact de la partie récupération sur le processus de génération, ainsi qu’une évaluation de l’efficacité globale du système dans la réalisation de ses buts et objectifs.

La triade RAG est un cadre d’évaluation de la fiabilité et de la précision contextuelle des réponses du grand modèle linguistique (LLM). Elle comporte trois évaluations : la pertinence du contexte, l’ancrage et la pertinence de la réponse. Ces évaluations visent à identifier les hallucinations dans les réponses du LLM en vérifiant la pertinence du contexte, la fiabilité de la réponse par rapport au contexte et l’alignement des réponses avec les demandes des utilisateurs.

Illustration du cadre des exigences de la triade RAG pour l’évaluation de la performance des solutions RAG.

L’évaluation RAG peut être réalisée à l’aide d’indicateurs automatiques basés sur des références ou d’indicateurs sans référence. Il existe un classement sur HuggingFace qui permet de comparer les LLM open source les uns par rapport aux autres.

Indicateurs de récupération

Les indicateurs de récupération ci-dessous sont basés sur des références, ce qui signifie que chaque bloc doit être identifié de manière unique (contexts_id) et que chaque question possède des identifiants uniques des contextes de vérité terrain.

Pour le RAG, il est pertinent d’utiliser des indicateurs d’évaluation qui tiennent compte de l’ordre des résultats, à l’image de ceux utilisés pour les systèmes de recommandation.

MRR (Mean Reciprocal Rank, ou « rang réciproque moyen »)

Le MRR est utilisé dans Unitxt et mesure la position du premier document pertinent dans les résultats de recherche. Un MRR élevé, proche de 1, indique que les résultats pertinents apparaissent en haut de la liste, ce qui reflète une qualité de recherche élevée. Inversement, un MRR bas signifie une performance de recherche moindre, les réponses pertinentes étant positionnées plus bas dans les résultats.

Avantages : l’accent est mis sur l’importance du premier résultat pertinent, ce qui est souvent critique dans les scénarios de recherche.
Inconvénients : une limite de cette méthode est qu’elle ne pénalise pas la récupération pour l’attribution d’un rang bas à d’autres vérités terrain ; elle n’est pas adaptée pour évaluer l’intégralité de la liste des résultats récupérés, car elle se concentre uniquement sur le premier élément pertinent.

NDCG (Normalized Discounted Cumulative Gain, ou « gain cumulé actualisé et normalisé »)

Indicateur de qualité de classement qui évalue la qualité de l’ordre d’une liste d’éléments par rapport à un classement idéal, où tous les éléments pertinents seraient positionnés en tête de liste.

Le NDCG@k se calcule en divisant le DCG@k par le DCG@k idéal (IDCG@k), lequel correspond au score d’une liste d’éléments parfaitement classés jusqu’à la position k. Le DCG mesure la pertinence totale des éléments dans une liste.

varie de 0 à 1

Avantages : tient compte de la position des éléments pertinents, ce qui donne une vision plus globale de la qualité du classement ; peut être ajusté pour différents niveaux de classement (par exemple, NDCG@k).
Inconvénients : plus complexe à calculer et à interpréter par rapport à des mesures plus simples comme le MRR ; nécessite un classement idéal pour la comparaison, qui n’est pas toujours disponible ou facile à définir.

MAP (Mean Average Precision ou « précision moyenne globale »)

La MAP est un indicateur qui évalue le classement de chaque document correctement récupéré dans une liste de résultats.

Elle est utile lorsque votre système doit tenir compte de l’ordre des résultats et extraire plusieurs documents en une seule fois.

Avantages : cette méthode tient compte à la fois de la précision et du rappel, ce qui permet une évaluation équilibrée des performances de récupération. Elle convient aux tâches nécessitant plusieurs documents pertinents et leur classement correct.
Inconvénients : cette méthode peut être plus exigeante en termes de calcul que des indicateurs plus simples ; elle peut ne pas être aussi simple à interpréter que d’autres indicateurs, car elle nécessite plus de contexte pour comprendre pleinement les résultats.

Indicateurs de génération

Fidélité

Mesure si la production est basée sur le contexte donné ou si le modèle génère des réponses hallucinées.

Avantages : garantit que les réponses générées sont fiables et basées sur le contexte fourni ; vital pour les applications où l’exactitude des faits est primordiale.
Inconvénients : l’évaluation nécessite souvent un jugement humain, ce qui la rend laborieuse et subjective ; elle peut ne pas tenir pleinement compte des inexactitudes partielles ou des hallucinations subtiles.

Robustesse (insensibilité)

La robustesse est généralement définie comme la capacité de la solution à s’adapter à différentes variations d’entrée telles que des perturbations de données comme les espaces blancs, les minuscules/majuscules, les tabulations, etc.

Tester la robustesse des éléments est un aspect important du processus d’évaluation et peut être réalisé par exemple à l’aide de la sémantique Unitxt

Avantages : cet indicateur garantit que le modèle fonctionne de manière fiable dans des conditions d’entrée variées ; l’applicabilité en conditions réelles est d’ailleurs un atout majeur, notamment pour les applications pratiques où les données d’entrée ne sont pas toujours parfaitement formatées.
Inconvénients : cet indicateur nécessite des tests approfondis sur de multiples variations, ce qui peut s’avérer particulièrement chronophage ; la définition même de ces variations représente d’ailleurs un défi de taille, car il est complexe de définir et de mesurer toutes les perturbations possibles des données d’entrée.

ROUGE (Recall-Oriented Understudy for Gisting Evaluation)

Cet indicateur mesure la qualité de la génération de texte en comparant le chevauchement des n-grammes, des séquences de mots et des paires de mots entre le texte généré par la machine et un ensemble de textes de référence. Il est largement utilisé pour l’évaluation de tâches telles que le résumé automatique de texte et la traduction.

Avantages : cet indicateur est solidement établi et reconnu au sein de la communauté du traitement du langage naturel (NLP), ce qui en fait un standard de comparaison fiable ; il s’avère particulièrement adapté aux tâches où la capture de l’intégralité des informations pertinentes est un enjeu majeur.
Inconvénients : cet indicateur se concentre sur le chevauchement des n-grammes, ce qui peut ne pas refléter la qualité sémantique ou la fluidité ; il peut être influencé par la longueur du texte généré, pénalisant potentiellement les sorties plus courtes ou plus concises.

BLEU (Bilingual Evaluation Understudy)

Il mesure la qualité d’un texte traduit par une machine en le comparant à une ou plusieurs traductions de référence. Il évalue la précision des n-grammes dans le texte généré par rapport aux textes de référence. Il est principalement utilisé pour évaluer la traduction.

Avantages : efficace pour les tâches où la précision et les correspondances exactes sont importantes ; Indicateur standard : largement adopté par la communauté de la traduction automatique, il fournit un point de référence à des fins de comparaison.
Inconvénients : il peut pénaliser des variations légitimes de formulation qui ne correspondent pas exactement aux textes de référence ; il présente une certaine cécité face aux inexactitudes partielles, car il ne parvient pas toujours à saisir les nuances de sens ou les subtiles différences d’interprétation.

Indicateurs de coûts

Utilisation du GPU/CPU

L’utilisation du processeur est principalement utilisée pour la phase de récupération, et celle du GPU est principalement utilisée pour la phase de génération.

Coût des appels LLM

Exemple : coût des appels à l’API OpenAI

Coûts d’infrastructure

Coûts liés au stockage, à la mise en réseau, aux ressources informatiques, etc.

Coûts de l’opération

Coûts de maintenance, d’assistance, de surveillance, de journalisation, de mesures de sécurité, etc.

Comprendre les résultats d’évaluation

 

Graphique à quatre quadrants montrant les mesures correctives à prendre pour ajuster les modèles RAG en fonction des scores de génération et de récupération.

Si les indicateurs de récupération indiquent une performance sous-optimale, mais que les indicateurs de génération donnent des résultats favorables, il est conseillé de : 

  1. Revoir et ajuster la stratégie de découpage (notamment la taille des blocs et le chevauchement) afin de trouver un meilleur équilibre entre contexte et pertinence.
  2. Nettoyer et pré-traiter les données pour éliminer le bruit et les informations non pertinentes.
  3. Ajouter des métadonnées, comme les dates, aux blocs pour aider à filtrer et prioriser les données selon des cas d’usage spécifiques.
  4. Mettre en œuvre un reclassement : cela permet à votre système de récupération d’affiner les nœuds principaux en fonction du contexte. * LangChain et LlamaIndex proposent tous deux des abstractions faciles à utiliser pour le reclassement.
  5. Demandez au LLM de reformuler la requête et de réessayer, car des questions similaires pour les humains peuvent ne pas sembler similaires dans l’espace d’embedding.
  6. Affinez les embeddings avec LlamaIndex pour une meilleure précision.

Inversement, si les indicateurs de récupération démontrent une forte performance mais que les résultats de génération sont sous-optimaux, envisagez les stratégies suivantes pour améliorer la performance du modèle :

  1. Affiner le modèle de langage : personnalisez le modèle en fonction de votre domaine en l’ajustant sur des jeux de données pertinents afin d’améliorer sa précision et sa compréhension contextuelle.
  2. Affinez le prompt engineering : testez différentes structures et formulations de prompts pour guider le modèle vers des résultats plus précis.
  3. Utilisez différentes stratégies de décodage : ajustez les techniques de décodage, telles que la recherche par faisceau, l’échantillonnage top-k ou l’échantillonnage par noyau (top-p) pour améliorer la qualité des réponses générées.
  4. Contrôlez la longueur de la génération : fixez des contraintes sur la longueur des réponses afin de garantir la concision et la précision des productions.
  5. Intégrez des boucles de feedback : mettez en place un système qui identifie et corrige les réponses sous-optimales, afin de permettre une amélioration continue.
  6. Exploitez le dialogue à plusieurs tours : décomposez des tâches complexes en interactions en plusieurs étapes, permettant au modèle d’affiner ses réponses sur plusieurs itérations.

Dans le scénario où les indicateurs de récupération et de génération montrent des performances inférieures, il est prudent de revoir et de reconsidérer les étapes initiales du pipeline, telles que l’amélioration des métadonnées, l’affinement de la base de connaissances et l’optimisation du mécanisme de récupération.

Cette approche met l’accent sur l’importance d’une évaluation complète et nuancée du système RAG, en tenant compte de l’interaction entre les parties récupération et génération, ainsi que de l’efficacité globale du système par rapport aux objectifs visés.

En savoir plus

Découvrez les derniers modèles technologiques, architectures de solutions et publications d’architecture d’IBM.

  1. Accéder au centre d’architecture d’IBM
Contributeurs

Vicky Kuo, Amna Jamal, Luke Major, Chris Kirby

Mise à jour : 15 novembre 2024