Fundamentos

Entropia, perplexity e o que significa 'bom'

Entropia mede incerteza e perplexity resume a surpresa média por token específico de um tokenizer; comparações entre tokenizers precisam de uma unidade comum, como bits por byte.

Atualizada em

01 · Conceito

Conceito

Dois times avaliam modelos de linguagem no mesmo corpus. Um reporta perplexity de 7,4, o outro, 4,2, e o segundo declara vitória. Antes de aceitar isso, pergunte se os dois números fazem média da surpresa sobre o mesmo tipo de evento. Um tokenizer faz parte da interface aprendida do modelo: mudá-lo altera a sequência de tokens, os índices de embedding e as probabilidades avaliadas. Perplexities por token de pares modelo-tokenizer diferentes, portanto, podem não ser diretamente ranqueáveis.

A teoria da informação transforma probabilidade numa medida de surpresa. Um evento de probabilidade pp carrega autoinformação logp-\log p: eventos prováveis são pouco surpreendentes, os improváveis carregam mais informação quando ocorrem. A base do logaritmo escolhe a unidade — base dois dá bits, o logaritmo natural dá nats. Bibliotecas de deep learning quase sempre usam nats, artigos frequentemente citam bits, e o fator de conversão ln20.693\ln 2 \approx 0.693 é responsável por uma fração saudável dos números errados em circulação.

A entropia de uma distribuição discreta é a surpresa esperada:

H(p)=xp(x)logp(x).H(p)=-\sum_x p(x)\log p(x).

Uma distribuição concentrada num único desfecho tem entropia zero. Uma distribuição uniforme sobre muitos desfechos tem a maior entropia disponível naquele tamanho. Para uma distribuição categórica sobre VV candidatos, a baseline uniforme tem perplexity VV e surpresa log2V\log_2 V bits por evento. Aplique essa âncora só depois de declarar quais candidatos o runtime inclui; o tokenizer do Qwen mapeia 248.077 ids, enquanto seu tensor de saída tem 248.320 linhas.

Para pontuar uma distribuição de modelo qq contra desfechos sorteados de pp, use a cross-entropy:

H(p,q)=xp(x)logq(x).H(p,q)=-\sum_x p(x)\log q(x).

Num corpus real, o próximo token observado faz as vezes da distribuição dos dados, então isso se reduz a fazer a média do log negativo da probabilidade que o modelo deu a cada token que de fato apareceu. Isso é a média do negative log-likelihood, a loss de treino comum. Atribua probabilidade minúscula ao que aconteceu e pague caro; atribua probabilidade alta e pague pouco. A cross-entropy se decompõe como H(p,q)=H(p)+DKL(pq)H(p,q) = H(p) + D_{KL}(p \Vert q): incerteza irredutível nos dados, mais o custo extra de usar a distribuição errada. Nenhum modelo leva o primeiro termo a zero, e é por isso que uma perplexity de um em texto natural seria evidência de vazamento e não de genialidade.

A perplexity exponencia a média. Em nats, PPL=exp(H)\operatorname{PPL} = \exp(H); em bits, PPL=2H\operatorname{PPL} = 2^{H}. Se o modelo enfrentasse kk opções igualmente prováveis a cada passo, a perplexity seria kk, que é de onde vem a expressão fator de ramificação efetivo. Distribuições reais não são uniformes, então trate isso como intuição e não como contagem de candidatos.

Para o par A, seja a negative log-likelihood total SA=2886S_A=2886 bits sobre NA=1000N_A=1000 tokens:

SANA=28861000=2.886 bits por token,PPLA=22.8867.4.\frac{S_A}{N_A}=\frac{2886}{1000}=2.886\ \text{bits por token},\qquad \operatorname{PPL}_A=2^{2.886}\approx 7.4.

O par B pode produzir NB=1400N_B=1400 tokens sobre o mesmo texto exibido, mas tem sua própria surpresa total SBS_B:

PPLB=2SB/NB=2SB/1400.\operatorname{PPL}_B=2^{S_B/N_B}=2^{S_B/1400}.

Você não pode substituir SA=2886S_A=2886 na segunda fórmula: um tokenizer diferente define eventos de predição diferentes, e ids arbitrários já não endereçam as linhas aprendidas para eles. Manter 2886 fixo seria uma demonstração aritmética útil da sensibilidade ao denominador — produzindo cerca de 4,2 —, mas não uma avaliação válida entre tokenizers. Comparações reais medem os dois numeradores e usam uma unidade comum.

O erro de caminho clássico aqui merece ser nomeado porque é sutil. Diante do descompasso, as pessoas frequentemente tentam consertá-lo comparando perplexity por palavra, raciocinando que palavras são neutras em relação ao idioma. Não são, como a lição 1.2 mostrou: fronteiras de palavra são uma convenção que vários idiomas importantes não usam, e línguas flexionais empacotam mais numa palavra do que línguas analíticas. Bytes também não são perfeitos — uma escrita cujos caracteres custam três bytes UTF-8 é cobrada mais por caractere do que uma cujos caracteres custam um —, mas bytes ao menos são definidos de forma idêntica para todo modelo e todo idioma, e a definição é verificável.

A comparabilidade tem outras fronteiras além da tokenization. A perplexity depende do corpus de avaliação, de como os tokens de início e fim são tratados, do comprimento de contexto, de se uma janela deslizante recomputa regiões sobrepostas e de quais posições são mascaradas fora da loss. Dois números publicados que diferem em qualquer um desses pontos não são ranqueáveis, e a resposta honesta a um descompasso é reportar a discrepância em vez de fazer a média dela.

Vazamento é o outro destruidor silencioso. Texto de avaliação duplicado no treino mede memória junto com generalização e, nas escalas de corpus modernas, supor uma separação limpa é otimismo. Descasamento de domínio corta dos dois lados: um modelo forte pode parecer fraco em texto diferente de tudo que ele vai atender, ou lisonjeiramente forte em texto que se parece com sua distribuição de treino.

Reporte perplexity do jeito que a lição 1.6 pediu que você reportasse um resultado de analogia: com a procedência do corpus, a contagem de tokens, as versões do modelo e do tokenizer, a política de contexto e precisão suficiente para sustentar a conclusão sem exagerá-la. Um número sem seu protocolo não é uma medição.

02 · Analogia

Analogia

Um chaveiro é testado num corredor de portas. Um guia confiante e preciso aponta quase uma chave por porta; um guia confuso espalha a crença pelo chaveiro inteiro. A cross-entropy cobra do guia conforme a probabilidade que ele colocou na chave que de fato girou. A perplexity converte a cobrança média num número efetivo de chaves igualmente plausíveis. A armadilha é que a pontuação é por porta, então um corredor reconstruído com o dobro de portas, e mais fáceis, vai lisonjear enormemente o mesmo guia.

03 · Explique de volta

Explique de volta

Conecte entropia, cross-entropy e perplexity e depois mostre com números por que duas perplexities medidas sob tokenizers diferentes não podem ser comparadas.

Mínimo: 80 caracteres e 15 palavras. Seu texto fica somente neste navegador.

Aguardando sua explicação.

Comparar com uma resposta-modelo

Entropia é a surpresa esperada sob uma distribuição. A cross-entropy faz a média do log negativo da probabilidade que o modelo atribui aos resultados observados, e a perplexity exponencia essa média por token. Para o par modelo-tokenizer A, seja a surpresa total S_A bits sobre N_A tokens, então PPL_A = 2^(S_A/N_A); o par B usa seus próprios S_B e N_B. Você não consegue manter os pesos funcionais, trocar para um tokenizer sem relação e supor que a surpresa total permaneça fixa, porque os eventos de token e os ids de embedding mudam juntos. Perplexities brutas, portanto, não compartilham denominador entre tokenizers. Bits por byte — S_A/B e S_B/B no mesmo corpus em bytes — usam um denominador comum, tornando as unidades comparáveis sem tornar idênticas as probabilidades dos modelos.

04 · Teste seu entendimento

Teste seu entendimento

01O par modelo-tokenizer A atribui 2886 bits de surpresa a 1000 tokens. Dá para calcular a perplexity do par B sabendo apenas que seu tokenizer emite 1400 tokens sobre o texto exibido?
Resposta e explicação

Não; o par B tem eventos de token diferentes, então é preciso medir seu próprio log-likelihood total — A perplexity do par A é cerca de 7,4. O par B precisa de sua própria surpresa total S_B: mudar a tokenization altera a sequência de eventos previstos, então reutilizar o numerador de 2886 bits de A não descreveria B.

02Se a loss média por token é medida em nats, como se calcula a perplexity?
Resposta e explicação

Exponencie a loss média — A perplexity é exp da cross-entropy quando a cross-entropy está em nats, e dois elevado à cross-entropy quando ela está em bits. Misturar as duas convenções é fonte comum de números errados.

03A lição 1.6 mostrou que o resultado da analogia dependia de uma regra de avaliação raramente reportada. Qual é a omissão análoga no caso da perplexity?
Resposta e explicação

Não declarar o tokenizer, a política de contexto e o corpus junto com o número — Nos dois casos o número de manchete só é reprodutível com seu protocolo anexado, e nos dois casos o protocolo pode mover o resultado mais do que a coisa sendo medida.

Conclua o teach-back e acerte o quiz para finalizar a aula.

◎ · Marcador de evidência

Fontes

  1. Claude E. Shannon (1948). A Mathematical Theory of Communication.
  2. Soham Chowdhury e Warren Woolf (2026). Benchmarking Byte-Pair Encoding Tokenizers on Different Languages with Bits per Byte.
  3. Qwen Team (2026). Qwen3.8-27B Model Card.