Évaluateurs DeepEval
DeepEval est un framework d'évaluation complet pour les applications LLM qui fournit des métriques pour les systèmes RAG, les agents, l'IA conversationnelle et l'évaluation de la sécurité. MLflow s'intègre à DeepEval afin que vous puissiez utiliser les métriques DeepEval comme scorers.
Exigences
Installez le package deepeval :
%pip install deepeval
Quick start
Pour appeler directement un évaluateur DeepEval :
from mlflow.genai.scorers.deepeval import AnswerRelevancy
scorer = AnswerRelevancy(threshold=0.7, model="databricks:/databricks-gpt-5-mini")
feedback = scorer(
inputs="What is MLflow?",
outputs="MLflow is an open-source AI engineering platform for agents and LLMs.",
)
print(feedback.value) # "yes" or "no"
print(feedback.metadata["score"]) # 0.85
Pour appeler les évaluateurs DeepEval à l’aide de mlflow.genai.evaluate():
import mlflow
from mlflow.genai.scorers.deepeval import AnswerRelevancy, Faithfulness
eval_dataset = [
{
"inputs": {"query": "What is MLflow?"},
"outputs": "MLflow is an open-source AI engineering platform for agents and LLMs.",
},
{
"inputs": {"query": "How do I track experiments?"},
"outputs": "You can use mlflow.start_run() to begin tracking experiments.",
},
]
results = mlflow.genai.evaluate(
data=eval_dataset,
scorers=[
AnswerRelevancy(threshold=0.7, model="databricks:/databricks-gpt-5-mini"),
Faithfulness(threshold=0.8, model="databricks:/databricks-gpt-5-mini"),
],
)
Évaluateurs DeepEval disponibles
Métriques RAG
Ces évaluateurs mesurent la qualité de la récupération et la génération de réponses dans les applications de génération augmentée de récupération (RAG).
Évaluateur | Qu'est-ce que cela évalue ? | Documents DeepEval |
|---|---|---|
La sortie est-elle pertinente par rapport à la query d'entrée ? | ||
La sortie est-elle factuellement conforme au contexte de récupération ? | ||
Le contexte de récupération contient-il toutes les informations nécessaires ? | ||
Les nœuds pertinents sont-ils classés plus haut que les non-pertinents ? | ||
Le contexte de récupération est-il pertinent pour la query ? |
Mesures Agentic
Ces évaluateurs évaluent le comportement des agents d'IA, y compris l'accomplissement des tâches et l'utilisation des outils.
Évaluateur | Qu'est-ce que cela évalue ? | Documents DeepEval |
|---|---|---|
L’agent termine-t-il avec succès sa tâche assignée ? | ||
L'agent utilise-t-il les bons outils ? | ||
Les arguments de l'outil sont-ils corrects ? | ||
L'agent prend-il un chemin optimal ? | ||
L’agent suit-il son plan ? | ||
Le plan de l'agent est-il bien structuré ? |
Métriques conversationnelles
Ces évaluateurs évaluent la qualité de l'IA conversationnelle multi-tours.
Évaluateur | Qu'est-ce que cela évalue ? | Documents DeepEval |
|---|---|---|
Chaque échange est-il pertinent pour la conversation ? | ||
L'assistant maintient-il son rôle attribué ? | ||
L'agent conserve-t-il les informations entre les interactions ? | ||
Toutes les questions des utilisateurs sont-elles traitées ? | ||
La conversation atteint-elle son objectif ? | ||
L’agent utilise-t-il les outils de manière appropriée dans la conversation ? | ||
La conversation reste-t-elle sur le sujet ? |
Métriques de sécurité
Ces évaluateurs évaluent la sécurité et la responsabilité des sorties du modèle.
Évaluateur | Qu'est-ce que cela évalue ? | Documents DeepEval |
|---|---|---|
Le résultat contient-il du contenu biaisé ? | ||
La sortie contient-elle un langage toxique ? | ||
Le modèle fournit-il des conseils inappropriés dans des domaines restreints ? | ||
Le résultat pourrait-il être utilisé à des fins nuisibles ? | ||
La sortie divulgue-t-elle des informations personnelles identifiables ? | ||
L'assistant sort-il de son rôle attribué ? |
Autres métriques
Évaluateur | Qu'est-ce que cela évalue ? | Documents DeepEval |
|---|---|---|
Le LLM invente-t-il des informations ne figurant pas dans le contexte ? | ||
Le résumé est-il exact et complet ? | ||
La sortie JSON correspond-elle au schéma attendu ? | ||
La sortie correspond-elle aux instructions du prompt ? |
Métriques non-LLM
Évaluateur | Qu'est-ce que cela évalue ? | Documents DeepEval |
|---|---|---|
La sortie correspond-elle exactement à la sortie attendue ? | ||
La sortie correspond-elle à un modèle d'expression rationnelle ? |
Créez un évaluateur par nom
Vous pouvez créer dynamiquement un évaluateur à l'aide de get_scorer en passant le nom de la métrique sous forme de chaîne :
from mlflow.genai.scorers.deepeval import get_scorer
scorer = get_scorer(
metric_name="AnswerRelevancy",
threshold=0.7,
model="databricks:/databricks-gpt-5-mini",
)
feedback = scorer(
inputs="What is MLflow?",
outputs="MLflow is a platform for ML workflows.",
)
Configuration
Les évaluateurs DeepEval acceptent des paramètres spécifiques aux métriques en tant qu'arguments nommés pour le constructeur. Les métriques basées sur un LLM nécessitent un paramètre model.
from mlflow.genai.scorers.deepeval import AnswerRelevancy, TurnRelevancy
# LLM-based metric with common parameters
scorer = AnswerRelevancy(
model="databricks:/databricks-gpt-5-mini",
threshold=0.7,
include_reason=True,
)
# Metric-specific parameters
conversational_scorer = TurnRelevancy(
model="openai:/gpt-4o",
threshold=0.8,
window_size=3,
strict_mode=True,
)
Pour les paramètres spécifiques aux métriques et les options d'utilisation avancées, consultez la documentation DeepEval.