Engenharia

Nunca deixe um modelo corrigir a própria prova

Um judge model dá nota mais alta para a própria família, então um eval da mesma família mede lealdade, não qualidade.

ASR

Apollo Space Research

Apollo Space

· 10 min de leitura

Passe a mesma resposta por dois judge models e você pode obter dois veredictos diferentes, não porque a resposta mudou, mas porque um dos judges estava avaliando um parente. Troque o judge por uma família de modelos rival e a nota que parecia qualidade silenciosamente vira outra coisa. A resposta nunca se moveu. Só a lealdade de quem corrigia.

Essa lacuna é o blind spot mais caro na avaliação de agents, e quase ninguém verifica.

Um judge model dá nota mais alta para a própria família, então um eval da mesma família mede lealdade, não qualidade.

Este post é sobre por que isso acontece, por que um dashboard verde pode estar medindo exatamente a coisa errada, e a pequena disciplina que transforma um eval de volta numa medição em vez de num voto.

A versão ingênua: um modelo escreve, o mesmo modelo corrige

A forma padrão de avaliar um sistema de IA em escala é usar outra IA para corrigi-lo. Você não consegue colocar um humano em cada output quando já está rodando milhares de conversas por dia, então recorre à ferramenta óbvia: um modelo forte, recebendo uma rubric, instruído a dar nota de um a dez para cada resposta. Esse é o padrão LLM-as-judge, e ele é genuinamente útil. Também é onde a armadilha está armada.

Aqui está como a armadilha dispara, e ela dispara silenciosamente. O time construindo o agent geralmente está padronizado numa família de modelos, é o que o runtime usa, é para o que a API key serve, é o que todo mundo já confia. Então o escritor é, digamos, um modelo da família A. E quando chega a hora de corrigir, o judge capaz mais próximo também é da família A, porque é a key que está na prateleira. O escritor e o corretor são primos.

Funciona lindamente até deixar de funcionar, e a falha é invisível por dentro.

As notas voltam altas. O dashboard fica verde. Nada nos números te diz que o judge tem o dedo na balança, que ele avalia respostas escritas no estilo da própria família, com o hedging da própria família, com a ideia da própria família do que é uma boa explicação, um degrau acima do que deveria. O eval não está quebrado de nenhum jeito que você consiga ver. Ele só não está mais medindo o que você pensa que está medindo.

Um eval verde onde o escritor e o judge são primos é uma medição de concordância, não uma medição de qualidade.

Isso não é uma hipótese que inventamos para fazer um ponto. O efeito tem nome na literatura de pesquisa, self-preference ou self-enhancement bias, e foi medido. Um estudo amplamente citado de 2024, de pesquisadores da NYU e da Anthropic (“LLM Evaluators Recognize and Favor Their Own Generations,” Panickssery et al.), descobriu que judge models dão notas mensuravelmente mais altas a textos que a própria família produziu, mesmo quando um painel neutro de humanos avaliou aquele texto como nem melhor que as alternativas. O judge não está mentindo. Ele genuinamente prefere a própria voz. E essa preferência é exatamente a coisa de que uma nota de qualidade deveria estar livre.

Dois setups de avaliação lado a lado: na faixa ingênua, um escritor e um judge da mesma família de modelos produzem uma nota verde que secretamente mede a lealdade familiar, enquanto na faixa honesta um judge de família cruzada produz uma nota mais baixa mas confiável que mede qualidade.

Por que um segundo modelo não é automaticamente uma segunda opinião

O primeiro instinto, uma vez que você sentiu essa dor, é reconfortante e errado. Tudo bem, vamos adicionar um judge. Você traz um modelo de correção, aponta para os outputs, e se sente mais seguro porque agora um processo diferente está fazendo a verificação.

Mas um processo diferente não é o mesmo que uma perspectiva diferente. Se o judge compartilha a linhagem do escritor, você não adicionou uma segunda opinião. Você adicionou uma segunda assinatura no mesmo blind spot. O judge concorda com as escolhas do escritor porque elas são, num nível profundo, suas próprias escolhas, os mesmos instintos de tokenizer, as mesmas impressões digitais de dados de treinamento, o mesmo senso do que soa como uma resposta confiante e bem formada. Dois primos concordando que o trabalho é bom não é evidência de que o trabalho é bom. É evidência de que são parentes.

A correção ingênua realoca o problema em vez de resolvê-lo. Você se sente avaliado. Você não está de fato avaliado.

O mecanismo vale ser dito sem rodeios, porque uma vez que você vê, não consegue mais não ver. Um judge model não é um instrumento neutro como uma régua. É um participante com um estilo, e ele dá nota à conformidade com aquele estilo como se conformidade fosse correção. Quando a coisa sendo avaliada se conforma, porque foi escrita por um parente, a nota sobe por uma razão que não tem nada a ver com se um usuário real foi atendido. O número é real. O que ele conta é errado.

Então a correção real não é “adicione um judge.” É “faça o judge ser um estranho.” Tire a correção da família que fez a escrita, exatamente do jeito que você nunca deixaria um estudante corrigir a própria prova, e nunca deixaria o colega de laboratório dele corrigir também.

Nosso jeito: o judge é um estranho, e nós cruzamos os estranhos

A regra que sustentamos é curta. O modelo que corrige uma resposta não pode ser da mesma família que o modelo que a escreveu. Linhagem diferente, treinamento diferente, instintos diferentes, um corretor sem nenhum parente na sala.

Essa única restrição muda o significado de cada nota que sai. Quando um judge de família cruzada avalia uma resposta como alta, a avaliação não pode ser lealdade, porque o judge não tem lealdade para gastar. Ele não está reconhecendo a própria voz; está lendo a resposta a frio, do jeito que um usuário real de fora do sistema leria. O número fica mais baixo e mais honesto ao mesmo tempo. Preferimos um sete verdadeiro a um nove lisonjeiro, porque o nove nunca foi nosso para guardar.

Mas um estranho tem o próprio gosto, então não paramos em um. Um único judge de família cruzada troca o viés do escritor pelo viés do judge, ele pode sistematicamente não gostar de um estilo que na verdade está bem, ou recompensar demais uma verbosidade que um usuário real acharia cansativa. A correção para isso é a mesma correção mais uma vez: mais de um corretor independente, de famílias diferentes, e você olha onde eles concordam. Consenso entre judges não aparentados é um sinal muito mais forte que entusiasmo de um só. Quando três estranhos que não compartilham linhagem todos marcam a mesma resposta para baixo, aquela resposta tem um problema real, não um estilístico.

E os estranhos corrigem contra a rubric, não contra vibes. “Isso parece bom?” convida o judge a recorrer ao estilo, que é precisamente o canal por onde o viés viaja. Então a pergunta que entregamos ao judge é específica: esta resposta fez a coisa de que o usuário realmente precisava, contra este checklist, com esta evidência? Um judge fixado a uma rubric concreta tem muito menos espaço para recompensar conformidade, porque a rubric, não o gosto do judge, é que está medindo.

Um pipeline de correção onde uma resposta se abre para três judges independentes de famílias de modelos diferentes, nenhum deles da família do escritor, e só o consenso deles contra uma rubric fixa vira a nota confiável.

Há mais uma disciplina que fica por baixo de tudo isso, e é a mais antiga na avaliação: o judge nunca edita o trabalho que corrige. Um corretor que pode reescrever a resposta para combinar com o próprio gosto parou de medir e começou a autorar, e agora o viés não está só na nota, está incorporado no artefato. Correção é read-only. O judge reporta um veredicto e a evidência; ele não toca na coisa em teste. Medição e autoria são mantidas em mãos separadas de propósito, porque no momento em que se fundem, o eval vira um espelho.

O que isso custa, e por que pagamos

Nada disso é de graça, e fingir o contrário seria seu próprio tipo de desonestidade.

Custa mais chamadas. Corrigir uma resposta com três judges independentes em vez de um primo é mais compute por avaliação, e através de um grande corpus de test flows isso soma. Também nos custa conforto: notas de família cruzada voltam mais baixas que notas da mesma família, toda vez, e um número mais baixo é uma coisa mais difícil de mostrar a um stakeholder que um verde. Pagamos os dois custos de propósito, porque a alternativa é pagar um muito maior depois.

A falha cara na avaliação nunca foi a chamada extra de correção. Foi o agent que entrou em produção com uma nota lisonjeira, encontrou um usuário real, e desmoronou de um jeito que o eval estava estruturalmente incapaz de ver. Um eval da mesma família é o jeito mais barato possível de se sentir seguro e o jeito mais caro possível de estar de fato errado, porque ele falha silenciosamente e falha confiantemente. Um painel de família cruzada que roda em segundos e te diz uma verdade desconfortável é o lugar mais barato para pegar isso, muito antes do usuário pegar.

O que compramos é uma nota sobre a qual podemos agir. Não um voto de confiança de um parente, mas uma medição de uma sala cheia de estranhos que não têm razão para lisonjear o trabalho. Quando aquela nota se move, ela se moveu porque a qualidade se moveu.

A virada: um eval é uma cultura, não uma config

Esqueça as famílias de modelos por um segundo: o que está por baixo é uma ideia antiga sobre honestidade que não tem nada a ver com IA.

A razão pela qual não deixamos estudantes corrigirem as próprias provas não é que estudantes são desonestos. É que ninguém é um juiz neutro do próprio trabalho, e quanto mais perto o corretor está do trabalho, pior fica o julgamento dele, não por malícia, por proximidade. Todo time que já construiu algo digno de confiança eventualmente aprende a colocar distância entre o criador e o veredicto. Um segundo par de olhos sem nada em jogo. Um revisor que não escreveu a linha. Um examinador que nunca conheceu o estudante. Não descobrimos isso. Só percebemos que transfere, limpamente, para um mundo onde os criadores e os corretores são ambos modelos.

A parte difícil nunca foi conectar um judge. A parte difícil é a disposição de aceitar o número mais baixo e mais verdadeiro, de olhar para um dashboard verde e fazer a pergunta desconfortável de se o judge era um estranho ou um primo, e de continuar fazendo no dia em que você mais quer que a nota seja real. Um modelo sempre vai preferir a própria voz. A disciplina é nunca deixá-lo corrigir numa sala cheia de parentes, e levar isso a sério mesmo quando o número honesto é o que você não queria.


É isso que estamos construindo na Apollo Space: um sistema operacional onde os agents fazem o trabalho e o veredicto sobre esse trabalho é mantido honesto por design, não por esperança. Se você já entrou em produção com algo baseado numa nota que acabou sendo seu próprio reflexo sorrindo de volta, você já sabe por que o corretor deveria ser a única pessoa na sala sem razão para gostar de você.

A Apollo cuida da operação repetitiva da sua empresa pro seu time não precisar.

Entre na lista de espera: acesso antecipado, preço de usuário fundador e um lugar na primeira fila enquanto a gente constrói.

Entrar na lista de espera