//Primitivas

Como desenhar os níveis de um Score

O modelo vê a descrição do nível e nada mais. Nem o número, nem os vizinhos. Isso muda tudo na hora de escrever a régua.

Um Score é uma régua descrita em palavras. Você escreve os degraus, o modelo posiciona o conteúdo entre eles e devolve uma nota que pode cair no meio do caminho, mais a distribuição e a confiança.

A régua é a parte que você controla, e é onde quase toda a qualidade da resposta é decidida.

A regra que explica todas as outras

Cada nível é avaliado sozinho, contra o state. A documentação é explícita: o modelo recebe as descrições e nada mais. Ele não vê o número do nível, não vê os níveis vizinhos e não sabe qual vem antes.

Três consequências saem daí, e elas não são óbvias:

  • “pior que o nível anterior” não significa nada para o modelo;
  • pôr números na descrição ou na instrução não ajuda;
  • cada descrição precisa ser autossuficiente, porque é tudo que aquele nível tem.

O exemplo oficial mede isso. Com a instrução “avalie a severidade de 0 a 2, onde 2 é o pior” e criteria igual a ["0", "1", "2"], um relato de botão desalinhado por poucos pixels recebeu nota 0,57 com confiança 0,35, com a probabilidade dividida entre 0,43 e 0,57. O mesmo relato, com os três níveis descritos em palavras, recebeu 0,00 com confiança 1,00.

As cinco regras de redação

Descreva situações, não graus. “Funcionalidade degradada, com contorno possível” dá ao modelo algo para comparar com o state. “Moderadamente grave” não dá.

Um Score, uma dimensão. A documentação usa um exemplo direto: se um nível diz “pontual e inteligente e experiente”, a pergunta mede três coisas, e um candidato alto em uma e baixo em outra não tem onde ser posicionado. A confiança cai e a nota significa menos. Divida em um Score por dimensão e combine no código — o padrão está em pontuação composta.

Use quantos níveis você conseguir descrever de forma distinta, até dez. Três está bom. Não acrescente um nível que você não sabe descrever: ele vira ruído entre os vizinhos.

Dê nível próprio ao extremo raro que exige ação diferente. O exemplo oficial é uma escala de sentimento que termina em “muito irritado”: sem um nível “abusivo ou ameaçador”, as duas mensagens recebem nota perto do topo e a nota sozinha não distingue as duas ações.

Se não existe meio-termo, não é Score. Quando a resposta é uma entre categorias sem ordem, use Choice; quando é sim ou não, use Noul. A escolha entre as três está em qual primitiva usar.

Como a nota se comporta

O exemplo oficial, com a régua de severidade de três níveis, mostra a mecânica com clareza:

EstadoscoreconfidenceProbabilidades
Botão desalinhado por poucos pixels0,01,01,0 / 0,0 / 0,0
Exportação em PDF não faz nada; o CSV resolve1,01,00,0 / 1,0 / 0,0
Exportação trava; parte do time diz que o CSV funciona1,120,810,0 / 0,88 / 0,12
Exportação quebra no Safari e funciona no Chrome1,30,540,0 / 0,7 / 0,3
Ninguém entra; erro 500 em toda tentativa2,01,00,0 / 0,0 / 1,0

Três leituras que a documentação faz questão de deixar escritas:

A nota é a média ponderada dos números dos níveis. No terceiro e no quarto caso a probabilidade se divide entre os níveis 1 e 2, e mais peso no 2 puxa a nota para cima. Ela não mede a fração de clientes sem contorno.

Distribuições diferentes dão a mesma nota. Um 1,0 pode ser toda a massa no nível 1 ou metade no 0 e metade no 2. Por isso probabilities e confidence devem ser lidos junto com a nota — o assunto está em probabilidade não é confiança.

Confiança 1,0 descreve a resposta, não a verdade. Significa que a distribuição pôs toda a probabilidade em um nível. Não é garantia de acerto.

O que a nota fracionária serve para fazer

Serve para ordenar e para comparar com um limiar. Ordenar uma fila de bugs por severidade funciona; arredondar para o nível mais próximo quando o código precisa de um resultado só também funciona — a receita de alinhar entidades faz exatamente isso.

O que a nota não serve para fazer é reconstruir um valor exato. A documentação avisa que os níveis do jev-1.13 são fracos em calibração numérica: dá para checar se a nota passa de um limiar, não para interpolar o número entre dois níveis. Uma régua de faixas de valor diz que a fatura está entre mil e dez mil; ela não diz que a fatura é 4.312,80.

Esse aviso faz parte da lista de nove modos de falha declarados, em limites do Jev.

Normalizar antes de combinar

Quando duas réguas entram na mesma fórmula, elas precisam estar na mesma escala. Uma régua de três níveis vai de 0 a 2; uma de cinco vai de 0 a 4. Somar sem normalizar dá peso extra à régua mais longa, por acidente.

severidade = r.answers["severidade"].score / 2        # 3 níveis
experiencia = r.answers["experiencia"].score / 4      # 5 níveis
prioridade = 0.7 * severidade + 0.3 * experiencia

Quando a confiança cai

A documentação lista três causas para confiança baixa em um Score, e todas apontam para a régua, não para o limiar:

  1. os níveis se sobrepõem para aquele state;
  2. a pergunta mede mais de uma coisa;
  3. o state não diz o bastante para posicionar.

Nenhuma das três se resolve mexendo no corte. Duas se resolvem reescrevendo a régua, e a terceira, mandando o conteúdo certo. Vale testar duas redações da mesma escala com os seus próprios dados: a documentação observa que elas podem se comportar de formas diferentes.

O índice das primitivas está em primitivas, e a página de Score traz o formato da requisição e da resposta.

Perguntas frequentes

Quantos níveis um Score pode ter?

Pelo menos dois e no máximo dez, segundo a documentação oficial. A recomendação é usar quantos você conseguir descrever de forma distinta: três costuma bastar, e não vale acrescentar um nível que você não sabe descrever.

Posso usar só números como descrição de nível?

Pode, e funciona mal. A documentação mostra o caso: com criteria ['0','1','2'] e a instrução de dar nota de 0 a 2, um relato de botão desalinhado recebeu nota 0,57 com confiança 0,35. Com os mesmos três níveis descritos em palavras, o mesmo relato recebeu 0,00 com confiança 1,00.

A nota pode ficar entre dois níveis?

Pode, e é o comportamento normal: a nota é a média ponderada pelas probabilidades dos números dos níveis. Um caso do exemplo oficial recebeu 1,12 com 0,88 de probabilidade no nível 1 e 0,12 no nível 2.

Dá para reconstruir um valor exato interpolando entre níveis?

Não. A documentação avisa que os níveis do jev-1.13 são fracos em calibração numérica: dá para checar se a nota passa de um limiar, não para reconstruir o número exato entre dois níveis.

Duas notas iguais significam a mesma coisa?

Não necessariamente. A documentação observa que distribuições diferentes produzem a mesma nota: 1,0 pode ser toda a massa no nível 1 ou metade no 0 e metade no 2. Leia probabilities e confidence junto com a nota.

O que fazer quando a confiança do Score é baixa?

Investigar a régua antes do limiar. A documentação lista três causas comuns: os níveis se sobrepõem para aquele state, a pergunta mede mais de uma coisa, ou o state não diz o bastante para posicionar.

Quer dominar decisões com IA em português? O curso da comunidade está em pré-venda.

Garantir pré-venda por R$ 499,00

Pré-venda: R$ 499,00 · Após o lançamento: R$ 799,00