RAGAS
by Stephen M. Walker II, Co-Fondateur / PDG
RAGAS fournit un ensemble de mesures pour évaluer différents aspects des systèmes RAG sans se fier aux annotations humaines de vérité de terrain. Ces mesures sont divisées en deux catégories : récupération et génération.
Mesures de RAGAS
-
Mesures de récupération : Ces mesures évaluent les performances du système de récupération. Elles comprennent :
- Pertinence du contexte : Cela mesure le rapport signal/bruit dans les contextes récupérés.
- Rappel du contexte : Cela mesure la capacité du récupérateur à récupérer toutes les informations nécessaires pour répondre à la question. Il est calculé en utilisant la réponse de vérité de terrain fournie et un LLM pour vérifier si chaque déclaration de celle-ci peut être trouvée dans le contexte récupéré.
-
Mesures de génération : Ces mesures évaluent les performances du système de génération. Elles comprennent :
- Fidélité : Cela mesure les hallucinations, ou la génération d'informations non présentes dans le contexte.
- Pertinence de la réponse : Cela mesure à quel point les réponses sont pertinentes par rapport à la question.
La moyenne harmonique de ces quatre aspects vous donne le score RAGAS, qui est une seule mesure de la performance de votre système de QA sur tous les aspects importants.
Comment utiliser RAGAS
Pour utiliser RAGAS, vous avez besoin de quelques questions et, si vous utilisez le rappel de contexte, d'une réponse de référence. La plupart des mesures ne nécessitent pas de données étiquetées, ce qui facilite leur utilisation par les utilisateurs sans qu'ils aient à se soucier de la création d'un ensemble de test annoté par l'homme en premier.
Voici un extrait de code Python montrant comment utiliser RAGAS pour l'évaluation :
from ragas.metrics import faithfulness, answer_relevancy, context_relevancy, context_recall
from ragas.langchain import RagasEvaluatorChain
# faire des chaînes d'évaluation
eval_chains = {m.name: RagasEvaluatorChain(metric=m) for m in [faithfulness, answer_relevancy, context_relevancy, context_recall]}
# évaluer
for name, eval_chain in eval_chains.items():
score_name = f"{name}_score"
print(f"{score_name}: {eval_chain(result)[score_name]}")
Dans ce code, RagasEvaluatorChain
est utilisé pour créer des chaînes d'évaluateurs pour chaque mesure. La méthode __call__()
de la chaîne d'évaluateurs est ensuite utilisée avec les sorties de la chaîne QA pour exécuter les évaluations.
RAGAS est un outil puissant pour évaluer les pipelines RAG, fournissant des mesures exploitables en utilisant le moins de données annotées possible, moins cher et plus rapide. Il aide les développeurs à s'assurer que leurs systèmes de QA sont robustes et prêts à être déployés.