Attention in Transformers, Step-by-Step (3Blue1Brown)

3Blue1Brown | Grant Sanderson (Lesson), Justin Sun (Text) | 2024-04-07 Video + Interactive Guide | 4,214 words

핵심 Takeaways

시각적 직관

  • Ambiguity Problem: “mole”의 3가지 의미 (동물, 화학단위, 피부병변) → Embedding 단계에선 문맥 없음 → Attention이 주변 정보로 업데이트

  • Context Integration:

    • “The animal didn’t cross… because it was tired”
    • “it”의 의미는 “animal”과의 관계에서만 결정됨

핵심 통찰 (3가지)

  1. Attention은 정보 이동(Information Routing)

    • 각 토큰이 다른 토큰의 정보를 얼마나 가져올 것인가
    • Softmax 가중치 = 정보 흐름의 비율
  2. Masking의 필요성

    • 자동회귀(Autoregressive) 생성: 미래 토큰을 모르는 상태에서 예측
    • 미래 위치를 -∞로 마스크 → softmax 후 0
  3. Parameter 수의 현실성

    • GPT-3: 96 head × 96 layer × 6.3M = ~58B parameters
    • 전체 175B의 1/3만 attention 담당
    • Feed-forward가 대부분 파라미터 차지

상세 설명

Motivating Examples (문제 정의)

예시 1: 다중 의미 단어

"American shrew mole"      → 동물
"One mole of CO₂"          → 몰(단위)
"Take a biopsy of mole"    → 피부 병변

문제: 임베딩 단계에서는 lookup table처럼 동작 → 문맥 정보 없음

해결: Attention 블록

  • 각 토큰의 임베딩을 주변 정보로 업데이트
  • “mole”을 수식하는 이웃(shrew, one, biopsy)를 보고 의미 조정

예시 2: Context-dependent 변환

"Eiffel tower"   → 구체적: "에펠탑"을 인코드
"Miniature tower" → 구체적: "작은 탑"으로 업데이트

중요한 발견: 정보는 큰 거리에서도 전파됨 예: 미스터리 소설 전체 → 마지막 “was” 토큰이 범인 정보 보유

Attention Pattern 계산

Step 1: Query, Key, Value 생성

Query   = Embedding × W^Q  (512D → 64D per head)
Key     = Embedding × W^K  (512D → 64D per head)
Value   = Embedding × W^V  (512D → 64D per head)

직관:

  • Query: “나는 무엇을 찾고 있는가?”
  • Key: “나는 (응답 관점에서) 무엇인가?”
  • Value: “나는 실제로 무엇인가?” (전달할 정보)

Step 2: Attention Scores

Scores[i,j] = Query[i] · Key[j]^T

높은 dot product = 높은 alignment = 높은 관련성

예시 (형용사-명사 패턴):

  • fluffy의 key는 creature의 query와 잘 정렬
  • the의 key는 creature의 query와 정렬 안 됨

Step 3: 정규화 및 Softmax

weights = softmax(Scores / √d_k)
  • ÷√d_k: numerical stability (d_k = 64 → √64 = 8)
  • Softmax: 각 행의 합 = 1.0 (확률 분포)

중요: 행(row) 단위로 softmax 적용

  • 각 Query 위치가 모든 Key 위치에 대해 정규화된 가중치 받음

Step 4: Value 가중합

Output[i] = Σ_j (weights[i,j] × Value[j])
  • fluffy, blue의 가중치가 높음 → 값이 creature에 크게 기여
  • 다른 단어들의 가중치는 낮음 → 약하게 기여

Masking (자동회귀 생성의 핵심)

문제

모델이 학습할 때 각 위치에서 다음 토큰 예측

Input sequence:  A fluffy blue creature roamed the verdant forest
Position:        1 2      3    4        5     6   7       8

학습 목표:
- Pos 1: A → 다음이 fluffy?
- Pos 2: A fluffy → 다음이 blue?
- Pos 3: A fluffy blue → 다음이 creature?

그런데 미래 정보를 알면?

Pos 1에서 position 8의 "forest"를 보면 
→ 다음이 "fluffy"임을 쉽게 유추 가능
→ 이는 학습이 아니라 치팅!

해결: Masking (Causal Masking)

미래 위치(j > i)의 score를 -∞로 설정
↓
softmax(-∞) = 0
↓
Output이 미래 정보 받지 않음

중요한 점:

  • 학습 중에만 masking 적용 (효율성)
  • 생성(inference) 중에는 미래 없음 (자동회귀)

Multi-Head Attention (병렬 표현학습)

구조

Input (512D)
  ├─ Head 1 (64D 부분공간)
  ├─ Head 2 (64D 부분공간)
  ├─ ...
  └─ Head 8 (64D 부분공간)
       ↓
    Concatenate (512D)
       ↓
    Linear W^O
       ↓
    Output (512D)

각 헤드의 역할

GPT-3 분석 예시:

  • Head A: 문법적 의존성 (주어-술어)
  • Head B: 의미적 관계 (상위-하위 개념)
  • Head C: 구조적 역할 (전치사 관계)

→ 8개 헤드가 8개 다른 “필터”로 작동

병렬화의 핵심

8 heads × 96 layers = 768 독립 계산 단위
GPU에서 parallel execution 가능

Parameter 카운팅 (현실성 검증)

Single Head Parameters

W^Q: 512 × 64 = 32,768 params
W^K: 512 × 64 = 32,768 params
W^V (factored): 
  - Down-projection: 512 × 64 = 32,768
  - Up-projection: 64 × 512 = 32,768
W^O (shared): 512 × 512 = 262,144 (모든 헤드 공유)
────────────────────────────
Total per head: ~1.6M (한 헤드만)

Full Layer (96 heads, 1 layer)

1.6M × 96 = 154M per layer
154M × 96 layers = ~15B parameters in attention

+ Feed-forward layers: ~43B
────────────────────────────
Attention: 58B / 175B ≈ 33%

Attention 행렬의 특성

복잡도

  • Time: O(n² × d_k) - 모든 토큰 쌍 비교
  • Space: O(n²) - attention 행렬 저장
  • n = 2000일 때: 4M 개 원소 (메모리/계산 병목)

최근 개선

  1. Sparse Attention: 일부 위치만 계산 (Big Bird)
  2. Linear Attention: 근사 (Linformer)
  3. Local Attention: 윈도우 기반 (처음 512 + 마지막 512)

ABCD 학습 목표

Understand (이해)

  • A: IT 교육 준비 중인 전문가 (운영 경험 있음)
  • B: 시각적/직관적으로 attention의 정보 흐름을 설명 가능
  • C: 임의의 시퀀스 (“The cat sat on mat” 등) 제시
  • D: 최소 3가지 다른 설명 방식 (Query-Key-Value, Information Routing, Weight Distribution)

Apply (적용)

  • A: 모델 선택/구성 담당자
  • B: 주어진 시퀀스 길이에 최적의 masking 전략 설계
  • C: 한국어 처리 모델, max_seq_length = 512, VRAM = 8GB
  • D: Attention 메모리 계산 및 최적화 방안 제시

Analyze (분석)

  • A: Transformer 모델 성능 최적화 전문가
  • B: Multi-head가 실제로 다양한 표현을 학습하는지 검증
  • C: 학습된 attention weight 행렬들
  • D: 헤드별 특화 패턴 식별 및 불필요한 헤드 발견

교육 설계 강점

3Blue1Brown 스타일의 장점

  1. 시각화: 정적 다이어그램보다 애니메이션

  2. 진행 순서:

    • 문제(ambiguity) 제시
    • 직관적 해결(정보 이동)
    • 수학적 공식화
    • 실제 implementation
  3. Scaffolding: 간단한 예(fluffy creature) → 복잡한 예(미스터리 소설)

한국 교육 적용 시 고려사항

  • 영어 문법(주어 뒤 술어)과 한국어(동사/형용사 문장 뒤)의 차이
  • “것” 관형사절 등 복잡한 구조에서 attention 패턴 설명

관련 문서


교육학 노트: 이 자료는 “수학을 먼저 배운 후 직관을 얻는” 전통적 순서를 반전시킴. 직관 → 예시 → 수학 → 코드 순서로 구성하여 성인 학습자(특히 산업 경험자)에게 높은 효과.