//Padrão

Pontuação composta: pesos que você controla

Quando o ranking sai errado, você quer mudar um coeficiente e rodar de novo — não reescrever um parágrafo de instrução e torcer.

Existe um pedido que parece razoável e quase sempre dá errado: “dê uma nota de 0 a 100 para este candidato”. O modelo devolve um número, o número parece plausível, e você não tem ideia do que ele pesou. Quando o topo do ranking não faz sentido, a única alavanca é reescrever a instrução e esperar que o número ande na direção certa.

A pontuação composta é o padrão que desmonta esse pedido. Em vez de uma pergunta grande, várias perguntas pequenas e independentes; em vez de a nota final sair do modelo, ela sai de uma linha de código com pesos que você escreveu.

O desenho

O exemplo oficial é triagem de currículos para vagas de engenharia. Quatro perguntas Score, cinco níveis cada, cada uma sobre uma dimensão só:

DimensãoO que a pergunta mede
python_depthprofundidade de experiência em Python
team_leadershipexperiência em liderar ou gerir time
system_designexperiência em desenhar sistemas grandes
generalistevidência de aprender fora da especialidade

As quatro vão na mesma chamada, pelo motivo descrito em fan-out especulativo: o currículo entra uma vez e as perguntas são avaliadas em paralelo contra ele.

Depois vem a parte que é sua. Cada nota é normalizada — dividida por 4, o número do nível mais alto — e combinada com pesos:

py      = r.answers["python_depth"].score / 4
lead    = r.answers["team_leadership"].score / 4
arq     = r.answers["system_design"].score / 4
geral   = r.answers["generalist"].score / 4

# Especialista sênior
nota_ic = 0.40 * py + 0.10 * lead + 0.40 * arq + 0.10 * geral

# Gerente de engenharia
nota_em = 0.15 * py + 0.40 * lead + 0.20 * arq + 0.25 * geral

Os dois conjuntos de pesos são do exemplo oficial. O detalhe importante não são os valores: é que o mesmo bloco de respostas serve os dois perfis. Trocar de vaga não é trocar de prompt, é trocar de vetor de pesos.

O que o padrão ganha além do número

Um ponto de ajuste em vez de um texto para reescrever. A própria página oficial coloca isso como o ganho principal: se os candidatos do topo não batem com a expectativa, você ajusta o peso e encontra o equilíbrio. Um coeficiente é uma mudança revisável em um diff; um parágrafo de instrução reescrito não é.

Pesos no repositório, com histórico. A regra de negócio que decide o ranking passa a viver em código versionado, com autor, data e revisão. Isso resolve uma discussão recorrente: quando alguém pergunta “por que este ficou na frente”, a resposta é uma conta, não uma opinião.

Perguntas reutilizáveis. system_design serve a qualquer vaga técnica. Cada dimensão bem escrita é um ativo que atravessa fluxos, o que não acontece com uma instrução gigante desenhada para um caso.

Erro localizável. Quando a nota composta erra, você olha as quatro notas e descobre qual delas estava fora. Com a nota única, o erro é opaco.

O que ele obriga a arquitetura a ter

Dimensões de verdade independentes. Se duas perguntas medem a mesma coisa, o peso combinado está dobrado sem que ninguém tenha decidido isso. Vale olhar a correlação entre dimensões nos seus próprios dados antes de fixar pesos.

Normalização explícita. Score com três níveis vai de 0 a 2; com cinco, de 0 a 4. Misturar sem dividir dá peso extra à régua mais longa, por acidente. Desenhar as réguas é assunto de score.

Nenhuma aritmética dentro do modelo. A página de limites do jev-1.13 é direta: o modelo não é calculadora, e os níveis são fracos em calibração numérica. A soma ponderada pertence ao código. Os nove modos de falha estão em limites do Jev.

Um teste de regressão sobre casos conhecidos. Como a nota é determinística dado o bloco de respostas, você pode congelar vinte casos avaliados por pessoas e rodar o cálculo a cada mudança de peso.

Quando não usar

Quando as dimensões não são independentes. Se “senioridade” e “anos de experiência” andam sempre juntas, somar as duas é contar a mesma evidência duas vezes. Pesos só significam algo sobre eixos separados.

Quando você precisa de um valor absoluto, não de uma ordem. O padrão produz uma nota comparável dentro do mesmo lote e com os mesmos pesos. Ela não é uma medida do mundo, e mudar os pesos muda todas as notas. Se alguém vai publicar “8,4 de 10” para um usuário final, o número precisa de outro tratamento.

Quando uma dimensão é eliminatória. Requisito obrigatório não é peso, é filtro. Um candidato sem o certificado exigido não deve ser compensado por notas altas nas outras dimensões; isso é um if antes do cálculo.

Quando a nota composta vira decisão irreversível sozinha. Ordenar é seguro; agir não. Para transformar a nota em ação automática, o corte precisa dos cuidados de roteamento por confiança, e a confiança de cada dimensão precisa entrar na conta — a nota composta não herda a confiança das partes.

Por onde continuar

Para desenhar cada dimensão sem sobreposição, veja critérios que separam e qual primitiva usar. Quando a combinação em vez de linear precisa ser hierárquica — escolher um ramo e só depois refinar — o padrão vizinho é beam search hierárquico. O índice está em padrões.

Perguntas frequentes

Por que não pedir a nota final direto ao modelo?

Porque aí você perde o controle sobre o peso de cada dimensão e a capacidade de explicar a nota. Uma pergunta grande esconde vários julgamentos num número; quando ele sai errado, não há coeficiente para ajustar, só texto para reescrever. A própria documentação recomenda decompor julgamentos amplos em perguntas atômicas e combinar no código.

Como eu normalizo notas de Score com quantidades diferentes de níveis?

Dividindo cada nota pelo número do nível mais alto, que é a quantidade de níveis menos um. O exemplo oficial usa quatro dimensões com cinco níveis cada e divide por 4, o que põe tudo entre 0 e 1 antes de aplicar os pesos.

Posso interpolar entre dois níveis para estimar um valor exato?

Não. A página de Score 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, mas não para reconstruir um valor exato entre dois níveis.

Quantas dimensões são muitas?

O limite prático é de leitura, não de API: cada dimensão é uma linha que alguém revisa. O exemplo oficial usa quatro. Se duas dimensões sempre andam juntas nos seus dados, elas provavelmente são a mesma pergunta escrita duas vezes.

A pontuação composta serve para decidir ou para ordenar?

Nasce para ordenar. Transformar a nota composta em decisão automática exige um corte, e esse corte tem os mesmos cuidados do roteamento por confiança: acompanha o risco da ação e precisa de um destino para os casos ambíguos.

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