Essencial

Causal masking e por que a ordem importa

Uma máscara causal impede vazamento da resposta no treinamento next-token e ainda permite treinar todas as posições do prefixo em paralelo.

Atualizada em

1

Conceito

Um modelo de linguagem next-token aprende a fatoração

p(x1,,xn)=i=1np(xix<i).p(x_1,\ldots,x_n)=\prod_{i=1}^{n}p(x_i\mid x_{<i}).

A probabilidade de xix_i pode depender dos tokens anteriores, mas não do próprio xix_i nem dos posteriores. No treinamento, contudo, a sequência completa já está na memória. Sem restrição, self-attention numa posição inicial conseguiria ler a resposta futura e obter uma loss enganosamente baixa. Causal masking faz o cálculo obedecer à fatoração autoregressiva.

Para uma sequência de comprimento quatro, o padrão permitido é triangular inferior:

[1000110011101111].\begin{bmatrix} 1&0&0&0\\ 1&1&0&0\\ 1&1&1&0\\ 1&1&1&1 \end{bmatrix}.

A linha ii representa a posição receptora da query; a coluna jj, a key lida. Um significa aresta permitida; zero, proibida. Implementações criam uma máscara aditiva com zero nas pontuações permitidas e menos infinito nas proibidas. Ela é somada a QK/dkQK^\top/\sqrt{d_k} antes de softmax. Como exp()=0\exp(-\infty)=0, posições proibidas recebem peso zero.

Em precisão finita, uma biblioteca pode usar o valor representável mais negativo em vez de infinito literal. A intenção é igual, mas o cuidado importa: uma constante só “muito negativa” pode ser insuficiente em certos dtypes ou após outras transformações. APIs modernas de attention costumam aceitar uma opção causal explícita e escolher a representação correta para o kernel.

A máscara combina fluxo de informação sequencial com computação paralela de treinamento. Todas as linhas são produzidas juntas, mas a terceira só depende das três primeiras colunas. Uma RNN impõe causalidade pela ordem de execução. Um Transformer a impõe pelo padrão de conectividade. Na geração, a situação muda: o modelo realmente recebe somente o prefixo existente, produz um token, anexa-o e repete.

Os targets são deslocados em relação aos inputs. Se os tokens de entrada são [BOS, gatos, dormem], os alvos podem ser [gatos, dormem, EOS]. O estado da primeira posição prevê “gatos”; o de “gatos” prevê “dormem”. A máscara permite que uma posição leia a si mesma porque aquele estado prevê o token seguinte, não o token atual. Erros de uma posição podem criar vazamento ou treinar contra o target errado.

Não confunda causal mask com padding mask. Padding permite reunir sequências de tamanhos diferentes num batch. Posições artificiais não devem atuar como keys nem contribuir para a loss. A máscara causal esconde o futuro pela ordem; a de padding esconde posições inválidas pelo comprimento. Um batch pode precisar das duas. Dados empacotados talvez precisem ainda de uma fronteira entre documentos.

Causalidade também não equivale a conhecer ordem absoluta. Sem sinal posicional, trocar dois tokens anteriores apresentaria o mesmo conjunto de vetores de conteúdo. O triângulo diz quais posições são anteriores; positional encodings e biases fornecem informação mais rica sobre local e distância.

Encoders bidirecionais como BERT usam outra visibilidade no masked-language modelling: tokens comuns leem esquerda e direita, enquanto alguns inputs são ocultos ou corrompidos. Modelos encoder–decoder combinam padrões: attention bidirecional no encoder, causal no decoder e cross-attention do decoder para todos os estados válidos do encoder.

A regra durável é simples: o tensor de treinamento pode conter o futuro, mas o grafo computacional de uma previsão não pode acessá-lo. A máscara triangular transforma essa regra em estrutura matricial e preserva o paralelismo sem comprometer o objetivo.

2

Como explicar para uma criança de cinco anos

Imagine uma prova impressa numa longa tira. Para a questão cinco, uma capa deslizante revela apenas as questões de um a cinco e esconde todas as respostas posteriores. O professor prepara uma posição da capa para cada questão ao mesmo tempo, corrigindo tudo em paralelo, mas nenhuma questão enxerga seu futuro. Uma causal mask é esse conjunto triangular de capas aplicado à matriz de pontuações.

3

Ensine de volta

Explique como a máscara causal permite treinamento paralelo sem vazamento de tokens futuros e diferencie-a de uma padding mask.

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

Salvo somente neste dispositivo.

Ver uma resposta-modelo

O treinamento fornece a sequência inteira, mas uma máscara triangular define como menos infinito os logits de attention da posição i para posições maiores que i, antes de softmax. Todas as linhas são calculadas na mesma operação em batch, recebendo informação apenas do próprio prefixo. A padding mask esconde posições de preenchimento usadas para igualar comprimentos; são problemas diferentes e as máscaras podem ser combinadas.

4

Teste seu entendimento

1. Quando a causal mask é aplicada em attention padrão?
Resposta e explicação

Nos logits proibidos antes de softmax — Logits proibidos recebem menos infinito ou um valor representável suficientemente negativo, fazendo os pesos virarem zero.

2. Por que modelos causais treinam posições em paralelo?
Resposta e explicação

A matriz triangular inteira é calculada numa operação em batch — A máscara limita o fluxo de informação dentro da operação matricial; ela não exige um passo recorrente para cada posição.

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

Fontes

  1. Ashish Vaswani et al. (2017). Attention Is All You Need.
  2. Alec Radford et al. (2019). Language Models are Unsupervised Multitask Learners.