
v1 padding mask 는 (B, L) 키 마스크만 만듦. Transformer decoder 학습에서는 causal + padding 을 동시에 적용하는 (B, L, L) 마스크가 필요:
~M 위치를 -inf 로 넣고 softmax → 무효 위치 확률 0.j <= i (shape (L, L)).j < lengths[b] (shape (B, L)).(1, L, L) & (B, 1, L) → (B, L, L).함수 causal_padding_mask(lengths, L) 를 완성하세요.
lengths shape (B,), L max length.(B, L, L), dtype bool.| # | 이름 | 검증 |
|---|---|---|
| 1 | shape (B, L, L), bool | |
| 2 | causal 유지: 상삼각 False | 모든 batch |
| 3 | key padding 제외 | j ≥ len[b] 위치 False |
| 4 | lengths=[L,...] → full tril | |
| 5 | lengths=0 → 모두 False | |
| 6 | row i True 개수 = min(i+1, len[b]) | |
| 7 | 알려진 예시 (lengths=[3,5,2], L=5) |
코드를 작성하고 Run 을 눌러보세요.