Skip to content

9.4. LLM

Métricas para Modelos de Linguagem

Avaliar Large Language Models é fundamentalmente diferente de avaliar classificadores ou modelos de regressão. A saída é texto aberto — há múltiplas respostas corretas, a fluência importa, e "certo" é muitas vezes subjetivo. Por isso, o campo desenvolveu métricas especializadas.


Perplexidade (Perplexity)

A métrica mais fundamental para modelos de linguagem: mede quão "surpreendido" o modelo fica com um texto de teste.

\[ \text{PPL}(W) = \exp\!\left(-\frac{1}{N}\sum_{i=1}^{N} \log p_\theta(w_i \mid w_1, \ldots, w_{i-1})\right) \]

Interpretação: PPL = 10 significa que o modelo está, em média, igualmente incerto entre 10 opções a cada token. Menor é melhor. Um modelo trivial que distribui uniformemente sobre \(V\) tokens tem PPL = \(V\) ≈ 32.000.

Limitação

Perplexidade mede ajuste ao conjunto de teste, não capacidade de seguir instruções, raciocinar ou ser útil. GPT-2 tem PPL baixíssima em Wikipedia mas não segue comandos.


Métricas de Geração de Texto

BLEU (Bilingual Evaluation Understudy)

Originalmente para tradução automática — compara n-gramas entre geração e referência:

\[ \text{BLEU} = \text{BP} \cdot \exp\!\left(\sum_{n=1}^{N} w_n \log p_n\right) \]

onde \(p_n\) é a precisão de n-gramas e BP é a penalidade por respostas curtas demais.

ROUGE (Recall-Oriented Understudy for Gisting Evaluation)

Foco em recall — quanto do texto de referência aparece na geração. Comum em sumarização:

Variante O que mede
ROUGE-1 Overlap de unigramas
ROUGE-2 Overlap de bigramas
ROUGE-L Longest Common Subsequence

BERTScore

Usa embeddings do BERT para comparar semântica, não superfície textual:

\[ \text{BERTScore} = F_1\text{ entre embeddings de referência e hipótese} \]

Captura paráfrases que BLEU penaliza.


Benchmarks de Capacidade

Métricas modernas avaliam tarefas, não apenas fluência:

Benchmark Domínio Formato Nota
MMLU 57 disciplinas Multiple-choice Padrão ouro para conhecimento
HumanEval Código Python Completar função Pass@k: % problemas resolvidos
GSM8K Aritmética Passo-a-passo Requer chain-of-thought
HellaSwag Senso comum Múltipla escolha Fácil pra humanos (95%), difícil pra modelos
TruthfulQA Veracidade Geração livre Mede tendência a alucinar
MATH Matemática avançada Resolução de problemas Exige raciocínio simbólico
MT-Bench Instrução Diálogo multi-turno Nota 1-10 por LLM-juiz
Chatbot Arena Preferência geral A/B humano ELO rating, mais realista

Avaliação por LLM-juiz (LLM-as-Judge)

Uma tendência crescente: usar um LLM potente (GPT-4, Claude) para avaliar as respostas de outro LLM. Permite avaliar qualidade subjetiva em escala.

def llm_judge(question, response_a, response_b, judge_model="gpt-4"):
    prompt = f"""
    Pergunta: {question}

    Resposta A: {response_a}
    Resposta B: {response_b}

    Qual resposta é melhor? Avalie em termos de precisão, clareza e utilidade.
    Responda apenas com 'A', 'B', ou 'Empate' e uma breve justificativa.
    """
    return judge_model.generate(prompt)

Vieses conhecidos: preferência por respostas longas, preferência pela primeira opção, favorecer o próprio modelo (self-preference).


Métricas de Alinhamento e Segurança

Métrica O que avalia
Toxicidade (Perspective API) Conteúdo ofensivo, ódio
Veracidade (TruthfulQA) Taxa de alucinações
Instrução-following % de instruções seguidas corretamente
Refusal rate Taxa de recusa em pedidos prejudiciais
Calibração Confiança vs. acurácia real

Avaliação de RAG (Retrieval-Augmented Generation)

Sistemas RAG têm métricas adicionais:

Métrica Fórmula O que mede
Context Precision Docs relevantes / docs recuperados Qualidade da recuperação
Context Recall Docs relevantes encontrados / todos relevantes Cobertura da recuperação
Faithfulness Claims suportados / total de claims Fidelidade ao contexto
Answer Relevancy Similaridade resposta↔pergunta Pertinência da resposta