Skip to content
Guides7 min read

Julgando o juiz: raciocínio humano e de modelo, lado a lado

Um juiz LLM só é confiável na medida em que forem confiáveis os rótulos humanos contra os quais você o validou. Coloque a cadeia de raciocínio de uma pessoa ao lado da de um modelo no mesmo item e confira o seu juiz contra rótulos que carregam os próprios intervalos de confiança.

Potato Team

Todo mundo que avalia LLMs em escala acaba usando um LLM como juiz, e todo mundo acaba perguntando se dá para confiar nesse juiz. A resposta de sempre é conferir contra rótulos humanos. Mas essa conferência só vale o que valem os rótulos humanos, e "o juiz concorda com humanos" é uma afirmação fraca se os humanos discordaram entre si e ninguém anotou o quanto. Este texto é sobre fechar essa lacuna: medir como um modelo raciocina, medir como uma pessoa raciocina e comparar as duas coisas com honestidade.

O Potato 2.7 está organizado em torno de uma ideia: uma ferramenta de anotação deveria medir como um julgamento foi feito, e não apenas registrá-lo. A parte interessante é que isso vale para os dois tipos de juiz.

O problema de validar um juiz

O fluxo padrão é razoável. Você tem uma tarefa grande demais para rotular à mão, então pede a um modelo que a pontue. Antes de confiar nas pontuações, você tira uma amostra, manda humanos rotularem e mede a concordância entre o juiz e as pessoas. Se o κ de Cohen for alto o bastante, você publica.

O ponto fraco é o último passo. Esse κ compara o seu juiz com um rótulo humano, normalmente um voto majoritário sobre dois ou três anotadores. E um voto majoritário é uma estimativa pontual sem barra de erro. Ele diz "sarcastic" com exatamente a mesma confiança quer os três anotadores tenham concordado de imediato, quer dois tenham vencido um terceiro depois de uma longa discussão.

Então, quando você reporta que o seu juiz concorda com humanos a κ = 0,71, você está reportando concordância com um número cuja própria incerteza você nunca mediu. Se os rótulos humanos nos itens difíceis estão perto de cara ou coroa, o κ nesses itens está medindo sobretudo ruído, e nenhuma engenharia de prompt vai movê-lo.

Já escrevemos sobre a mecânica de calibração do juiz e de alinhamento juiz ↔ humano. O que a 2.7 acrescenta é a outra metade: fazer o lado humano dessa comparação carregar a própria incerteza.

Dê barras de erro aos rótulos humanos primeiro

O motor psicométrico ajusta um modelo de teoria de resposta ao item às suas anotações humanas e reporta cada rótulo como uma posterior com intervalo (sarcastic, p = 0.94 [0.88 – 0.97]), pesando quem votou e não apenas quantos votaram.

O Truth Serum acrescenta a pontuação por predição de pares, que sinaliza os itens em que a multidão provavelmente erra mesmo estando confiante.

Agora a comparação com o juiz muda de formato. Em vez de

o juiz concorda com o rótulo majoritário em 71% dos itens

você pode dizer

o juiz concorda com a posterior humana em 94% dos itens em que o rótulo humano é confiante (p > 0,9), e em 52% dos itens em que não é. Esses itens de baixa confiança são 18% do conjunto.

A segunda afirmação é acionável de um jeito que a primeira não é. Ela diz que o seu juiz vai bem nos casos fáceis e é pouco confiável nos difíceis, e diz que fatia dos seus dados é difícil. Ela também diz uma coisa incômoda e útil: nos itens genuinamente ambíguos, pode não existir verdade fundamental com a qual o juiz possa concordar, e perseguir um κ mais alto ali é perseguir ruído.

É para isso que serve o painel de alinhamento juiz ↔ humano, e é por isso que os recursos de processo humano e os de avaliação de agentes são a mesma versão em vez de duas.

Duas cadeias de raciocínio no mesmo item

A outra metade da comparação é o raciocínio em si.

O Modo Think-Aloud registra como uma pessoa raciocina até um rótulo. O anotador fala enquanto trabalha; a conversão de fala em texto roda localmente; a transcrição é guardada literalmente, sem resumo, porque parafrasear um protocolo de pensar em voz alta destrói justamente aquilo que você estava coletando.

Uma transcrição literal de raciocínio falado com um rótulo detectado por vozCadeia de raciocínio humana, capturada literalmente

A anotação de recompensa de processo registra como um modelo raciocina. A cadeia de raciocínio do modelo é segmentada em passos, e cada passo recebe um sinal de recompensa bom/ruim/neutro, que é o sinal de treino de um process reward model.

yaml
annotation_schemes:
  - annotation_type: process_reward
    name: cot_review
    description: "Rate each step of the model's reasoning."
    steps_key: reasoning_steps

Mesmo item. Duas cadeias de raciocínio. Coloque uma ao lado da outra.

O que você de fato aprende com a comparação

O uso óbvio é achar onde o modelo raciocina de forma diferente da pessoa, e vale ser concreto sobre por que isso importa.

A pontuação da resposta final não enxerga a diferença entre um modelo que acertou pelo motivo certo e um que acertou pelo motivo errado. Numa tarefa de sarcasmo, uma pessoa pode dizer "o 'thanks so much' ('muito obrigado mesmo') é o que faz o trabalho aqui. Ninguém agradece com essa intensidade por um atraso de dois dias." Um modelo pode chegar ao mesmo rótulo porque o texto tem um ponto de exclamação. Os dois são marcados como corretos. Só um deles vai generalizar.

Isso você não detecta pelos rótulos. Detecta pelo raciocínio, e é por isso que ter os dois compensa o trabalho.

O segundo uso são dados de treino. Os passos em que o raciocínio da pessoa e o do modelo divergem são, quase por definição, os passos de maior sinal num conjunto de dados de recompensa de processo. São os lugares onde o processo do modelo está errado de um jeito que a saída dele não revela.

Uma limitação honesta. O Potato te dá as duas superfícies de captura e as coloca lado a lado. Ele não calcula uma métrica automática de similaridade entre a cadeia de raciocínio de uma pessoa e a de um modelo, e deliberadamente não lançamos uma. O que significa "esses dois rastros de raciocínio concordam" é uma pergunta de pesquisa em aberto, e um número inventado por nós seria pior do que número nenhum, porque pareceria autoritativo e diria muito pouco. O artefato é o que importa; a métrica é você quem define.

Juntando tudo

Um pipeline de avaliação defensável na 2.7 se parece mais ou menos com isto.

  1. Rotule uma amostra com humanos, com a psicometria ligada. Cada rótulo ganha uma posterior e um intervalo. Itens ambíguos são identificados como ambíguos em vez de silenciosamente mal rotulados.
  2. Rode o Truth Serum para pegar os itens em que uma multidão confiante provavelmente erra.
  3. Corrija a diretriz onde o detector de bugs no livro de códigos sinalizar discriminação negativa, de preferência numa sala de norming onde dá para ver a concordância se mexer conforme vocês convergem.
  4. Calibre o juiz contra esses rótulos, e reporte o alinhamento condicionado à confiança humana em vez de como um número único.
  5. Confira o raciocínio, não só o veredito, nos itens em que o juiz e as pessoas discordam.

Cada passo é YAML, hospedado por você e gratuito. Os passos 1 a 3 não precisam de LLM nenhum.

Nada disso torna um juiz LLM confiável por si só. O que isso faz é tornar a afirmação de confiabilidade uma afirmação de verdade: uma frase com um intervalo anexado, contra rótulos humanos que também têm intervalos, sobre itens cuja dificuldade você consegue descrever com honestidade.

É uma régua mais baixa que "nosso juiz está alinhado com os valores humanos" e bem mais útil.

Leitura adicional