Aller au contenu principal

Juge de l'exactitude

Le juge Correctness évalue si la réponse de votre application GenAI est factuellement correcte en la comparant aux informations de vérité terrain fournies (expected_facts ou expected_response). Ce juge LLM intégré est conçu pour évaluer les réponses d’application par rapport aux réponses correctes connues.

Pour plus de détails sur l'API, consultez la documentation MLflow.

Pour une documentation détaillée et des exemples supplémentaires, consultez la documentation du juge de correction MLflow.

Prérequis pour l'exécution des exemples

  1. Installez MLflow et les packages requis.

    Python
    %pip install --upgrade "mlflow[databricks]>=3.4.0"
    dbutils.library.restartPython()
  2. Créez une expérience MLflow en suivant le guide de démarrage rapide de configuration de votre environnement.

Exemples d’utilisation

Python
from mlflow.genai.scorers import Correctness

correctness_judge = Correctness()

# Example 1: Response contains expected facts
feedback = correctness_judge(
inputs={"request": "What is MLflow?"},
outputs={"response": "MLflow is the largest open source AI engineering platform for agents, LLMs, and ML models."},
expectations={
"expected_facts": [
"MLflow is open-source",
"MLflow is an AI engineering platform"
]
}
)

print(feedback.value) # "yes"
print(feedback.rationale) # Explanation of which facts are supported

# Example 2: Response missing or contradicting facts
feedback = correctness_judge(
inputs={"request": "When was MLflow released?"},
outputs={"response": "MLflow was released in 2017."},
expectations={"expected_facts": ["MLflow was released in June 2018"]}
)

# Example 3: Using expected_response instead of expected_facts
feedback = correctness_judge(
inputs={"request": "What is the capital of France?"},
outputs={"response": "The capital of France is Paris."},
expectations={"expected_response": "Paris is the capital of France."}
)

Alternative : Utilisation de expected_response

Vous pouvez également utiliser expected_response au lieu de expected_facts:

Python
eval_dataset_with_response = [
{
"inputs": {"query": "What is MLflow?"},
"outputs": {
"response": "MLflow is the largest open source AI engineering platform for agents, LLMs, and ML models."
},
"expectations": {
"expected_response": "MLflow is the largest open source AI engineering platform for agents, LLMs, and ML models. MLflow enables teams of all sizes to debug, evaluate, monitor, and optimize their AI applications."
},
}
]

# Run evaluation with expected_response
eval_results = mlflow.genai.evaluate(
data=eval_dataset_with_response,
scorers=[Correctness()]
)
astuce

Utilisez expected_facts plutôt que expected_response pour une évaluation plus flexible — la réponse n'a pas besoin de correspondre mot pour mot, mais de contenir les faits clés.

Sélectionnez le LLM qui alimente le juge

Par default, les juges intégrés utilisent un LLM hébergé par Databricks conçu pour effectuer des évaluations de qualité de l'IA. Vous pouvez modifier le modèle de juge en utilisant l'argument model lorsque vous créez le juge. Le modèle doit être spécifié au format <provider>:/<model-name>, où <provider> est un fournisseur de modèle compatible LiteLLM. Si vous utilisez databricks comme fournisseur de modèle, le nom du modèle est le même que le nom de l'Endpoint de service.

Vous pouvez personnaliser le juge en fournissant un modèle de juge différent :

Python
from mlflow.genai.scorers import Correctness

# Use a different judge model
correctness_judge = Correctness(
model="databricks:/databricks-gpt-5-mini" # Or any LiteLLM-compatible model
)

# Use in evaluation
eval_results = mlflow.genai.evaluate(
data=eval_dataset,
scorers=[correctness_judge]
)

Interpréter les résultats

Le juge renvoie un objet Feedback avec :

  • value : « oui » si la réponse est correcte, « non » si elle est incorrecte
  • rationale ** ** : Explication détaillée des faits pris en charge ou manquants

Ressources supplémentaires