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 com nossa equipe é que testar a saída de 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 capaz: 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 geramos resumos em um banco de dados para que eles pudessem ser acessados facilmente 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 se baseia.
Dividimos o processo de avaliação em duas etapas. Primeiro, pedimos que o modelo dividisse cada resumo em declarações separadas. Em seguida, pedimos ao modelo para determinar se cada declaração é apoiada pelo texto do artigo original.
Extrair declarações 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 na Premier League."
- "O Everton venceu o Liverpool em uma partida recente."
- "David Weir minimizou a discussão sobre o Everton jogar no futebol europeu."
Validar declaraçõ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 declaração é confirmada pelo texto original.
- Não. A declaração contradiz o texto original.
- Não sei. Não é possível verificar se a declaraçã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 com suporte do texto original.
- Qualidade: o número médio de declaraçõ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 maiores pontuações de alinhamento, 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%, indicando 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 fazendo a média do número de declaraçõ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 Gemini 1.5 Flash também tem pontuações de riqueza altas, acima de 8,4. O Gemma 2B teve pontuações de riqueza mais baixas, indicando que ele pode não capturar 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, sejam excelentes para produzir resumos alinhados ao artigo original, com uma quantidade considerável de informações, a diferença precisa ser ponderada com a performance do aplicativo, as necessidades de privacidade e segurança e outras perguntas que você pode fazer ao determinar se precisa criar uma 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 a síntese, é possível analisar mais métricas, e os resultados podem 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 a saída 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 suas descobertas por tweet para @ChromiumDev ou compartilhe com Chrome para desenvolvedores no LinkedIn.