Definir as métricas de avaliação

A primeira etapa para avaliar modelos ou aplicativos generativos é identificar a meta de avaliação e definir as métricas de avaliação. Nesta página, apresentamos uma visão geral dos conceitos relacionados à definição de métricas de avaliação para seu caso de uso.

Visão geral

Os modelos de IA generativa podem ser usados para criar aplicativos para uma ampla variedade de tarefas, como resumir artigos de notícias, responder a consultas de clientes ou ajudar a escrever código. O Serviço de avaliação de IA generativa na Vertex AI permite avaliar qualquer modelo com métricas explicáveis.

Por exemplo, você está desenvolvendo um aplicativo para resumir artigos. Para avaliar o desempenho do seu aplicativo nessa tarefa específica, considere os critérios que você quer medir e as métricas que você usaria para atribuir uma pontuação a eles:

  • Critérios: uma ou várias dimensões que você quer avaliar, como conciseness, relevance, correctness ou appropriate choice of words.

  • Métricas: uma única pontuação que mede a saída do modelo em relação aos critérios.

O Serviço de avaliação de IA generativa oferece dois tipos de métricas principais:

  • Métricas baseadas em modelos: nossas métricas baseadas em modelos usam um modelo exclusivo do Google como juiz. É possível medir as métricas baseadas em modelos por par ou por ponto:

    • Métricas por ponto: deixe que o modelo juiz avalie a saída do modelo candidato com base nos critérios de avaliação. Por exemplo, a pontuação pode ser de 0 a 5, em que 0 significa que a resposta não se encaixa nos critérios, enquanto 5 significa que a resposta se encaixa bem nos critérios.

    • Métricas por par: deixe que o modelo juiz compare as respostas de dois modelos e escolha a melhor. Isso é usado com frequência ao comparar um modelo candidato com o modelo de referência.

  • Métricas baseadas em computação: são calculadas usando fórmulas matemáticas para comparar a saída do modelo com informações empíricas ou uma referência. As métricas baseadas em computação mais usadas incluem ROUGE e BLEU.

É possível usar as métricas baseadas em computação de forma independente ou com as métricas baseadas em modelo. Use a tabela a seguir para decidir quando usar métricas baseadas em computação ou em modelo:

Abordagem de avaliação Dados Custo e velocidade
Métricas baseadas em modelos Usar um modelo de avaliação para avaliar o desempenho com base em critérios descritivos As informações empíricas são opcionais Um pouco mais caro e mais lento
Métricas baseadas em computação Usar fórmulas matemáticas para avaliar o desempenho Normalmente, é necessário ter informações empíricas Baixo custo e rápido

Para começar, consulte Preparar o conjunto de dados e Executar a avaliação.

Definir as métricas baseadas em modelo

A avaliação baseada em modelo envolve o uso de um modelo de linguagem grande (LLM) como modelo juiz para avaliar as saídas do modelo candidato. Nossos modelos juízes são calibrados com rotuladores humanos para garantir a qualidade. Eles são gerenciados e disponíveis para uso imediato. O processo de avaliação baseada em modelo varia conforme as métricas de avaliação que você fornece.

A avaliação baseada em modelo segue este processo:

  1. Preparação de dados: você fornece dados de avaliação na forma de comandos de entrada. Os modelos candidatos recebem os comandos e geram as respostas correspondentes.

  2. Avaliação: as métricas de avaliação e as respostas geradas são enviadas ao modelo juiz. O modelo juiz avalia cada resposta individualmente, fornecendo uma avaliação baseada em linhas.

  3. Agregação e explicação: o Serviço de avaliação de IA generativa agrega essas avaliações individuais em uma pontuação geral. A saída também contém explicações de cadeia de pensamento para cada julgamento, descrevendo a lógica por trás da seleção.

O Serviço de avaliação de IA generativa oferece as seguintes opções para configurar as métricas baseadas em modelo com o SDK da Vertex AI:

Opção Descrição Ideal para
Usar um exemplo já existente Use um modelo de comando de métrica pré-criado para começar. Casos de uso comuns, economia de tempo
Definir métricas com nossa interface modelada Receba assistência guiada para definir suas métricas. Nossa interface modelada oferece estrutura e sugestões. Personalização com suporte
Definir métricas do zero Tenha controle total sobre as definições de métricas. Ideal para casos de uso muito específicos. Exige mais conhecimento técnico e tempo investido.

Por exemplo, você quer desenvolver um aplicativo de IA generativa que retorna respostas fluentes e divertidas. Para esse aplicativo, é possível definir dois critérios para avaliação usando a interface modelada:

  • Fluência: as frases são fluentes, evitando formulações estranhas ou frases repetitivas. Ideias e frases se conectam de maneira lógica, usando transições quando necessário.

  • Entretenimento: textos curtos e divertidos que incorporam emojis, exclamações e perguntas para transmitir e diversão e comunicação rápida e espontânea.

Para transformar esses dois critérios em uma métrica, você quer uma pontuação geral que varia de -1 a 1, chamada de custom_text_quality. É possível definir uma métrica assim:

# Define a pointwise metric with two criteria: Fluency and Entertaining.
custom_text_quality = PointwiseMetric(
    metric="custom_text_quality",
    metric_prompt_template=PointwiseMetricPromptTemplate(
        criteria={
            "fluency": (
                "Sentences flow smoothly and are easy to read, avoiding awkward"
                " phrasing or run-on sentences. Ideas and sentences connect"
                " logically, using transitions effectively where needed."
            ),
            "entertaining": (
                "Short, amusing text that incorporates emojis, exclamations and"
                " questions to convey quick and spontaneous communication and"
                " diversion."
            ),
        },
        rating_rubric={
            "1": "The response performs well on both criteria.",
            "0": "The response is somewhat aligned with both criteria",
            "-1": "The response falls short on both criteria",
        },
    ),
)

Para ver uma lista completa de modelos de comando de métrica, consulte Modelos de comando de métrica para avaliação.

Escolher entre a avaliação por ponto ou por par

Use a tabela a seguir para decidir quando usar a avaliação por ponto ou por pare:

Definição Quando usar Exemplos de casos de uso
Avaliação por ponto Avaliar um modelo e gerar pontuações com base nos critérios
  • Quando você precisa de uma pontuação para cada modelo que será avaliado.
  • Quando não é difícil definir a rubrica para cada pontuação.
  • Entenda como seu modelo se comporta na produção.
  • Explore os pontos fortes e fracos de um único modelo.
  • Identifique quais comportamentos se concentrar durante o ajuste.
  • Consiga o desempenho de referência de um modelo.
Avaliação por par Comparar dois modelos entre si, gerando uma preferência com base nos critérios
  • Quando você quer comparar dois modelos e uma pontuação não é necessária.
  • Quando a rubrica de pontuação por ponto é difícil de definir. Por exemplo, pode ser difícil definir a rubrica de 1 a 5 para a qualidade do texto por ponto, mas não é tão difícil comparar dois modelos e gerar uma preferência diretamente.
  • Determine qual modelo colocar em produção.
  • Escolha entre os tipos de modelos. Por exemplo, Gemini-Pro versus Claude 3.
  • Escolha entre diferentes comandos.
  • Determina se o ajuste fez melhorias em um modelo de referência.

Métricas com base em computação

As métricas baseadas em computação comparam se os resultados gerados pelo LLM são consistentes com um conjunto de dados de informações empíricas de pares de entrada e saída. As métricas mais usadas são categorizadas nos seguintes grupos:

  • Métricas baseadas no léxico: use cálculos para calcular as semelhanças de strings entre os resultados gerados pelo LLM e as informações empíricas, como Exact Match e ROUGE.
  • Métricas baseadas em contagem: agregue o número de linhas que alcançam ou não determinados rótulos de informações empíricas, como F1-score, Accuracy e Tool Name Match.
  • Métricas baseadas em embedding: calcule a distância entre os resultados gerados pelo LLM e as informações empíricas no espaço de embedding, refletindo o nível de semelhança entre eles.

Geração de texto em geral

As métricas a seguir ajudam você a avaliar a capacidade do modelo de garantir que as respostas sejam úteis, seguras e eficazes para os usuários.

Correspondência exata

A métrica exact_match calcula se uma resposta do modelo corresponde exatamente a uma referência.

  • Limite de tokens: nenhum

Critérios de avaliação

Não relevante.

Parâmetros de entrada da métrica

Parâmetro de entrada Descrição
response A resposta do LLM.
reference A resposta dourada do LLM para referência.

Pontuações de saída

Valor Descrição
0 Sem correspondência
1 Correspondente

BLEU

A métrica bleu (assistente de avaliação bilíngue) contém o resultado de um algoritmo para avaliar a qualidade da resposta, que foi traduzida de uma linguagem natural para outra. A qualidade da resposta é considerada a correspondência entre um parâmetro response e o parâmetro reference dele.

  • Limite de tokens: nenhum

Critérios de avaliação

Não relevante.

Parâmetros de entrada da métrica

Parâmetro de entrada Descrição
response A resposta do LLM.
reference A resposta dourada do LLM para a referência.

Pontuações de saída

Valor Descrição
Um ponto flutuante no intervalo de [0,1] Pontuações mais altas indicam traduções melhores. Uma pontuação de 1 representa uma correspondência perfeita com o reference.

ROUGE

A métrica ROUGE é usada para comparar o parâmetro response fornecido com um parâmetro reference. Todas as métricas rouge retornam a pontuação F1. rouge-l-sum é calculado por padrão, mas é possível especificar a variante rouge que você quer usar.

  • Limite de tokens: nenhum

Critérios de avaliação

Não relevante

Parâmetros de entrada da métrica

Parâmetro de entrada Descrição
response A resposta do LLM.
reference A resposta dourada do LLM para a referência.

Pontuações de saída

Valor Descrição
Um ponto flutuante no intervalo de [0,1] Uma pontuação mais próxima de 0 significa baixa semelhança entre response e reference. Uma pontuação mais próxima de 1 significa uma forte semelhança entre response e reference.

Uso de ferramentas e chamada de função

As métricas a seguir ajudam você a avaliar a capacidade do modelo de prever uma chamada de ferramenta (função) válida.

Chamada válida

A métrica tool_call_valid descreve a capacidade do modelo de prever uma chamada de ferramenta válida. Apenas a primeira chamada de ferramenta é inspecionada.

  • Limite de tokens: nenhum

Critérios de avaliação

Critério de avaliação Descrição
Validade A saída do modelo contém uma chamada de ferramenta válida.
Formatação Um dicionário JSON contém os campos name e arguments.

Parâmetros de entrada da métrica

Parâmetro de entrada Descrição
prediction A saída do modelo candidato, que é uma string serializada JSON que contém as chaves content e tool_calls. O valor content é a saída de texto do modelo. O valor tool_calls é uma string serializada JSON de uma lista de chamadas de ferramenta. Veja um exemplo:

{"content": "", "tool_calls": [{"name": "book_tickets", "arguments": {"movie": "Mission Impossible Dead Reckoning Part 1", "theater":"Regal Edwards 14", "location": "Mountain View CA", "showtime": "7:30", "date": "2024-03-30","num_tix": "2"}}]}
reference A previsão de referência de informações empíricas, que segue o mesmo formato de prediction.

Pontuações de saída

Valor Descrição
0 Chamada de ferramenta inválida
1 Chamada de ferramenta válida

Correspondência de nome

A métrica tool_name_match descreve a capacidade do modelo de prever uma chamada de ferramenta com o nome correto da ferramenta. Apenas a primeira chamada de ferramenta é inspecionada.

  • Limite de tokens: nenhum

Critérios de avaliação

Critério de avaliação Descrição
Correspondência de nome A chamada da ferramenta prevista pelo modelo corresponde ao nome da chamada de ferramenta de referência.

Parâmetros de entrada da métrica

Parâmetro de entrada Descrição
prediction A saída do modelo candidato, que é uma string serializada JSON que contém as chaves content e tool_calls. O valor content é a saída de texto do modelo. O valor tool_call é uma string serializada JSON de uma lista de chamadas de ferramenta. Veja um exemplo:

{"content": "","tool_calls": [{"name": "book_tickets", "arguments": {"movie": "Mission Impossible Dead Reckoning Part 1", "theater":"Regal Edwards 14", "location": "Mountain View CA", "showtime": "7:30", "date": "2024-03-30","num_tix": "2"}}]}
reference A previsão de referência de informações empíricas, que segue o mesmo formato de prediction.

Pontuações de saída

Valor Descrição
0 O nome da chamada de ferramenta não corresponde à referência.
1 O nome da chamada de ferramenta corresponde à referência.

Correspondência de chave de parâmetro

A métrica tool_parameter_key_match descreve a capacidade do modelo de prever uma chamada de ferramenta com os nomes de parâmetros corretos.

  • Limite de tokens: nenhum

Critérios de avaliação

Critério de avaliação Descrição
Proporção de correspondência de parâmetros A proporção entre o número de parâmetros previstos que correspondem aos nomes dos parâmetros da chamada de ferramenta de referência e o número total de parâmetros.

Parâmetros de entrada da métrica

Parâmetro de entrada Descrição
prediction A saída do modelo candidato, que é uma string serializada JSON que contém as chaves content e tool_calls. O valor content é a saída de texto do modelo. O valor tool_call é uma string serializada JSON de uma lista de chamadas de ferramenta. Veja um exemplo:

{"content": "", "tool_calls": [{"name": "book_tickets", "arguments": {"movie": "Mission Impossible Dead Reckoning Part 1", "theater":"Regal Edwards 14", "location": "Mountain View CA", "showtime": "7:30", "date": "2024-03-30","num_tix": "2"}}]}
reference A previsão do modelo de referência de informações empíricas, que segue o mesmo formato de prediction.

Pontuações de saída

Valor Descrição
Um ponto flutuante no intervalo de [0,1] A pontuação mais alta de 1 significa que mais parâmetros correspondem aos nomes dos parâmetros reference.

Correspondência de KV de parâmetro

A métrica tool_parameter_kv_match descreve a capacidade do modelo de prever uma chamada de ferramenta com os nomes de parâmetros e chaves-valor corretos.

  • Limite de tokens: nenhum

Critérios de avaliação

Critério de avaliação Descrição
Proporção de correspondência de parâmetros A proporção entre o número de parâmetros previstos que correspondem aos nomes e valores dos parâmetros da chamada de ferramenta de referência e o número total de parâmetros.

Parâmetros de entrada da métrica

Parâmetro de entrada Descrição
prediction A saída do modelo candidato, que é uma string serializada JSON que contém as chaves content e tool_calls. O valor content é a saída de texto do modelo. O valor tool_call é uma string serializada JSON de uma lista de chamadas de ferramenta. Veja um exemplo:

{"content": "", "tool_calls": [{"name": "book_tickets", "arguments": {"movie": "Mission Impossible Dead Reckoning Part 1", "theater":"Regal Edwards 14", "location": "Mountain View CA", "showtime": "7:30", "date": "2024-03-30","num_tix": "2"}}]}
reference A previsão de referência de informações empíricas, que segue o mesmo formato de prediction.

Pontuações de saída

Valor Descrição
Um ponto flutuante no intervalo de [0,1] A pontuação mais alta de 1 significa que mais parâmetros correspondem aos nomes e valores dos parâmetros reference.

No serviço de avaliação de IA generativa, é possível usar métricas baseadas em computação com o SDK da Vertex AI para Python.

Qualidade de avaliação de referência para tarefas generativas

Ao avaliar a saída de modelos de IA generativa, lembre-se de que o processo de avaliação é inerentemente subjetivo, e a qualidade da avaliação pode variar conforme a tarefa específica e os critérios de avaliação. Essa subjetividade também se aplica a avaliadores humanos. Para mais informações sobre os desafios de alcançar uma avaliação consistente para modelos de IA generativa, consulte Como julgar LLMs como juiz com o MT-Bench e Chatbot Arena e Como aprender a resumir com base em feedback humano.

A seguir