Chapitre 1 : Mesures d'évaluation RAG
Deux domaines d'évaluation
| Domaine | Ce qu'il mesure | Principales mesures |
|---|---|---|
| Récupération | Qualité des documents récupérés | Précision, Rappel, MRR |
| Génération | Qualité de la réponse du LLM | Fidélité, Pertinence |
Mesures de récupération
Précision@K
def precision_at_k(retrieved_ids, relevant_ids, k):
"""Quel % des documents récupérés sont pertinents ?"""
retrieved_k = set(retrieved_ids[:k])
relevant = set(relevant_ids)
return len(retrieved_k & relevant) / k
# Récupérés : [A, B, C, D, E], Pertinents : [A, C, F]
# Précision@5 = 2/5 = 0.4
Rappel@K
def recall_at_k(retrieved_ids, relevant_ids, k):
"""Quel % des documents pertinents ont été récupérés ?"""
retrieved_k = set(retrieved_ids[:k])
relevant = set(relevant_ids)
return len(retrieved_k & relevant) / len(relevant)
# Récupérés : [A, B, C, D, E], Pertinents : [A, C, F]
# Rappel@5 = 2/3 = 0.67
MRR (Mean Reciprocal Rank)
def reciprocal_rank(retrieved_ids, relevant_ids):
"""À quelle hauteur se trouve le premier document pertinent ?"""
for i, doc_id in enumerate(retrieved_ids):
if doc_id in relevant_ids:
return 1 / (i + 1)
return 0
# Si le premier pertinent est à la position 3 : RR = 1/3 = 0.33
Mesures de génération
Fidélité
La réponse utilise-t-elle UNIQUEMENT les informations du contexte ?
# Haute fidélité :
# Contexte : "La politique permet des retours sous 30 jours"
# Réponse : "Vous pouvez retourner les articles sous 30 jours"
# Faible fidélité (hallucination) :
# Contexte : "La politique permet des retours sous 30 jours"
# Réponse : "Vous pouvez retourner les articles sous 60 jours pour un remboursement complet"
Pertinence de la réponse
La réponse répond-elle réellement à la question ?
Pertinence du contexte
Les segments récupérés sont-ils pertinents pour la question ?
Résumé des mesures
| Mesure | Ce qu'elle mesure | Cible |
|---|---|---|
| Précision@K | Pertinence récupérée | >0.8 |
| Rappel@K | Couverture | >0.9 |
| MRR | Qualité du classement | >0.7 |
| Fidélité | Pas d'hallucinations | >0.9 |
| Pertinence | Qualité de la réponse | >0.8 |