Publicado em 30 de outubro de 2024
Criar recursos com modelos de linguagem grandes (LLMs) é bem diferente da engenharia de software convencional. Os desenvolvedores precisam aprender a fazer engenharia de comandos para processar resultados não determinísticos, entrada de pré-processamento e resultados de pós-processamento.
Um dos desafios que você compartilhou é que testar a saída dos LLMs, determinando a validade e a qualidade, é demorado. Os desenvolvedores costumam recorrer à geração em lote da saída usando entradas diferentes e, em seguida, validá-las manualmente usando o julgamento humano.
Uma abordagem mais escalonável para avaliar os resultados de diferentes modelos e comandos é a técnica LLM como juiz. Com essa técnica, em vez de depender do julgamento humano, a validação do modelo é delegada a outro LLM. O segundo LLM precisa ser um LLM maior, baseado na nuvem, que provavelmente tenha melhores recursos de raciocínio.
Neste documento, usamos a síntese para demonstrar como comparar diferentes modelos e, como bônus, mostrar a melhoria na qualidade do Gemma para o Gemma 2.
Escolher modelos para comparação e preparar dados
Avaliei os recursos de três modelos na síntese. Comparamos os resultados de dois modelos abertos do Google que podem ser executados no lado do cliente, o Gemma e o Gemma 2, ambos com 2 bilhões de parâmetros. Por outro lado, também avaliamos um modelo baseado em nuvem maior e mais eficiente: o Gemini 1.5 Flash.
Usamos um conjunto de dados de 2.225 artigos da BBC, que abrangem áreas como negócios, entretenimento, política, esportes e tecnologia, e geramos um resumo de cada artigo usando cada um dos modelos selecionados. O mesmo comando foi usado em todos os modelos:
Resuma o artigo em um parágrafo.
Armazenamos os artigos originais e resumos gerados em um banco de dados para que possam ser facilmente acessados em cada etapa.
Selecione um juiz para analisar e avaliar os resumos
Para analisar a qualidade do resumo, usamos o Gemini 1.5 Flash para avaliar os resumos criados pela Gemma 2B e pela Gemma 2 2B. Nossa abordagem específica é baseada no alinhamento, que faz parte da métrica de resumo da DeepEval.
O alinhamento é uma métrica que mede a frequência com que as declarações incluídas em um resumo são compatíveis com o conteúdo original em que o resumo é baseado.
Dividimos o processo de avaliação em duas etapas. Primeiro, pedimos que o modelo dividisse cada resumo em declarações separadas. Em seguida, pedimos para o modelo determinar se cada declaração é embasada pelo texto do artigo original.
Extrair declaração de resumos
Pedimos ao Gemini 1.5 Flash para dividir um texto mais longo em declarações separadas. Exemplo:
O zagueiro do Everton David Weir minimizou a conversa sobre o futebol europeu, apesar de sua equipe estar em segundo lugar na Premiership depois de vencer o Liverpool.
O Gemini 1.5 Flash dividiu esta frase nas seguintes declarações:
- "David Weir é zagueiro do Everton."
- "O Everton está em segundo lugar no Premiership."
- "O Everton venceu o Liverpool em uma partida recente."
- "David Weir minimizou as discussões sobre o Everton jogar no futebol europeu."
Validar instruções
Pedimos ao Gemini 1.5 Flash para analisar a frase original, em comparação com as instruções divididas. O modelo classificou a validade de cada declaração como:
- Sim: a afirmação é compatível com o texto original.
- Não. A afirmação contradiz o texto original.
- Não sei. Não é possível verificar se a instrução tem suporte ou se ela contradiz o texto original.
Análise dos resultados
Esse processo resultou em duas métricas que podem ser usadas para comparar os modelos:
- Alinhamento: com que frequência o modelo produziu resumos que contêm declarações compatíveis com o texto original.
- Riqueza: o número médio de instruções contidas em um resumo gerado pelo modelo.
Alinhamento
Calculamos o alinhamento contando o número de resumos que têm pelo menos uma declaração marcada como "Não" e dividindo pelo número total de resumos.
O modelo Gemini 1.5 Flash tem as pontuações de alinhamento mais altas, superando 92%. Isso significa que ele é muito bom em se ater aos fatos e evita inventar coisas.
O Gemma 2 2B tem uma pontuação respeitável de 78,64%, o que indica um bom nível de precisão. Enquanto isso, a versão anterior do Gemma 2B tem uma pontuação de alinhamento menor, o que significa que ela é mais propensa a incluir informações sem suporte do texto original.
Riqueza
Calculamos a riqueza do modelo calculando a média do número de instruções geradas pelo modelo para cada resumo.
O Gemma 2 2B tem a maior pontuação de riqueza, 9,1, indicando que os resumos incluem mais detalhes e pontos-chave. O modelo do Gemini 1.5 Flash também tem pontuações altas de richness, superando 8,4. O Gemma 2B teve pontuações de riqueza mais baixas, indicando que ele não captura tantas informações importantes do texto original.
Conclusão
Determinamos que modelos menores capazes de ser executados do lado do cliente, como o Gemma 2 2B, podem gerar uma saída de ótima qualidade. Embora os modelos baseados em nuvem, como o Gemini 1.5 Flash, se sobressaiam em produzir resumos alinhados ao artigo original, empacotando uma quantidade considerável de informações, a diferença precisa ser ponderada junto com o desempenho do aplicativo, as necessidades de privacidade e segurança e outras questões que você pode fazer ao determinar se precisa criar IA do lado do cliente.
Há uma evolução clara nos recursos da família de modelos Gemma, já que o Gemma 2 2B é capaz de gerar resumos mais ricos e alinhados do que o Gemma 2B.
Avaliar seus casos de uso
Este documento apenas arranhou a superfície do que é possível com o LLM como técnica de julgamento. Mesmo com o resumo, se você analisar mais métricas, os resultados poderão ser diferentes. Por exemplo, você pode avaliar a cobertura usando uma instrução para identificar os pontos principais de um artigo e, em seguida, usar uma instrução diferente para validar se esses pontos principais são abordados em cada resumo.
Outros casos de uso, como escrever, reescrever ou geração aumentada de recuperação (RAG, na sigla em inglês), podem ter resultados diferentes para as mesmas métricas ou precisar usar outras métricas para avaliação.
Ao implementar essa abordagem, pense em como um humano avaliaria o resultado para determinar quais métricas são melhores para seus casos de uso. Também vale a pena conferir frameworks existentes, como o DeepEval, que já podem ter um conjunto de métricas adequadas para seu caso de uso.
Você implementou o LLM como um juiz para avaliar modelos? Envie um tweet com suas descobertas em @ChromiumDev ou compartilhe com o Chrome para desenvolvedores no LinkedIn (links em inglês).