LLM evals: como medir se seu modelo presta | Ricardo Martins — Cloud Architecture, Azure, Kubernetes e DevOps
LLM evals: como saber se seu modelo realmente presta (e não só "achar" que melhorou)
Você mudou o system prompt. O time de ML aprovou. A resposta final pareceu mais coerente, mais alinhada, mais "inteligente". Mas "achar" não é métrica. Em infraestrutura, ninguém sobe um serviço em produção sem antes rodar um teste de carga. Com LLMs, a mentalidade deveria ser exatamente a mesma: medir antes, durante e depois de qualquer mudança.
Se você já trabalhou com DevOps e Kubernetes, sabe que otimização sem observabilidade é míope. Com modelos de linguagem, o princípio é idêntico — só que, em vez de latência e uso de CPU, as suas métricas são qualidade, aderência, segurança e consistência. É aí que entram os LLM evals.
Neste artigo, você vai entender o que são evals, por que benchmarks como MMLU e HumanEval não contam a história completa, como criar seus próprios testes práticos e como aplicar a mentalidade de load testing para avaliar modelos de forma contínua e confiável.
O que são LLM evals e por que eles importam
Um eval (abreviação de evaluation) é um processo sistemático para medir o desempenho de um modelo de linguagem em uma tarefa específica. Isso pode envolver desde um conjunto fixo de perguntas e respostas esperadas até um pipeline complexo com múltiplos agentes e juízes automáticos.
A diferença crucial entre eval e benchmark é o contexto. Enquanto benchmarks acadêmicos medem habilidades genéricas em datasets públicos, evals são desenhados para responder uma pergunta prática: este modelo funciona bem para o meu caso de uso? Ou, ainda mais específico: esta mudança no prompt melhorou ou piorou a taxa de resolução do meu assistente de suporte?
Sem evals, você está navegando no escuro. Um modelo pode ter uma conversa agradável e, ao mesmo tempo, alucinar informações críticas no seu domínio. Pode gerar código corretamente sintático, mas com vulnerabilidades graves de segurança. Pode até passar em todos os testes automatizados e ainda assim falhar nos casos reais, porque o seu eval não representa o mundo real.
Benchmarks populares: o que eles realmente medem?
Você já viu tabelas comparativas com dezenas de modelos e suas pontuações. Os nomes mais comuns são:
- MMLU — mede conhecimento em diversas áreas, como ciências, humanidades e direito.
- HumanEval — avalia geração de código a partir de descrições de funções em Python.
- GSM8K — testa raciocínio matemático com problemas de múltiplas etapas.
- TruthfulQA — verifica se o modelo evita reproduzir mitos e falsidades populares.
Esses benchmarks são ótimos para uma primeira triagem. Eles ajudam a comparar modelos de forma padronizada e reprodutível. Mas é um erro tratá-los como veredito final.
O problema da contaminação
Muitos datasets de benchmark já foram incluídos no treinamento de modelos comerciais. Isso significa que o modelo pode "memorizar" as respostas corretas em vez de realmente aprender a raciocinar. Uma pontuação alta no MMLU não garante que o modelo saiba explicar um conceito jurídico para um leigo — pode ser apenas reconhecimento de padrões.
O problema da generalização
Um modelo pode ter 95% de acerto no HumanEval e, ainda assim, não conseguir lidar com o seu código legado, com uma stack obscura ou com requisitos ambíguos de um ticket de bug. Benchmarks medem habilidades médias em tarefas idealizadas. O seu dia a dia é cheio de ruído e particularidades.
O problema da agregação
Como bem apontou o pessoal do AkitaOnRails, quando alguém pergunta "por que o modelo X está acima do modelo Y?", a resposta pode ser simples: a tabela foi ordenada por uma coluna específica. O modelo que vence no agregado geral pode ser péssimo na tarefa que você precisa. Ao escolher um LLM, olhe a nota relevante para o seu cenário — não o topo da tabela.
Criando seus próprios evals: o guia prático
A melhor forma de saber se um LLM serve para o seu projeto é testá-lo com os seus dados. Aqui está um passo a passo para construir um bom conjunto de evals.
1. Monte um golden set
Um golden set é um conjunto de exemplos com entradas e saídas esperadas. Para um assistente de suporte, por exemplo, você pode ter 100 pares de pergunta-resposta considerados corretos por especialistas do seu time.
Dicas para o golden set:
- Use casos reais, extraídos de logs ou feedback de usuários.
- Inclua edge cases: perguntas ambíguas, pedidos em negrito, textos com erros de digitação.
- Atualize o conjunto periodicamente — o mundo muda, as dúvidas dos usuários também.
2. Escolha métricas objetivas
Para tarefas com resposta fechada, as métricas são simples:
- Exact match — a resposta bate exatamente com o esperado.
- F1 score — mede overlap de tokens entre a resposta gerada e a esperada, útil para respostas com sinônimos.
- ROUGE — avalia a qualidade de resumos comparando n-grams.
- Pass@k — para código, mede se a solução correta aparece entre as k primeiras tentativas.
Para tarefas abertas, como conversação ou geração criativa, métricas automáticas tradicionais deixam a desejar. É aí que entra a avaliação por humanos — ou por um judge automático.
3. Use LLM-as-a-judge com sabedoria
A técnica de usar um LLM forte para avaliar respostas de outro modelo funciona muito bem na prática. Você define uma rubrica (critérios de avaliação como clareza, exatidão, tom) e pede ao juiz que atribua uma nota.
Vantagens:
- Escala: não precisa de um time de humanos para cada iteração.
- Consistência: o mesmo critério é aplicado a todas as respostas.
- Custo menor em comparação a anotação humana.
Riscos conhecidos:
- Preferência por respostas longas: juízes tendem a achar que textos maiores são melhores.
- Auto-preferência: modelos tendem a favorecer respostas geradas por eles mesmos.
- Sensibilidade à ordem: a mesma resposta pode receber notas diferentes se avaliada em posições diferentes dentro de uma conversa.
Mitigações:
- Use rubricas claras e específicas.
- Randomize a ordem das respostas avaliadas.
- Faça uma calibração periódica com avaliação humana para garantir que o juiz automático continua confiável.
A mentalidade de load testing aplicada a LLMs
No mundo de infraestrutura, você não otimiza um endpoint sem antes estabelecer uma baseline de latência e throughput. Com LLMs, a lógica é a mesma. Veja como aplicar essa mentalidade na avaliação de modelos e prompts.
1. Estabeleça uma baseline
Antes de qualquer mudança, rode seu golden set completo no modelo atual. Registre as métricas em um dashboard. Essa é a sua linha de base — qualquer alteração precisa ser comparada com ela.
2. Versione tudo: prompts, modelos, resultados
Trate prompts como código. Mantenha os prompts em um repositório versionado (Git, por exemplo). Registre qual modelo foi usado, qual temperatura, quais parâmetros. Se um dia uma resposta piorar, você precisa conseguir reproduzir exatamente o que estava em produção naquele momento.
3. Automatize no CI/CD
Assim como você roda testes unitários e de integração a cada commit, rode seus evals a cada mudança no prompt ou na configuração do modelo. Um pipeline simples pode:
- Executar o golden set com o novo prompt.
- Comparar as métricas com a baseline.
- Bloquear o deploy se houver regressão significativa.
Isso transforma a avaliação em um processo contínuo, e não em um evento pontual.
4. Monitore em produção
Evals offline são uma aproximação. O comportamento real dos usuários pode ser diferente. Por isso, monitore métricas de negócio diretamente relacionadas à qualidade do modelo:
- Taxa de resolução (o problema do usuário foi resolvido na primeira interação?)
- Tempo médio de atendimento
- Satisfação do usuário (notas, feedback)
- Taxa de escalonamento para humano
Essas métricas são o seu "SLA de qualidade" do modelo em produção. Combine-as com os evals offline para ter uma visão completa.
Armadilhas comuns (e como evitar)
Mesmo com um bom setup, é fácil cair em armadilhas que invalidam seus evals. Fique atento:
Overfitting no eval
Ajustar o prompt repetidamente até passar no golden set pode levar a um modelo que funciona apenas para aquelas perguntas. Solução: troque parte do golden set a cada ciclo e inclua variações que você nunca testou antes.
Golden set pequeno demais
Dez perguntas não são estatisticamente significativas. Busque pelo menos algumas dezenas para cada tipo de tarefa. Quanto mais cobertura de casos, melhor.
Dados desatualizados
Se o seu produto muda, as perguntas dos usuários mudam. Avalie com dados frescos. Um eval de 6 meses atrás pode não representar mais a realidade.
Ignorar segurança
Qualidade não é só acurácia. Inclua testes de segurança: jailbreaks, tentativas de extrair informações privilegiadas, geração de conteúdo tóxico. Um modelo que responde bem mas é facilmente manipulado é um risco sério.
Confiar cegamente no LLM-as-a-judge
O juiz automático também tem limitações. Periodicamente, peça que alguns exemplos sejam avaliados por humanos para garantir que o juiz não está "endurecendo" demais ou de menos.
Conclusão: não existe melhor LLM, existe o melhor para o seu caso
A pergunta "qual é o melhor modelo de IA?" é tão sem sentido quanto "qual é o melhor carro?". Depende do que você precisa: autonomia, velocidade, espaço, custo. O mesmo vale para LLMs.
O caminho para descobrir o modelo ideal é o que combinamos aqui:
- Entenda seu caso de uso — defina as tarefas críticas e os critérios de qualidade.
- Crie um golden set com dados reais — não confie só em benchmarks públicos.
- Automatize as avaliações — métricas objetivas + LLM-as-a-judge com supervisão humana.
- Trate prompt e modelo como código — verse, teste, faça deploy com segurança.
- Monitore em produção — os números contam a verdadeira história.
No fim, avaliar LLMs é um processo de engenharia, não de opinião. Assim como no load testing, você não "acha" que o sistema aguenta — você mede. Com os evals certos, você descobre não apenas se o modelo presta, mas exatamente onde ele brilha e onde ele falha. E isso, sim, é uma vantagem competitiva real.
Se você quer se aprofundar, vale conferir guias práticos como os dos blogs Ricardo Martins, AkitaOnRails e Hidra.blog — todos apontam na mesma direção: a avaliação de LLMs é a disciplina mais importante para quem quer construir produtos sérios com inteligência artificial.