Aller au contenu principal

É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 :

Python
%pip install deepeval

Quick start

Pour appeler directement un évaluateur DeepEval :

Python
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():

Python
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

AnswerRelevancy

La sortie est-elle pertinente par rapport à la query d'entrée ?

Associer

Faithfulness

La sortie est-elle factuellement conforme au contexte de récupération ?

Associer

ContextualRecall

Le contexte de récupération contient-il toutes les informations nécessaires ?

Associer

ContextualPrecision

Les nœuds pertinents sont-ils classés plus haut que les non-pertinents ?

Associer

ContextualRelevancy

Le contexte de récupération est-il pertinent pour la query ?

Associer

Évaluateur

Qu'est-ce que cela évalue ?

Documents DeepEval

AnswerRelevancy

La sortie est-elle pertinente par rapport à la query d'entrée ?

Associer

Faithfulness

La sortie est-elle factuellement conforme au contexte de récupération ?

Associer

ContextualRecall

Le contexte de récupération contient-il toutes les informations nécessaires ?

Associer

ContextualPrecision

Les nœuds pertinents sont-ils classés plus haut que les non-pertinents ?

Associer

ContextualRelevancy

Le contexte de récupération est-il pertinent pour la query ?

Associer

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

TaskCompletion

L’agent termine-t-il avec succès sa tâche assignée ?

Associer

ToolCorrectness

L'agent utilise-t-il les bons outils ?

Associer

ArgumentCorrectness

Les arguments de l'outil sont-ils corrects ?

Associer

StepEfficiency

L'agent prend-il un chemin optimal ?

Associer

PlanAdherence

L’agent suit-il son plan ?

Associer

PlanQuality

Le plan de l'agent est-il bien structuré ?

Associer

Évaluateur

Qu'est-ce que cela évalue ?

Documents DeepEval

TaskCompletion

L’agent termine-t-il avec succès sa tâche assignée ?

Associer

ToolCorrectness

L'agent utilise-t-il les bons outils ?

Associer

ArgumentCorrectness

Les arguments de l'outil sont-ils corrects ?

Associer

StepEfficiency

L'agent prend-il un chemin optimal ?

Associer

PlanAdherence

L’agent suit-il son plan ?

Associer

PlanQuality

Le plan de l'agent est-il bien structuré ?

Associer

Métriques conversationnelles

Ces évaluateurs évaluent la qualité de l'IA conversationnelle multi-tours.

Évaluateur

Qu'est-ce que cela évalue ?

Documents DeepEval

TurnRelevancy

Chaque échange est-il pertinent pour la conversation ?

Associer

RoleAdherence

L'assistant maintient-il son rôle attribué ?

Associer

KnowledgeRetention

L'agent conserve-t-il les informations entre les interactions ?

Associer

ConversationCompleteness

Toutes les questions des utilisateurs sont-elles traitées ?

Associer

GoalAccuracy

La conversation atteint-elle son objectif ?

Associer

ToolUse

L’agent utilise-t-il les outils de manière appropriée dans la conversation ?

Associer

TopicAdherence

La conversation reste-t-elle sur le sujet ?

Associer

Évaluateur

Qu'est-ce que cela évalue ?

Documents DeepEval

TurnRelevancy

Chaque échange est-il pertinent pour la conversation ?

Associer

RoleAdherence

L'assistant maintient-il son rôle attribué ?

Associer

KnowledgeRetention

L'agent conserve-t-il les informations entre les interactions ?

Associer

ConversationCompleteness

Toutes les questions des utilisateurs sont-elles traitées ?

Associer

GoalAccuracy

La conversation atteint-elle son objectif ?

Associer

ToolUse

L’agent utilise-t-il les outils de manière appropriée dans la conversation ?

Associer

TopicAdherence

La conversation reste-t-elle sur le sujet ?

Associer

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

Bias

Le résultat contient-il du contenu biaisé ?

Associer

Toxicity

La sortie contient-elle un langage toxique ?

Associer

NonAdvice

Le modèle fournit-il des conseils inappropriés dans des domaines restreints ?

Associer

Misuse

Le résultat pourrait-il être utilisé à des fins nuisibles ?

Associer

PIILeakage

La sortie divulgue-t-elle des informations personnelles identifiables ?

Associer

RoleViolation

L'assistant sort-il de son rôle attribué ?

Associer

Évaluateur

Qu'est-ce que cela évalue ?

Documents DeepEval

Bias

Le résultat contient-il du contenu biaisé ?

Associer

Toxicity

La sortie contient-elle un langage toxique ?

Associer

NonAdvice

Le modèle fournit-il des conseils inappropriés dans des domaines restreints ?

Associer

Misuse

Le résultat pourrait-il être utilisé à des fins nuisibles ?

Associer

PIILeakage

La sortie divulgue-t-elle des informations personnelles identifiables ?

Associer

RoleViolation

L'assistant sort-il de son rôle attribué ?

Associer

Autres métriques

Évaluateur

Qu'est-ce que cela évalue ?

Documents DeepEval

Hallucination

Le LLM invente-t-il des informations ne figurant pas dans le contexte ?

Associer

Summarization

Le résumé est-il exact et complet ?

Associer

JsonCorrectness

La sortie JSON correspond-elle au schéma attendu ?

Associer

PromptAlignment

La sortie correspond-elle aux instructions du prompt ?

Associer

Évaluateur

Qu'est-ce que cela évalue ?

Documents DeepEval

Hallucination

Le LLM invente-t-il des informations ne figurant pas dans le contexte ?

Associer

Summarization

Le résumé est-il exact et complet ?

Associer

JsonCorrectness

La sortie JSON correspond-elle au schéma attendu ?

Associer

PromptAlignment

La sortie correspond-elle aux instructions du prompt ?

Associer

Métriques non-LLM

Évaluateur

Qu'est-ce que cela évalue ?

Documents DeepEval

ExactMatch

La sortie correspond-elle exactement à la sortie attendue ?

Associer

PatternMatch

La sortie correspond-elle à un modèle d'expression rationnelle ?

Associer

Évaluateur

Qu'est-ce que cela évalue ?

Documents DeepEval

ExactMatch

La sortie correspond-elle exactement à la sortie attendue ?

Associer

PatternMatch

La sortie correspond-elle à un modèle d'expression rationnelle ?

Associer

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 :

Python
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.

Python
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.