Skip to main content
A pontuação de avaliações é baseada em Python. Cada tarefa define um avaliador Python com um de três contratos: O Python é executado no serviço de sandbox. Não passe chaves de API ou credenciais de provedores para o código do avaliador. Use ctx.responses_create e ctx.embeddings_create para pontuação baseada em modelo.

Declaração do avaliador

Use código-fonte embutido para avaliadores curtos:
Use arquivos enviados para avaliadores reutilizáveis:
Campos: Forneça source ou file_id.

Contrato de amostra

Avaliadores de amostra definem:
Eles também podem aceitar ctx:
sample descreve a saída do modelo:
item contém a linha do conjunto de dados, além de campos de conveniência:
Os campos exatos da linha dependem do seu conjunto de dados e pré-processador.

Retornar uma única pontuação

Retorne um float finito quando a tarefa tiver uma métrica. O MKA1 o armazena em metric_id.
Se metric_id for omitido, a chave de pontuação será score.

Retornar várias pontuações

Retorne um dict com um objeto scores quando a tarefa tiver várias métricas.
Somente valores numéricos finitos são armazenados em scores. O objeto opcional judge é preservado na amostra para depuração e painéis.

Resultados inválidos

Os seguintes resultados se tornam inválidos e recebem pontuação zero:
  • Exceções.
  • Floats não finitos, como NaN ou Infinity.
  • Retornos booleanos.
  • Strings ou outros retornos que não sejam dict nem número.
  • Dicts sem qualquer pontuação numérica finita.
A carga útil judge da amostra inclui a carga útil inválida bruta e os detalhes do erro.

Contrato de lote

Avaliadores de lote definem:
Eles são executados uma vez por tarefa e modelo durante a finalização. Use-os quando a métrica precisar de todo o conjunto de amostras. Cada amostra de lote contém:
Retorne métricas agregadas:
Retorne atualizações de amostras quando quiser adicionar pontuações por amostra, detalhes do juiz ou saídas extraídas corrigidas:
Campos de atualização de amostra: Se uma tarefa declarar metrics, IDs de métricas de lote inesperados serão removidos dos agregados finais. Isso protege os painéis contra desvios acidentais de métricas.

Avaliadores baseados em modelo

Use contract: "model_backed" quando o Python precisar de chamadas de modelo ou embedding. O código Python solicita uma chamada de ferramenta. O Gateway realiza a chamada com o contexto autenticado da execução e retorna o resultado ao sandbox.
A execução deve definir judge_model e embedding_model quando o avaliador usar model="auto":
Se o Python passar um ID de modelo explícito, esse modelo explícito será usado. Se passar model="auto" ou omitir model, o MKA1 usará o judge_model ou embedding_model da execução.

LLM como juiz

ctx.responses_create aceita o mesmo formato de solicitação da API de Responses do MKA1, exceto que o sistema de avaliações força stream=false, store=true e background=false. As respostas do juiz são armazenadas e podem ser auditadas como o tráfego normal de Responses.

Similaridade de embedding

ctx.embeddings_create é roteado pela API de Embeddings do MKA1. O uso é registrado no contexto autenticado da execução.

Pré-processadores Python

Pré-processadores não são avaliadores, mas usam o mesmo modelo de execução em sandbox e regras de carregamento de arquivos. Eles são executados antes da renderização do prompt. Pré-processador de linha:
Pré-processador de lote:
Declare-os em uma tarefa:

Receitas de pontuação comuns

Correspondência exata

Correspondência exata sem distinção entre maiúsculas e minúsculas

Tolerância numérica

F1 de tokens

F1 macro com grade_batch

Depuração de avaliadores

Use primeiro os detalhes da amostra:
curl
Verifique: Correções comuns:

Modelo de segurança

Avaliadores e pré-processadores Python são executados no serviço de sandbox. Eles são destinados à lógica de avaliação, não a fluxos de trabalho arbitrários de aplicações. Tenha estas regras em mente:
  • Não coloque segredos no código-fonte do avaliador, nas linhas do conjunto de dados ou nos metadados.
  • Não espere credenciais de rede brutas dentro do Python.
  • Use ctx.responses_create e ctx.embeddings_create para chamadas de modelo.
  • Mantenha os arquivos Python enviados restritos à equipe proprietária da suíte.
  • Prefira arquivos de avaliador enviados para lógica reutilizável, para que as versões da suíte acompanhem claramente suas dependências.
A API de avaliações preserva os detalhes das chamadas de modelo que consegue observar, incluindo response_ids candidatos e cargas úteis judge do avaliador, para que você possa auditar como as pontuações foram produzidas.