Pular para o conteúdo principal

Juiz de correção

O juiz Correctness avalia se a resposta do seu aplicativo GenAI é factualmente correta comparando-a com as informações básicas fornecidas (expected_facts ou expected_response).

Este juiz LLM integrado foi projetado para avaliar as respostas da aplicação em relação às respostas corretas conhecidas.

Pré-requisitos para executar os exemplos

  1. Instale o site MLflow e o pacote necessário

    Python
    %pip install --upgrade "mlflow[databricks]>=3.4.0"
    dbutils.library.restartPython()
  2. Crie um experimento MLflow seguindo o início rápido de configuração do ambiente.

Exemplos de uso

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 an open-source platform for managing the ML lifecycle."},
expectations={
"expected_facts": [
"MLflow is open-source",
"MLflow is a platform for ML lifecycle"
]
}
)

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."}
)

Alternativa: usar expected_response

Você também pode usar expected_response em vez de expected_facts:

Python
eval_dataset_with_response = [
{
"inputs": {"query": "What is MLflow?"},
"outputs": {
"response": "MLflow is an open-source platform for managing the ML lifecycle."
},
"expectations": {
"expected_response": "MLflow is an open-source platform for managing the machine learning lifecycle, including experimentation, reproducibility, and deployment."
},
}
]

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

Use expected_facts em vez de expected_response para uma avaliação mais flexível - a resposta não precisa corresponder palavra por palavra, basta conter os fatos key .

Selecione o LLM que capacita o juiz.

Por default, esses juízes usam um LLM hospedado Databricks , projetado para realizar avaliações de qualidade do GenAI. Você pode alterar o modelo de juiz usando o argumento model na definição do juiz. O modelo deve ser especificado no formato <provider>:/<model-name>, onde <provider> é um provedor de modelo compatível com LiteLLM. Se você usar databricks como provedor de modelo, o nome do modelo será o mesmo que o nome do endpoint de serviço.

Você pode personalizar o juiz fornecendo um modelo de juiz diferente:

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]
)

Para obter uma lista dos modelos suportados, consulte a documentação do MLflow.

Interpretar resultados

O juiz retorna um objeto Feedback com:

  • value : " sim " se a resposta estiver correta, " não " se incorreta
  • rationale : Explicação detalhada de quais fatos estão comprovados ou ausentes

Próximos passos