Transformers Prof. Anderson Rocha Tavares Bloco 15 · Slide 16 / 19

Masked Self-Attention

A máscara que impede o modelo de ver o futuro

Pipeline do Decoder:
🟠 Masked Self-Attn
→
⚖️ Add&Norm
→
🟣 Cross-Attn
→
⚖️ Add&Norm
→
🟩 FFN
→
⚖️ Add&Norm
→
📊 Linear+Softmax
Scores de Atenção — tokens: <BOS>, Ela, saiu, só
← tokens chave (j) →
← tokens query (i) →
💡 Clique em uma linha para ver os pesos de atenção. Toggle para aplicar/remover máscara.
Modo: Sem máscara
<BOS> (Begin Of Sequence) é um token especial adicionado no início da sequência do decoder. Ele representa o "estado inicial" antes de qualquer token ter sido gerado, e serve como query para prever o primeiro token de saída.

Neste modo, todos os tokens podem atender a todos os outros. Isso seria adequado para um encoder, mas em um decoder o modelo "espiaria" tokens futuros — o que não é permitido durante a geração autoregressiva.

M = todas as células permitidas (sem bloqueio)
Softmax pós-máscara: as células com −∞ tornam-se 0 após softmax, eliminando completamente a influência dos tokens futuros.
🔒
Por que mascarar se todos os tokens entram de uma vez? Durante o treinamento, todos os tokens da sequência alvo entram simultaneamente no decoder (paralelismo). Sem a máscara causal, cada posição poderia "espiar" as respostas corretas das posições futuras — o que nunca ocorre durante a geração real (token a token). A máscara garante que o modelo aprenda a prever cada token apenas a partir do que já teria gerado, replicando a geração autoregressiva. Ao prever a posição i, apenas as posições j ≤ i contribuem.