← 문제 목록/Sliding Window Causal Mask (Longformer/Mistral) [medium]
문제 해설

Sliding Window Causal Mask (Longformer/Mistral) [medium]

신경망 · medium

preview

Sliding Window Causal Mask [medium]

v1 causal maskO(L2)O(L^2) 전체 하삼각. Longformer (Beltagy 2020), Mistral, Gemma 등은 sliding window: 각 토큰이 과거 ww 개만 참조. 복잡도 O(Lw)O(L \cdot w).

Mij={10ij<w0otherwiseM_{ij} = \begin{cases} 1 & 0 \le i - j < w \\ 0 & \text{otherwise} \end{cases}

causal (j ≤ i) + band (최대 w개 뒤까지).

왜 이게 중요한가

  • 긴 시퀀스 (10K+) 에서 full-attention 은 메모리 터짐.
  • Locality 가 강한 언어 데이터에서는 최근 컨텍스트만으로도 충분.
  • Mistral-7B 는 window=4096, 시퀀스 32K. 멀리 있는 정보는 여러 layer 를 거쳐 점진적으로 전파.

과제

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

  • 반환 shape (L, L), dtype bool.
  • mask[i, j] = True iff 0 ≤ i - j < window_size.

힌트: i = np.arange(L)[:, None], j = np.arange(L)[None, :] → 벡터화.

테스트 케이스

#이름검증
1shape (L, L), bool
2대각선 Trueself-attention 허용
3상삼각 Falsecausal 유지
4window=1 → identity대각만 True
5window ≥ L → full trilv1 causal 과 동일
6row i 의 True 개수 = min(i+1, w)
7구체 좌표 검증M[5,2] 등
코드 작성
Loading...
실행 결과

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