← 문제 목록/Sliding Window Causal Mask
문제 해설

Sliding Window Causal Mask

어텐션 · easy

preview

Sliding Window Causal Mask

92번 Causal Mask 는 과거 전체를 볼 수 있음 — 시퀀스가 길면 O(L2)O(L^2) 계산/메모리. Sliding Window Attention (Longformer, Mistral) 은 각 토큰이 최근 ww 의 과거만 보도록 제한해 O(Lw)O(L \cdot w) 로 줄입니다:

Mij={1iw+1ji0otherwiseM_{ij} = \begin{cases} 1 & i - w + 1 \le j \le i \\ 0 & \text{otherwise} \end{cases}

대각 포함, 과거 w1w-1 까지. 즉 각 행에 연속된 ww 개 True.

어디에 쓰이나

  • Longformer / Mistral: 4K~32K 긴 컨텍스트에서 sliding window = 512 ~ 4096 으로 설정.
  • Receptive field 는 층을 쌓을수록 넓어짐 (CNN 과 비슷).
  • 일부 모델은 sliding + global (특정 토큰만 전체 attention) 결합.

과제

함수 sliding_window_mask(L, w) 를 완성하세요.

  • L: 시퀀스 길이, w: 윈도 크기 (양수 int).
  • 반환: bool shape (L, L).
  • True = 볼 수 있음, False = 마스킹.
  • 힌트: i, j = np.arange(L)[:, None], np.arange(L)[None, :]; (j <= i) & (j > i - w).

테스트 케이스

#이름검증
1shape (L, L) + bool
2대각 True자기자신 허용
3상삼각 False미래 가림
4각 행 True 개수 ≤ w
5w >= L → 기존 causal mask
6w=1 → 대각만 True자기 자신만
코드 작성
Loading...
실행 결과

코드를 작성하고 Run 을 눌러보세요.