Cálculo de reembolso
Como decidimos se o seu modelo supera o Jev, e portanto se o crédito volta, com números que qualquer um pode recalcular.
Todo modelo treinado numa decisão é medido contra o Jev, o modelo de referência do mercado, nos seus próprios exemplos. Se ele não superar o Jev, o crédito volta sozinho para o seu saldo. "Superar" não é "uma métrica por qualquer margem": o cálculo de reembolso pede um ganho que se sustente na reamostragem e nenhuma métrica que desabe.
Os exemplos de teste
Antes do treino, separamos exemplos que o modelo nunca vê:
- 20% dos seus exemplos rotulados, sorteados por resposta para que cada resposta mantenha a sua proporção, até 2.000.
- Quando os seus dados não têm respostas, os exemplos que uma pessoa rotulou no passo de revisão.
O sorteio usa uma semente do dataset, então toda versão de um modelo é medida nos mesmos exemplos. O Jev responde aos mesmos exemplos pela mesma pergunta: as respostas dele servem só para medir, nunca para treinar.
Quatro métricas
Cada sistema recebe quatro notas nos exemplos de teste, todas quanto maior, melhor:
| Métrica | O que ela diz |
|---|---|
macro_f1 | Com que frequência a resposta está certa, com todas as respostas pesando igual, para que uma resposta rara conte tanto quanto uma comum. |
brier_skill | Quão boas são as probabilidades: 1 - mean Brier / 2, de 0 a 1. Premia estar confiante quando acerta e em dúvida quando erra. |
selective_acc_80 | Acurácia nas 80% respostas mais confiantes: o que você obtém ao automatizar as confiantes e mandar o resto para uma pessoa. |
worst_class_f1 | F1 da resposta mais fraca com 5 ou mais exemplos. Nenhuma resposta pode desabar. |
A regra
O ganho ponderado sobre o Jev é
G = 0.5 × Δmacro_f1 + 0.3 × Δbrier_skill + 0.2 × Δselective_acc_80onde Δ é a nossa nota menos a do Jev. O modelo supera o Jev só se as duas condições valerem:
- O ganho é real. Reamostramos os exemplos de teste 2.000 vezes (um bootstrap pareado: o mesmo sorteio para os dois
sistemas) e recalculamos
Ga cada vez. O 5º percentil desses 2.000 valores precisa estar acima de zero:G > 0com 95% de confiança. - Nada desaba. Nenhuma métrica pode ficar abaixo da do Jev por mais que a sua margem: 0,02 para as três primeiras, 0,05
para
worst_class_f1.
Qualquer outro resultado é reembolso, empates incluídos. Quando as probabilidades empatam no topo, os dois sistemas recebem o mesmo benefício da dúvida: a resposta conta como certa se a correta estiver entre as empatadas.
Determinístico
A semente do bootstrap vem do SHA-256 dos textos dos exemplos de teste. Mesmos exemplos, mesmas respostas, mesmos números, sempre.
Verifique você mesmo
Cada modelo tem um arquivo de auditoria (GET /v1/models/{id}/audit): para cada exemplo de teste, o SHA-256 do seu texto, a
resposta correta e as probabilidades dos dois sistemas, mais o relatório com todos os números acima. O verificador refaz o
relatório inteiro com a biblioteca padrão do Python e falha se qualquer número for diferente:
curl -O https://typestrict.ai/verify_audit.py
python3 verify_audit.py audit.jsonA auditoria não guarda nenhum texto seu, só hashes e probabilidades, então ela fica com o registro do modelo mesmo depois que os arquivos dele expiram (veja Retenção).
Quando a garantia não se aplica
- Várias decisões num só modelo (um plano multitarefa): cada tarefa é medida contra o modelo base de onde partiu, não contra o Jev, e não há reembolso pelo resultado.
- Um treino que falha também devolve o crédito, seja qual for o tipo de modelo.