Métricas para a Avaliação de Large Language Models

Leia Portela
google-cloud-brasil
5 min readJun 11, 2024
Imagem gerada com Gemini

Introdução

Quando um Large Language Model (LLM) é atualizado, no geral é uma melhoria. No entanto, a natureza desses modelos de larga escala é que eles procuram balancear abrangência e qualidade nos mais diversos tópicos e casos de uso. Dessa forma, com uma iteração nova do modelo, embora na maior parte dos casos de uso ele melhore, pode acontecer de alguns deles precisarem de ajustes para performar como esperado.

Aqui, apresento algumas métricas quantitativas que podem ser usadas para avaliar a performance de modelos a cada nova iteração. Além disso, é possível criar métricas customizadas, adaptadas ao caso de uso em questão. Como referência, vamos utilizar o notebook Define Your Own Metrics | Rapid Evaluation SDK Tutorial.

Criando uma base de dados

O primeiro passo em avaliar a performance de uma LLM é preparar uma base de dados. Algumas perguntas que você espera que o modelo responda, por exemplo, e suas respectivas respostas. Assim, é possível comparar a performance do novo modelo com o resultado esperado, e com o resultado do modelo anterior.

No exemplo a seguir, retirado do notebook mencionado anteriormente, os dados são uma instrução, o contexto que o modelo vai receber, e a referência a ser comparada com a resposta do modelo.

Exemplo:

Instrução: Resuma o seguinte artigo.

Contexto: Para fazer um espaguete à carbonara clássico, comece fervendo uma panela grande de água com sal. Enquanto a água esquenta, frite a pancetta em uma frigideira com azeite em fogo médio até ficar crocante e dourada. Retire a pancetta da frigideira e reserve. Na mesma frigideira, misture os ovos, o queijo parmesão ralado e a pimenta do reino para fazer o molho. Quando a massa estiver cozida al dente, escorra e misture imediatamente na frigideira com a mistura de ovos, adicionando um pouco da água do cozimento da massa para criar um molho cremoso.

Referência: O processo de fazer espaguete à carbonara envolve cozinhar a massa, fritar a pancetta, misturar os ovos e o queijo parmesão e misturar tudo para criar um molho cremoso.

Métricas quantitativas

As métricas a seguir são usadas frequentemente na pesquisa e desenvolvimento de LLMs, e podem servir nesse caso para comparar o novo modelo com a iteração anterior. Dependendo da tarefa em questão, diferentes métricas devem ser aplicadas.

Classificação:

  • F1 score: mede a acurácia de um teste, representando a média harmônica da precisão e recall. Varia de 0 a 1, em que 1 é o melhor resultado possível. Utilizado apenas na classificação binária.
  • Macro F1: média dos F1 scores de todas as classes, usada quando o problema tem mais de duas classes.
  • Micro F1: soma os resultados de todas as classes e depois calcula o F1 score, e também é usado quando há mais de duas classes.

Resumo:

  • Rouge-L: mede o quão similar o texto gerado pelo modelo é a uma referência, encontrando a sequência mais longa em comum.

Geração:

  • Bleu: mede quão fluente e coerente um texto é, ao compará-lo com uma referência. Pode ir de 0 a 1, mas uma nota de 0.4 é considerada de alta qualidade, e uma nota acima de 0.6 é considerada de qualidade muitas vezes melhor que textos gerados por humanos.
  • Rouge-L: também pode ser utilizado para geração.

Perguntas e respostas:

  • Exact Match: expressa a porcentagem de respostas que são exatamente iguais ao texto de referência. O valor sempre é 1 ou 0, em que 1 é exatamente a resposta correta, e não há resposta parcialmente correta.

Métricas customizadas

Uma métrica customizada pode ser útil para avaliar um comportamento mais específico, necessário para o seu caso de uso. Nesses casos, é possível criar um prompt detalhando o comportamento esperado e como medir a performance do modelo.

Primeiro, cria-se um prompt para dar uma nota ao teste. Depois, um prompt para explicar a nota. Os exemplos a seguir também foram retirados do notebook.

Exemplo de um prompt para dar nota:

Você está avaliando o conteúdo de um texto escrito. Aqui está o texto:
[COMEÇO DO TEXTO]
************
[Texto]: {resposta}
************
[FIM DO TEXTO]

Examine o texto e determine se ele é fiel ou não. Fidelidade se refere a quão precisamente um resumo gerado reflete as informações essenciais e conceitos chave presentes no documento de origem original. Um resumo fiel se mantém verdadeiro aos fatos e significado do texto de origem, sem introduzir distorções, alucinações ou informações que não estavam originalmente lá.

Sua resposta deve ser um único número inteiro em uma escala de 0–5, 0 sendo o menos fiel e 5 sendo o mais fiel.

Exemplo de um prompt de explicação:

Você está avaliando se um texto é fiel ou não. Aqui está o texto:
[COMEÇO DO TEXTO]
************
[Texto]: {resposta}
************
[FIM DO TEXTO]

Considerando que o texto recebeu uma pontuação de {nota} em fidelidade, usando a seguinte definição: Fidelidade refere-se à precisão com que um resumo gerado reflete as informações essenciais e os conceitos-chave presentes no documento original. Um resumo fiel se mantém fiel aos fatos e ao significado do texto original, sem introduzir distorções, alucinações ou informações que não estavam presentes originalmente.

Sua resposta deve ser uma explicação do porquê o texto é ou não fiel.

Desafios

Ao usar uma LLM para avaliar outra LLM, pode ser necessário verificar que essa avaliação está sendo feita de forma correta. Revisar alguns exemplos e confirmar que eles estão coerentes deve ser suficiente.

Ademais, pode acontecer que a própria LLM avaliadora seja atualizada, e nesse caso pode ser necessário modificar os prompts para que eles funcionem com a nova iteração. Por exemplo, tive que atualizar o prompt de nota utilizado no notebook para destacar que a resposta dele deveria ser apenas um número, não a explicação.

Exemplo do prompt de nota atualizado:

Você está avaliando o conteúdo de um texto escrito. Aqui está o texto:
[COMEÇO DO TEXTO]
************
[Texto]: {resposta}
************
[FIM DO TEXTO]

Examine o texto e determine se ele é fiel ou não. Fidelidade se refere a quão precisamente um resumo gerado reflete as informações essenciais e conceitos chave presentes no documento de origem original. Um resumo fiel se mantém verdadeiro aos fatos e significado do texto de origem, sem introduzir distorções, alucinações ou informações que não estavam originalmente lá.

Sua resposta deve ser um único número inteiro em uma escala de 0–5, 0 sendo o menos fiel e 5 sendo o mais fiel.

Não explique a nota, apenas retorne o número.

Conclusão

A pesquisa na área de avaliação automática de LLMs ainda está se desenvolvendo, devido aos desafios associados a medir a qualidade de um comportamento tão subjetivo. Podemos usar métricas quantitativas e também fazer uso dos próprios LLMs para auxiliar nesse processo. No entanto, é necessário cautela para garantir que a performance do modelo avaliado está sendo refletida o mais fielmente possível.

Em relação aos modelos de Google Cloud, é recomendado se atentar aos novos lançamentos e descontinuações, que podem ser encontrados na Documentação Oficial. Dessa forma, se um modelo que está sendo utilizado é atualizado, sua nova versão pode ser testada. Além disso, em caso de modelos a serem descontinuados, é possível se preparar antecipadamente e testar novas versões.

--

--