Pular para o conteúdo principal

Juízes personalizados

Os juízes personalizados do MLflow são pontuadores baseados em LLM que permitem usar linguagem natural para definir diretrizes de pontuação complexas e sutis para agentes.

Embora os juízes LLM integrados MLflow ofereçam excelentes pontos de partida para dimensões de qualidade comuns, os juízes personalizados criados usando make_judge() oferecem controle total sobre os critérios de avaliação.

Instruções e variáveis padrão​

Para criar um avaliador, você fornece um prompt com instruções em linguagem natural sobre como avaliar a qualidade do seu agente. make_judge() aceita variáveis padrão para acessar as entradas, saídas, saídas esperadas ou comportamentos do agente e até mesmo rastreamentos completos.

Suas instruções devem incluir pelo menos uma variável padrão, mas você não precisa usar todas elas.

  • {{ inputs }} - Dados de entrada fornecidos ao agente
  • {{ outputs }} - Dados de saída gerados pelo seu agente
  • {{ expectations }} - Verdades fundamentais ou resultados esperados
  • {{ trace }} - O histórico completo da execução do seu agente

Estas são as únicas variáveis permitidas. Variáveis personalizadas como {{ question }} gerarão erros de validação para garantir um comportamento consistente e evitar problemas de injeção de padrão.

Juízes baseados em campos​

Os juízes personalizados mais simples pontuam uma única interação a partir de seus campos: a requisição ({{ inputs }}), a resposta do agente ({{ outputs }}) e, quando você tiver a verdade fundamental, a resposta esperada ({{ expectations }}). Use-os para avaliar a qualidade da resposta sem inspecionar os passos internos do agente.

O exemplo a seguir define um juiz que verifica se a resposta corresponde à resposta esperada:

Python
from mlflow.genai.judges import make_judge
from typing import Literal

# Field-based judge: compare the response to the expected answer
correctness_judge = make_judge(
name="answer_correctness",
instructions=(
"Given the request in {{ inputs }}, decide whether the response in "
"{{ outputs }} matches the expected answer in {{ expectations }}.\n\n"
"Return 'correct' only if the response conveys the same facts as the "
"expected answer. Otherwise, return 'incorrect'."
),
feedback_value_type=Literal["correct", "incorrect"],
)

Ao contrário dos juízes baseados em rastreamento, os juízes baseados em campos não exigem que você especifique um model — eles são executados no modelo de juiz default. Omit {{ expectations }} when you don't have ground truth, for example to score tone or format from the inputs and outputs alone.

Juízes baseados em rastreamento​

Os juízes baseados em rastreamento analisam os rastros de execução para entender o que aconteceu durante a execução do agente. Eles exploram rastros de forma autônoma usando ferramentas do Protocolo de Contexto do Modelo (MCP) e podem:

  • Validar padrões de uso da ferramenta
  • Identificar gargalos de desempenho
  • Investigar falhas de execução
  • Verifique o fluxo de trabalho em várias etapas

O exemplo a seguir define um avaliador que analisa a correção da chamada da ferramenta por meio da análise de rastreamentos:

Python
from mlflow.genai.judges import make_judge
from typing import Literal

# Agent judge for tool calling correctness
tool_usage_judge = make_judge(
name="tool_usage_validator",
instructions=(
"Analyze the {{ trace }} to verify correct tool usage.\n\n"
"Check that the agent selected appropriate tools for the user's request "
"and called them with correct parameters."
),
feedback_value_type=Literal["correct", "incorrect"],
model="databricks:/databricks-gpt-5-mini" # Required for trace-based judges
)

Para que os juízes baseados em rastreamento analisem o rastreamento completo, o argumento model deve ser especificado em make_judge().

Para um tutorial completo, consulte Criar um juiz personalizado usando make_judge().

Requisitos do modelo para juízes baseados em rastreamento​

Juízes que utilizam métodos baseados em vestígios precisam de um modelo capaz de realizar análises de vestígios. O modelo pode ser servido por:

Modelos recomendados:

  • databricks:/databricks-gpt-5-mini
  • databricks:/databricks-gpt-5
  • databricks:/databricks-gpt-oss-120b
  • databricks:/databricks-claude-opus-4-5

Melhores práticas para redigir instruções para juízes​

Seja específico quanto ao formato de saída esperado. Suas instruções devem especificar claramente o formato que o juiz deve devolver:

  • Respostas categóricas : Liste valores específicos (por exemplo, 'totalmente_resolvido', 'parcialmente_resolvido', 'necessita_de_acompanhamento')
  • RespostasBoolean : Declare explicitamente que o juiz deve retornar true ou false
  • Pontuações numéricas : Especifique o intervalo de pontuação e o significado de cada pontuação.

Desmembre avaliações complexas. Para tarefas de avaliação complexas, estruture suas instruções em seções claras:

  • O que avaliar
  • Que informações examinar?
  • Como chegar a uma conclusão?
  • Qual formato devo usar para retornar?

Alinhar juízes com especialistas humanos​

O juiz base é um ponto de partida. À medida que você coleta feedback de especialistas sobre as saídas do seu aplicativo, você pode alinhar os juízes LLM ao feedback para melhorar ainda mais a precisão do juiz. Consulte Alinhar juízes LLM com feedback humano.

Próximas etapas​

Consulte Criar um juiz personalizado para um tutorial prático que demonstra juízes padrão e baseados em traçado.

Próxima etapa: Avaliadores baseados em código