본문 바로가기
C.W.K.
Stream
Lesson 03 of 05 · published

Gemma: 슬라이딩 윈도 어텐션으로 다듬은 Dense

~11 min · dense, gemma, attention

Level 0정찰자
0 XP0/41 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

Dense 안에서도 어텐션은 바꿀 수 있어

Google의 Gemma는 Dense 구조를 유지하면서 어텐션 비용을 줄인 좋은 사례야. Gemma 2는 4K 범위만 보는 저렴한 로컬 어텐션과 전체를 보는 글로벌 어텐션을 번갈아 배치했어. Gemma 3는 로컬 다섯 층마다 글로벌 한 층을 두는 5:1 비율을 쓰고, 262K 어휘와 128K 컨텍스트를 지원해.

왜 번갈아 놓을까

전체 어텐션은 모든 토큰 쌍을 살펴서 시퀀스 길이에 대해 O(n²)로 커져. 128K 컨텍스트에서는 금세 부담이 돼. 슬라이딩 윈도 어텐션은 각 토큰이 폭 w의 주변만 보므로 O(n × w)로 줄어들어. 중간중간 전체 어텐션 층을 남기면 모든 층에서 비싼 계산을 하지 않고도 먼 정보가 이동할 길을 유지할 수 있어.

대부분은 가까이, 가끔은 멀리

많은 토큰은 바로 앞의 몇천 토큰만 봐도 다음 계산을 할 수 있어. 긴 의존 관계가 필요한 정보는 글로벌 어텐션 층이 전체 컨텍스트에서 끌어와. 로컬 어텐션의 비용 절감과 전체 어텐션의 긴 범위 회상을 함께 노린 원칙적인 절충이야.

Gemma 패밀리

  • Gemma 2(2B, 9B, 27B): 로컬·글로벌 어텐션 패턴을 도입했어.
  • Gemma 3(1B, 4B, 12B, 27B): 5:1 비율, 128K 컨텍스트, 262K 어휘를 써. 27B-IT는 실무에 강한 Dense 모델이야.
  • Gemma 4(2025): 31B Dense와 26B-A4B MoE 변형을 함께 내놨어. Google의 첫 MoE Gemma 옆에서 31B Dense는 여전히 다루기 쉬운 선택으로 남아.

Dense가 곧 획일적이라는 뜻은 아니야

Gemma의 교차 배치는 Dense 패러다임 안에 있어. 모든 토큰이 여전히 모든 FFN 파라미터를 활성화하고 전문가 라우팅도 없어. 달라진 건 어텐션 헤드가 볼 수 있는 토큰의 범위야. Dense가 지루한 옛 구조처럼 보일 때 꺼내 볼 만한 반례지.

Code

로컬 어텐션과 글로벌 어텐션의 한 줄 차이·python
# Global attention: token at position i can attend to positions [0..i]
def global_mask(n):
    return [[1 if j <= i else 0 for j in range(n)] for i in range(n)]

# Local sliding window: token at i attends only to [max(0, i-w+1)..i]
def local_mask(n, w=4096):
    return [[1 if (i - w + 1) <= j <= i else 0 for j in range(n)] for i in range(n)]

# Gemma interleaves: ~5 local layers, then 1 global layer, repeat.

External links

Exercise

Gemma 3 기술 보고서의 슬라이딩 윈도 어텐션 부분을 읽어. 128K 토큰 시퀀스, 로컬과 글로벌 층의 5:1 비율, 4K 로컬 창을 놓고 계산해 봐. 글로벌 층 하나의 어텐션 연산량은 로컬 층 하나의 몇 배일까? 효율적 어텐션 논문을 읽을 때 필요한 감각이 생길 거야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.