Ch.7 Attention — AI의 집중력
어텐션 히트맵 시각화
AI가 어디를 '바라보는지' 볼 수 있다면?
어텐션 가중치를 색깔로 표현하면 — 진한 색은 강한 주목, 연한 색은 약한 주목 — AI의 '시선'이 보입니다.
'The cat sat on the mat'에서 'cat'은 어떤 단어에 주목할까?
어텐션 히트맵 — AI의 집중 패턴을 시각적으로 확인하는 도구입니다.
핵심 내용
어텐션 가중치를 시각화해봅시다
import numpy as np
# === 어텐션 히트맵 시각화 ===
tokens = ["The", "cat", "sat", "on", "the", "mat"]
# 가상의 어텐션 가중치
attention = np.array([
[0.10, 0.05, 0.02, 0.01, 0.80, 0.02], # "The" → "the"
[0.05, 0.30, 0.10, 0.05, 0.05, 0.45], # "cat" → "mat"
[0.02, 0.40, 0.20, 0.10, 0.03, 0.25], # "sat" → "cat"
[0.05, 0.05, 0.10, 0.15, 0.05, 0.60], # "on" → "mat"
[0.75, 0.05, 0.03, 0.02, 0.10, 0.05], # "the" → "The"
[0.02, 0.35, 0.05, 0.50, 0.03, 0.05], # "mat" → "on"
])
# 히트맵을 텍스트 블록으로 시각화
shade = " ░▒▓█"
print("=== 어텐션 히트맵 ===")
print(f"{"":>6s}", end="")
for t in tokens:
print(f"{t:>6s}", end="")
print()
for i, token in enumerate(tokens):
print(f"{token:>6s}", end="")
for j in range(len(tokens)):
level = min(4, int(attention[i][j] * 5))
block = shade[level] * 4
print(f" {block}", end="")
print()
# 가장 강한 연결 표시
print("\n주요 어텐션 연결:")
for i, token in enumerate(tokens):
j = np.argmax(attention[i])
print(f" '{token}' ──({attention[i][j]:.2f})──▶ '{tokens[j]}'")어텐션 패턴에서 언어의 구조가 보입니다
어텐션 히트맵에서 발견되는 패턴: 'The' ↔ 'the': 같은 단어 참조 (0.80) 'cat' → 'mat': 주어-장소 연결 (0.45) 'sat' → 'cat': 동사-주어 연결 (0.40) 'on' → 'mat': 전치사-목적어 연결 (0.60) → 어텐션이 문법 구조를 자동으로 학습!
GPT-3는 96개의 어텐션 헤드를 동시에 사용합니다
각 헤드가 다른 관계를 포착: 헤드 A: 문법 관계 (주어 ↔ 동사) 헤드 B: 대명사 참조 ('그것' → '고양이') 헤드 C: 위치적 근접성 (인접 토큰) 헤드 D: 구두점 패턴 (문장 경계) 이 모든 것이 행렬 곱셈 + 소프트맥스 + 역전파로 자동 학습됩니다.
'sat'이 'cat'에 높은 어텐션(0.40)을 보이는 이유는?
멀티헤드 어텐션에서 각 헤드는 서로 다른 종류의 관계를 학습한다.
어텐션 히트맵에서 'on'이 'mat'에 높은 가중치(0.60)를 보이는 이유는?
GPT-3는 몇 개의 어텐션 헤드를 사용하나요?
멀티헤드 어텐션의 출력은 각 헤드의 출력을 합산(sum)한 것이다.
Attention 마스터!
정리 노트
어텐션 히트맵 — AI의 시선을 시각화하다
히트맵 해석
- 진한 색
- 강한 주목 — 두 토큰 사이의 관련성이 높음
- 연한 색
- 약한 주목 — 두 토큰 사이의 관련성이 낮음
- 행(row)
- 해당 토큰이 다른 토큰들에 배분한 주의 (합=1)
발견되는 패턴
- 동사→주어
- 'sat' → 'cat' (0.40) — 문법 관계 포착
- 전치사→목적어
- 'on' → 'mat' (0.60) — 구문 구조 포착
- 같은 단어
- 'The' ↔ 'the' (0.80) — 동일 단어 참조
멀티헤드의 역할 분화
- 헤드 A
- 문법 관계 (주어 ↔ 동사)
- 헤드 B
- 대명사 참조 ('그것' → '고양이')
- 헤드 C
- 위치적 근접성 (인접 토큰)
어텐션 패턴은 학습 데이터로부터 자동으로 학습되며, 문법 구조를 스스로 발견한다
시각 자료
핵심 정리
- 1Q(검색어) × Kᵀ(색인) → 유사도 → Softmax → 가중치 × V(내용)
- 2NumPy로 6단계 셀프 어텐션 직접 구현
- 3히트맵으로 어텐션 패턴(문법, 의미, 참조) 시각화
- 4GPT-4: 128개 헤드가 각기 다른 관계를 동시 포착
퀴즈와 인터랙션으로 더 깊이 학습하세요
play_circle인터랙티브 레슨 시작