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