17 / 20
Зачем нужен mask в attention и в чём разница между causal mask, padding mask и их комбинацией?
Mask в attention запрещает определённым позициям влиять на softmax. Causal mask (нижнетреугольная, shape (L, L)) скрывает будущие токены — нужна в decoder LLM, иначе модель «списывает». Padding mask (shape (B, L)) скрывает [PAD]-токены в batched последовательностях разной длины. Технически в scores добавляется -inf на запрещённых позициях → после softmax они = 0. В PyTorch ≥2.0 проще через F.scaled_dot_product_attention(Q, K, V, is_causal=True) или с явным attn_mask.