Navegando por Benchmarks Públicos
Há milhares de benchmarks para avaliar diferentes capacidades de modelos. Com a explosão de casos de uso de IA, o número de benchmarks cresce rapidamente. À medida que os modelos evoluem, benchmarks antigos se saturam, exigindo novos.
Uma ferramenta que avalia modelos em vários benchmarks é chamada de evaluation harness (estrutura de avaliação).
Seleção e Agregação de Benchmarks
Resultados de benchmarks ajudam a identificar modelos promissores. Agregar resultados gera um ranking (leaderboard). Considere:
- Quais benchmarks incluir no ranking?
- Como agregá-los para ranquear os modelos?
Benchmarks públicos são uma ótima fonte de inspiração.
Rankings Públicos
Muitos rankings agregam resultados de um subconjunto de benchmarks. Embora úteis, eles não são abrangentes. A maioria é limitada por poder computacional.
Além disso, embora os criadores de rankings geralmente sejam criteriosos, nem sempre deixam claro o processo de seleção. Rankings diferentes acabam usando benchmarks distintos, dificultando comparações.
Esses rankings geralmente tentam equilibrar amplitude (cobertura) e número de benchmarks, incluindo raciocínio, consistência factual e capacidades específicas (ex: matemática).
Apesar de fazer sentido, o conceito de “cobertura” não é bem definido — por que parar em 6 ou 10 benchmarks?
Um aspecto importante e negligenciado é a correlação entre benchmarks. Se dois benchmarks forem altamente correlacionados, usar ambos pode distorcer os resultados.
Mesmo sendo úteis para avaliar desempenho geral, rankings públicos não substituem testes para casos de uso específicos. Por exemplo, se seu foco é geração de código, rankings sem esse benchmark serão menos úteis.
Rankings Customizados com Benchmarks Públicos
Ao avaliar modelos para sua aplicação, você cria seu próprio ranking privado com base nos critérios definidos. Comece reunindo benchmarks relevantes.
Nem todos os modelos têm resultados públicos em todos os benchmarks. Se o modelo de seu interesse não tiver, você precisará executá-los por conta própria.
Depois de obter os resultados, será necessário agregá-los. Como diferentes benchmarks usam métricas diferentes, é necessário ponderar sua importância para o seu caso.
Contaminação dos Dados em Benchmarks Públicos
Contaminação ocorre quando o modelo foi treinado com os dados do benchmark. Isso pode levar a notas infladas artificialmente. Muitas vezes, a contaminação é acidental, pois os dados de treinamento vêm da internet e podem incluir benchmarks públicos.
Para detectar a contaminação considera-se:
- Sobreposição de n-gramas: se uma sequência de, por exemplo, 13 tokens de um teste também estiver nos dados de treinamento, o item é considerado “sujo”.
- Perplexidade: mede a dificuldade do modelo em prever um texto. Perplexidade muito baixa pode indicar que o modelo já viu aquele dado.
A sobreposição de n-gramas é mais precisa, mas cara e exige acesso ao treinamento. Perplexidade é menos precisa, mas mais viável.
Alguns hosts de benchmarks, como a Hugging Face, usam o desvio padrão do desempenho para identificar outliers. Benchmarks públicos deveriam manter parte dos dados privados e oferecer ferramentas para avaliação segura.
Benchmarks públicos ajudam a eliminar modelos ruins, mas não a encontrar o ideal. Depois de restringir os candidatos promissores, será necessário rodar sua própria avaliação.
Crie Seu Pipeline de Avaliação
Etapa 1: Avaliar Todos os Componentes do Sistema
Se aplicável, avalie por turno e por tarefa. Um turno pode ter vários passos e mensagens. Mesmo que o sistema leve vários passos para gerar uma saída, é considerado um turno.
- Avaliação por turno: foca na qualidade de cada saída.
- Avaliação por tarefa: verifica se o sistema cumpre a tarefa.
A avaliação por tarefa é mais importante, pois reflete o objetivo do usuário. Mas é mais desafiadora, pois nem sempre é claro onde a tarefa começa e termina.
Etapa 2: Criar Diretrizes de Avaliação
A diretriz é o passo mais importante. Diretrizes ambíguas levam a avaliações confusas.
Definir critérios de avaliação
Muitas vezes, o difícil não é julgar se uma resposta é boa, mas definir o que significa “boa”. Reflita sobre isso antes de desenvolver a aplicação.
Criar rubricas de pontuação com exemplos
Para cada critério, escolha um sistema de pontuação: binário (0 ou 1), escala de 1 a 5, entre 0 e 1 etc. Com base nisso, monte uma rubrica com exemplos e justifique cada nota. Valide com humanos.
Relacionar métricas de avaliação com métricas de negócio
A aplicação deve atender a um objetivo de negócio. Exemplo:
- Consistência factual de 80% → automatiza 30% do suporte.
- Consistência factual de 90% → automatiza 50%.
- Consistência factual de 98% → automatiza 90%.
Também defina o limiar de utilidade: qual a pontuação mínima para a aplicação ser útil?
Etapa 3: Definir Métodos e Dados de Avaliação
Selecionar métodos de avaliação
Critérios diferentes podem exigir métodos diferentes. Pode-se combinar métodos. Exemplo: usar um classificador barato em 100% dos dados e um juiz de IA caro em 1%.
Use métricas automáticas sempre que possível, mas não hesite em usar avaliação humana.
Anotar os dados de avaliação
Crie um conjunto de exemplos anotados para avaliar todos os componentes do sistema. Use dados reais, se possível.
Divida os dados em subconjuntos para entender melhor o desempenho. Exemplo:
- Usuários pagantes vs gratuitos.
- Mobile vs Web.
- Exemplos com erros frequentes do modelo.
- Exemplos com erros frequentes dos usuários.
A quantidade necessária depende da aplicação e do método. Deve ser suficiente para obter resultados confiáveis, mas não tão grande a ponto de inviabilizar a avaliação.
Resultados de avaliação não servem apenas para avaliar o sistema isoladamente, mas também para compará-lo com alternativas. Eles devem ajudar a escolher o melhor modelo, prompt ou componente.
Iterar
À medida que necessidades e comportamentos mudam, os critérios de avaliação também mudam. Você precisará atualizar critérios, rubricas e exemplos. A iteração é necessária, mas o pipeline deve manter certa consistência. Se ele mudar o tempo todo, os resultados não serão úteis para guiar o desenvolvimento.
Mantenha um bom controle de experimentos: registre todas as variáveis que podem impactar os resultados.
Referências
Huyen, Chip. AI Engineering: Building Applications with Foundation Models
Comments (0)