Documentação

É possível confiar nas probabilidades?

Esta página responde a uma pergunta: é possível confiar nessas cifras de confiança?

A conclusão logo de início: “a forma da saída é garantida” e “a probabilidade é precisa” são duas afirmações inteiramente diferentes. A primeira foi verificada de várias direções. A segunda está sendo contestada publicamente. Qualquer pessoa que coloque um modelo de decisão atrás de um gate de produção deve tratar a confiança relatada pelo fornecedor ou pelo projeto como uma prior a ser calibrada, não como uma garantia.

O que é calibração

Um modelo diz “tenho 80% de certeza”. Se você reunir tudo o que ele disse a 80% e exatamente 80% desses casos estiverem certos, o número está calibrado. Se menos estiverem certos, ele é superconfiante.

A métrica usual é o ECE (Expected Calibration Error, erro de calibração esperado): agrupe as previsões por confiança, compare a confiança média de cada grupo com sua precisão real e tire a média ponderada pelo tamanho dos grupos. Quanto menor, melhor.

Calibração e precisão são eixos independentes. Um modelo muito preciso pode ser muito superconfiante (especialmente na fatia mais difícil), e um modelo medíocre pode ser bem calibrado. Você verá os dois abaixo.

Correção 1: escala de temperatura

A correção mais barata e mais geral. A ideia: a ordenação das opções pelo modelo geralmente está certa, mas a escala está errada — superconfiança significa que tudo fica perto demais de 0 e 1. Um único parâmetro de temperatura, ajustado num conjunto de validação, achata ou aguça a distribuição.

Uma réplica que entrega uma avaliação offline executável relata:

Escala de temperatura mais abstenção conformal leva o ECE de 0.170 para 0.071 (validado de forma cruzada).

Observe “validado de forma cruzada”: não foi ajustado e avaliado sobre os mesmos dados. Essa é a diferença entre um número em que vale confiar e um em que não vale.

Correção 2: abstenção conformal

A escala de temperatura corrige a escala. Os métodos conformais decidem quando não responder.

Em vez de tornar cada probabilidade correta, eles produzem um conjunto de abstenção e garantem que a resposta verdadeira caia dentro dele em pelo menos alguma fração declarada do tempo (uma garantia de cobertura). Casos que não atingem a barra são escalonados em vez de processados automaticamente.

Em projetos reais:

  • Uma alternativa aberta de 118M usa escala de temperatura mais um conjunto de abstenção split-conformal e relata ECE de 0.01–0.03 em suítes públicas — ao mesmo tempo em que declara claramente que, em benchmarks de decisão tipada, ela perde para a Laya (0.71 vs 0.77). Um projeto que publica suas derrotas é mais informativo do que um que só publica vitórias.
  • Uma implementação médica usa dois leitores locais congelados mais um roteador sem ajuste e um conjunto de candidatos split-conformal para limitar o erro, chegando a até 2 pontos de distância do serviço hospedado em três exames nacionais de licenciamento de 600 itens, sem ajuste fino e sem destilação.

O que ambos têm em comum: nenhum afirma que as probabilidades se tornaram precisas. Eles afirmam saber quando não são. Num sistema real, é sobre a segunda afirmação que você consegue colocar um gate.

Um resultado independente contraintuitivo: o viés tem sinais opostos

Um teste de calibração independente usou 900 tickets gerados por regras (que o modelo não pode ter visto) mais três benchmarks públicos, publicou cada resposta bruta e um ECE contra um piso de ruído simulado, e chegou a uma conclusão sobre o sinal:

Primitiva Direção do viés
Choice sistematicamente superconfiante
Score sistematicamente superconfiante
Boolean (Noul) sistematicamente subconfiante

O valor está no sinal. Se o viés fosse aleatório, uma temperatura global o corrigiria. Direções opostas significam que uma única correção global não consegue — você precisa calibrar por primitiva, no mínimo.

Isso também explica uma falha de projeto específica: se um sistema compara confianças de Noul e Choice contra o mesmo limiar, ele mede a mesma coisa com uma régua curta demais e outra longa demais.

O idioma de entrada também afeta a calibração

Outra medição, sobre um corpus em espanhol de 3,200 itens rotulados por humanos:

Escrever o estado em espanhol custou de 3.0 a 6.4 pontos de precisão e aproximadamente dobrou o ECE em XNLI / PAWS-X, enquanto escrever as instruções em espanhol não teve efeito.

A distinção entre estado e instrução é o ponto: o estado é conteúdo, as instruções são metadados. Isso importa especialmente para leitores de chinês e japonês — os estados deles muito provavelmente seguirão um caminho semelhante, e ninguém publicou uma medição disso. Não há razão para presumir que não esteja acontecendo no seu idioma.

Então como o limiar é escolhido?

Tudo acima desemboca na mesma pergunta: de onde veio aquele 0.8?

A resposta reproduzível é meça, não adivinhe: pegue seus próprios dados rotulados, ajuste o limiar por pergunta que atinge a precisão desejada e valide-o num conjunto de validação.

Uma ferramenta faz exatamente isso e acrescenta o passo que mais importa: ela falha o CI quando uma atualização do modelo quebra um limiar travado. Limiares expiram como preços — só que um preço errado é notado e um limiar errado não.

Em uma frase

Trate a confiança como uma prior, não como uma garantia. Meça a faixa confiável sobre os seus próprios dados primeiro, depois escreva essa faixa no código.