Modelagem de Linguagem

Demonstrações interativas da aula de language modeling, tradução e atenção

Quatro demonstrações que acompanham os slides: o playground de decoding (temperatura, top-k, top-p), a comparação entre greedy e beam search, as métricas de avaliação (perplexidade, BLEU, ROUGE) e o mecanismo de atenção. O modelo por trás das duas primeiras é um n-gram de palavras treinado por contagem, aqui no navegador, sobre um pequeno corpus em português. Notação dos slides: P(yt | y<t).

1 · Playground de decoding

A cada passo o modelo dá a distribuição do próximo token, P(yt | y<t). A temperatura τ divide os logits e deixa a distribuição mais nítida (τ < 1) ou mais plana (τ > 1). Top-k e top-p restringem o sorteio aos tokens mais prováveis: as barras cinzas ficam de fora. Experimente um contexto com distribuição concentrada e outro com distribuição espalhada e observe que o mesmo k corta de formas bem diferentes (o ponto dos slides sobre top-k vs top-p).

Distribuição do próximo token (roxo = elegível, cinza = excluído por top-k/top-p)

O acumulado usa a probabilidade do modelo antes dos filtros, que é o que ∏ P(yt | y<t) significa. Clique em um token gerado para voltar até aquele ponto.

📚 Corpus de treinamento e contagens do modelo n-gram

O modelo é um trigrama por contagem: aproximamos P(yt | y<t) ≈ P(yt | yt−2, yt−1), ou seja, só os dois últimos tokens do contexto importam (a aproximação de contexto curto dos slides). Cada frase do corpus é cercada por ⟨bos⟩ ⟨bos⟩ … ⟨eos⟩ e o "treinamento" é só contar: quantas vezes cada palavra w aparece depois de cada par (u, v), depois de cada palavra v, e no total.

A estimativa é a razão de contagens, por exemplo p(dorme | o, gato) ≈ c(o, gato, dorme)/c(o, gato) = 4/20 = 0,20. Como muitos trigramas nunca aparecem no corpus (o problema de sparsity dos slides), o modelo interpola três níveis: trigrama (peso 0,6), bigrama (0,3) e unigrama suavizado (0,1), o que dá uma probabilidade pequena, mas não nula, até para palavras nunca vistas naquele contexto. Use a consulta ao lado para ver os três níveis compondo a probabilidade final.

De onde vem p(w | u, v): consulte um contexto

2 · Greedy vs beam search

Greedy escolhe o token mais provável a cada passo, uma decisão local que pode ser ruim globalmente. Beam search mantém os b caminhos de maior Σ ln P. No exemplo dos slides, greedy escolhe "The nice" (0,5) e perde "The dog has", cuja probabilidade conjunta é maior. Ao final, a penalidade por comprimento divide o escore por nα.

Árvore de busca: greedy · beams sobreviventes · podados (tracejado)

3 · Avaliação

3a · Perplexidade

A perplexidade é 2−L/m, com L = Σ log2 p(yt | y<t): o "número médio efetivo de tokens" entre os quais o modelo fica em dúvida a cada passo. Compare o exemplo numérico dos slides com frases avaliadas pelo modelo n-gram do corpus.

3b · BLEU e ROUGE

BLEU mede precisão de n-grams com contagens clipadas e penalidade por brevidade; ROUGE é orientado a recall (quanto da referência foi coberto), com a variante ROUGE-L usando a maior subsequência comum (LCS). Edite as frases e veja as contagens, os n-grams casados e as notas mudarem.

4 · Atenção interativa

O exemplo numérico dos slides, ao vivo: os estados do encoder sk (verde) e o estado do decoder ht (rosa) são vetores 2D que você pode arrastar pela ponta. Os scores htsk passam pela softmax, viram pesos ak, e o vetor de contexto c = Σ ak·sk (roxo) é recalculado na hora. Arraste ht na direção de um sk e veja a atenção migrar para aquele token.

Vetores 2D (arraste as pontas de sk e ht)

Pesos de atenção ak = softmax(htsk)