Ir para o conteúdo

8.3. Generative

Tudo nas duas páginas anteriores se apoiava em uma coisa: um gabarito com que comparar. Um paciente está doente ou não; uma casa foi vendida por um número. Modelos generativos quebram essa suposição. Não existe uma tradução correta de uma frase, nem uma imagem correta para "um gato andando de bicicleta", nem uma lista de todas as respostas aceitáveis com que comparar.

Por isso a avaliação de generativos é outra disciplina, e suas métricas se dividem em três famílias que medem coisas genuinamente diferentes:

  • Comparar com uma referência


    BLEU, ROUGE, METEOR, BERTScore. Alguém escreveu como é uma boa resposta; meça a distância até ela.

    Barato, reprodutível e cego a toda resposta aceitável que ninguém escreveu.

  • Comparar distribuições


    FID, Inception Score, precisão e revocação, MAUVE. Esqueça as saídas individuais: o conjunto gerado se parece com o conjunto real?

    É a pergunta certa para imagens, e não diz nada sobre nenhuma amostra isolada.

  • Perguntar a alguém


    Avaliação humana, preferência par a par, Elo, LLM como juiz.

    A única coisa que mede o que você realmente quer, e a mais cara, lenta e menos reprodutível das três.

Métricas por referência medem sobreposição de palavras, não sentido

O BLEU1 conta quantos n-gramas do candidato aparecem na referência (orientado a precisão, com punição para saídas curtas). O ROUGE2 conta quantos n-gramas da referência aparecem no candidato (orientado a revocação). Os dois são casamento de strings, e os dois são usados para afirmar coisas sobre sentido — que é onde mora o problema.

A referência abaixo é "the cat is sitting on the mat". Cada candidato é algo que um modelo pode realmente produzir. Clique por eles e leia o que as métricas dizem.

referência: the cat is sitting on the mat

Leia o segundo e o terceiro botões juntos, porque entre os dois está o argumento inteiro:

  • A paráfrase perfeita — uma tradução que qualquer humano aceitaria — tira BLEU 0,00.
  • O sentido oposto, produzido inserindo um único "not", tira BLEU 0,50 e ROUGE-1 1,00.

Uma métrica que dá zero a uma resposta correta e revocação perfeita a uma resposta invertida não está medindo sentido. Está medindo sobreposição de strings, que se correlaciona com sentido vezes o suficiente para ser útil e falha exatamente onde mais importa.

O que isso significa na prática

BLEU e ROUGE continuam valendo a pena — são de graça, determinísticos e pegam regressões grosseiras. Mas:

  • Nunca compare BLEU entre artigos ou conjuntos de dados. Tokenização, número de referências e suavização mudam o número. Use o sacrebleu, que fixa a tokenização, e reporte a assinatura dele.
  • Uma diferença de um ponto de BLEU não significa nada sem teste de significância e várias referências.
  • São triagem, não veredito. Use-os na integração contínua para pegar um modelo que quebrou, e use julgamento humano ou de modelo para decidir que um modelo é bom.

Embeddings: comparar sentido em vez de strings

O BERTScore3 troca o casamento exato por similaridade no espaço de embeddings: cada token das duas frases é embutido por um codificador pré-treinado, cada token do candidato é casado com o token mais similar da referência, e as similaridades de cosseno são promediadas.

\[ R_{\text{BERT}} = \frac{1}{|r|}\sum_{t_i \in r} \max_{\hat{t}_j \in \hat{r}} \; \mathbf{e}_{t_i}^{\top}\mathbf{e}_{\hat{t}_j} \]

"Feline" e "cat" ficam próximos nesse espaço, então a paráfrase que tirou zero no BLEU vai bem aqui. O preço é que a métrica passa a depender de um modelo: troque o codificador e o número muda, e todo viés que ele tiver agora está dentro da sua avaliação. O MAUVE4 vai além e compara a distribuição do texto gerado com a do texto humano no espaço de embeddings, que é a versão textual da ideia da próxima seção.

Imagens: comparar distribuições, não figuras

Não existe imagem de referência para "um gato andando de bicicleta", então a ideia de comparar com referência desaba por completo. O movimento que tornou a geração de imagens mensurável foi parar de pontuar saídas individuais e pontuar o conjunto: passe todas as imagens por uma rede pré-treinada e pergunte se a nuvem de características geradas se parece com a nuvem das reais.

O FID5 faz isso ajustando uma gaussiana a cada nuvem e medindo a distância de Fréchet entre elas:

\[ \text{FID} = \lVert \mu_r - \mu_g \rVert^2 + \operatorname{Tr}\!\left(\Sigma_r + \Sigma_g - 2(\Sigma_r\Sigma_g)^{1/2}\right) \]

Dois termos, duas perguntas: as nuvens estão centradas no mesmo lugar e têm o mesmo formato. Menor é melhor, 0 significa gaussianas idênticas, e o número não tem limite superior nem significado absoluto — FID 12 só é interpretável ao lado de outro FID calculado do mesmo jeito, com o mesmo número de amostras e o mesmo extrator de características.

Abaixo, um substituto bidimensional para o espaço de 2048 dimensões. Azul é real, laranja é gerado.

Dois modos de falha, e um número só não consegue separá-los:

  • Puxe a cobertura até o fim. O gerador continua produzindo amostras perfeitamente realistas da moda da esquerda e para de produzir a da direita — a precisão fica em 0,97 enquanto a revocação cai para 0,49. Isso é descarte de modas, a falha característica das GANs. (Note que a revocação só reage quando a moda desaparece: ela mede se o suporte está coberto, não em que proporção.)
  • Aumente o borrão. Tudo está coberto, mas as amostras individuais não se parecem com nada real — a precisão desaba enquanto a revocação permanece alta. Esse é o gerador borrado, a falha característica dos primeiros VAEs.

O FID sobe nos dois casos e não diz em nenhum deles qual você tem. É por isso que precisão e revocação para distribuições foram propostas6: a mesma divisão da classificação, aplicada a conjuntos de amostras.

O que o FID não consegue enxergar de jeito nenhum

O FID ajusta uma gaussiana a cada nuvem. Ou seja, ele só compara médias e covariâncias — e duas distribuições muito diferentes podem compartilhar as duas. Ajuste um gerador de uma moda só cuja média e variância casem com uma realidade de duas modas e o FID medido é 0,009: praticamente perfeito, para um modelo que nunca produz nada no centro de nenhuma das modas.

Mais três avisos práticos, todos os quais já morderam artigos publicados:

  • O FID é enviesado pelo tamanho da amostra. Ele cai conforme você acrescenta amostras, então um FID sobre 10 000 imagens não é comparável a um sobre 50 000. Sempre reporte a contagem.
  • Ele depende do extrator de características e da implementação dele. Os pesos clássicos da InceptionV3 são um checkpoint específico do TensorFlow; as portas para PyTorch diferem o bastante para mudar rankings.
  • Ele não é qualidade perceptual. Redimensionar, comprimir em JPEG e até o filtro de interpolação usado para chegar a 299×299 mexem no FID de forma perceptível.

Texto para imagem: a figura corresponde ao pedido?

O FID diz que as imagens parecem reais. Não diz nada sobre elas mostrarem o que foi pedido. O CLIP score7 preenche essa lacuna embutindo o texto e a imagem em um espaço compartilhado e tomando a similaridade de cosseno:

\[ \text{CLIPScore} = \max\big(0,\; 100 \cdot \cos(\mathbf{e}_{\text{imagem}}, \mathbf{e}_{\text{texto}})\big) \]

É o número padrão de alinhamento, e ele herda toda fraqueza do próprio modelo CLIP — a mais aguda delas: o CLIP é notoriamente ruim em composição. "Um cubo vermelho sobre uma esfera azul" e "um cubo azul sobre uma esfera vermelha" ficam quase idênticos no embedding, então o CLIP score não diz se o modelo acertou a relação. Ele mede o que está na figura, muito mais do que como as partes se relacionam.

Por isso a prática padrão é um par: FID para realismo, CLIP para alinhamento — e, mesmo juntos, eles não veem contagem, texto renderizado e nada sobre o arranjo dos objetos.

A métrica de que ninguém escapa: pessoas

Toda métrica automática acima é uma aproximação. Quando a aproximação e um humano discordam, o humano é a definição — então, em algum momento, alguém precisa olhar.

Mostre duas saídas para o mesmo pedido e pergunte qual é melhor. Bem mais confiável que pedir uma nota de 0 a 10, porque as pessoas são consistentes ao comparar e inconsistentes ao pontuar. Agregue com Elo ou com o modelo de Bradley–Terry, exatamente como no xadrez — que é o que as arenas públicas fazem.

Custo: alguns milhares de comparações para um ranking confiante entre dois modelos próximos.

Avalie fluência, relevância e fidelidade de 1 a 5, em eixos separados. Necessário quando você precisa saber por que algo está ruim, e não apenas que está.

Reporte a concordância entre avaliadores (α de Krippendorff ou κ de Cohen) — sem ela você não distingue uma diferença real de uma discordância sobre a escala.

Peça a um modelo forte que faça a comparação. Correlaciona surpreendentemente bem com a preferência humana e custa centavos em vez de horas8. Também tem vieses documentados que você precisa controlar:

  • Viés de posição — ele prefere a resposta que veio primeiro. Avalie sempre nas duas ordens e tire a média.
  • Viés de verbosidade — ele prefere respostas mais longas independentemente do conteúdo.
  • Autopreferência — um modelo dá nota maior às saídas da própria família.

Use para iterar e para teste de regressão; confirme a afirmação final com pessoas.

Escolhendo, por tarefa

Tarefa Reporte E saiba que não pega
Tradução automática chrF ou COMET; BLEU só por continuidade com trabalhos antigos BLEU: qualquer formulação correta que ninguém escreveu
Sumarização ROUGE mais uma checagem de factualidade (QAGS, ou um modelo de implicação) ROUGE: se o resumo é verdadeiro
Texto para imagem FID + CLIP score + preferência humana Composição, contagem, texto dentro da imagem
Geração incondicional de imagens FID + precisão/revocação, com a contagem de amostras declarada Qual dos dois modos de falha você tem, se só reportar FID
Conversa aberta Preferência par a par, humana ou de modelo juiz Tudo o que uma métrica de número único afirmaria
Qualquer uma delas Um punhado de saídas, lidas por você Nada. Olhe as amostras — sempre

A regra que sobrevive a toda métrica nova

Olhe as saídas. Vinte amostras lidas por uma pessoa pegam modos de falha que nenhum número agregado reporta: a mesma construção repetida, uma marca d'água aprendida do conjunto de treino, um detalhe do pedido sendo ignorado. Métricas automáticas dizem se algo mudou; elas não dizem o que o seu modelo está fazendo.

Pontos-chave

  1. Avaliação de generativos não tem gabarito, então toda métrica é uma aproximação — e a escolha é sobre qual erro de aproximação você consegue tolerar.
  2. BLEU e ROUGE comparam strings, não sentido. Uma paráfrase perfeita tira zero; inserir um "not" mantém uma nota quase perfeita. Use-os como triagem de regressão, nunca como veredito.
  3. Métricas de embedding (BERTScore, MAUVE) resolvem o problema da paráfrase e importam os vieses do codificador que usam.
  4. O FID compara distribuições, com uma gaussiana por nuvem. Ele não enxerga formato além de média e covariância, é enviesado pelo tamanho da amostra e depende do extrator. Reporte a contagem.
  5. Precisão e revocação para distribuições separam o número único do FID nos dois modos de falha que ele mistura: amostras irreais versus modas faltando.
  6. O CLIP score mede alinhamento com o pedido, e é fraco justamente em composição.
  7. Preferência humana é a definição, par a par bate escala de notas, e um LLM juiz é uma aproximação barata e boa com três vieses que você tem de controlar.

Recursos Adicionais

  1. A Note on the Inception Score — Barratt, S., & Sharma, R. (2018). Curto e demolidor: desmonta a métrica generativa mais citada da época dela, falha por falha. A melhor demonstração disponível de que um número amplamente usado pode estar amplamente errado.

  2. A note on the evaluation of generative models — Theis, L., van den Oord, A., & Bethge, M. (2016). O argumento de que verossimilhança, qualidade das amostras e diversidade são três eixos em grande medida independentes: um modelo pode ser excelente em um e inútil em outro, então um número só não ordena modelos generativos. Tudo nesta página vem daí.

  3. sacreBLEU — Post, M. (2018). Menos um artigo para ler e mais uma ferramenta para usar: corrige a tokenização que torna os números de BLEU incomparáveis, e imprime uma assinatura que você pode pôr no relatório.

Referências bibliográficas

As obras citadas ao longo do texto, na ordem em que aparecem:


  1. Papineni, K., Roukos, S., Ward, T., & Zhu, W.-J. (2002). BLEU: a Method for Automatic Evaluation of Machine Translation — ACL. O original, com a punição por brevidade e a admissão honesta de que é uma aproximação. 

  2. Lin, C.-Y. (2004). ROUGE: A Package for Automatic Evaluation of Summaries — workshop da ACL. Define ROUGE-N, ROUGE-L e o resto da família. 

  3. Zhang, T., Kishore, V., Wu, F., Weinberger, K. Q., & Artzi, Y. (2020). BERTScore: Evaluating Text Generation with BERT — ICLR. 

  4. Pillutla, K., Swayamdipta, S., Zellers, R., et al. (2021). MAUVE: Measuring the Gap Between Neural Text and Human Text using Divergence Frontiers — NeurIPS. 

  5. Heusel, M., Ramsauer, H., Unterthiner, T., Nessler, B., & Hochreiter, S. (2017). GANs Trained by a Two Time-Scale Update Rule Converge to a Local Nash Equilibrium — NeurIPS. Introduz o FID. 

  6. Kynkäänniemi, T., Karras, T., Laine, S., Lehtinen, J., & Aila, T. (2019). Improved Precision and Recall Metric for Assessing Generative Models — NeurIPS. A definição por k-vizinhos de fidelidade e cobertura usada no simulador acima. 

  7. Hessel, J., Holtzman, A., Forbes, M., Le Bras, R., & Choi, Y. (2021). CLIPScore: A Reference-free Evaluation Metric for Image Captioning — EMNLP. 

  8. Zheng, L., Chiang, W.-L., Sheng, Y., et al. (2023). Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena — NeurIPS. Mede a concordância com a preferência humana e nomeia os vieses de posição, verbosidade e autopreferência.