6. Attention과 Transformer
🧒 Transformer의 심장: 어텐션
어텐션 = 문장 읽을 때 중요한 단어에 형광펜 치기.
- Q (쿼리) = 내가 찾고 싶은 것 ("앉은 건 누구?")
- K (키) = 각 책의 제목 명찰 ("나는 고양이야")
- V (값) = 책 안의 실제 내용
- Q와 K 궁합 맞추기 → 잘 맞는 책의 V를 많이 참고
💡 Transformer가 대단한 이유: 문장의 첫 단어와 마지막 단어가 얼마나 떨어져 있든 한 번에 관계를 볼 수 있다. RNN은 순서대로 읽어야 했는데, 이건 병렬로 본다.
Transformer 아키텍처(Vaswani et al., 2017)는 RNN의 순차성과 CNN의 지역성을 모두 버리고, 자기주의(self-attention)만으로 시퀀스를 처리한다. 현대 AI의 중심축이므로 상세히 다룬다.
그림 6. 스케일드 닷-프로덕트 어텐션의 계산 흐름. Q·Kᵀ로 유사도를 측정 → softmax로 정규화 → V에 가중합 적용. 이것이 Transformer의 심장이다.
6.1 스케일드 닷-프로덕트 어텐션
입력 시퀀스 $\mathbf{X} \in \mathbb{R}^{n\times d}$에 대해 세 가지 선형 사영을 만든다: \[ \mathbf{Q} = \mathbf{X}\mathbf{W}^Q, \quad \mathbf{K} = \mathbf{X}\mathbf{W}^K, \quad \mathbf{V} = \mathbf{X}\mathbf{W}^V \] 어텐션 출력은: \[ \mathrm{Attention}(\mathbf{Q},\mathbf{K},\mathbf{V}) = \mathrm{softmax}\!\left(\frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d_k}}\right)\mathbf{V} \tag{6.1} \] $\sqrt{d_k}$로의 스케일링은 softmax 포화를 방지한다. 어텐션의 각 출력은 모든 위치의 값의 가중합이므로, 시퀀스 내 임의 거리의 의존성을 단일 층에서 모델링할 수 있다(경로 길이 $O(1)$).
6.2 다중 헤드 어텐션 (Multi-Head Attention)
단일 어텐션 대신 $h$개의 병렬 헤드를 사용한다: \[ \mathrm{MultiHead}(\mathbf{X}) = \mathrm{Concat}(\mathrm{head}_1, \dots, \mathrm{head}_h)\mathbf{W}^O \] 각 헤드는 서로 다른 부분공간에서 관계를 포착하며, 이는 문법·의미·참조 등 다양한 언어적 관계에 대응함이 경험적으로 관찰된다.
그림 7. 어텐션 가중치 행렬 시각화. 각 토큰(행)이 다른 토큰(열)에 얼마나 주의를 기울이는지. 대각선(자기 자신)이 진하고, "cat"은 "sat"에 강하게 주목한다.
6.3 Transformer 블록의 전체 구조
각 블록은 다음을 수행한다:
x = x + MultiHeadAttention(LayerNorm(x)) # Pre-LN 방식 (현대 표준)
x = x + FFN(LayerNorm(x))
# FFN(x) = W_2 · σ(W_1 · x) (보통 SwiGLU)
Pre-LayerNorm(Xiong et al., 2020)은 훈련 안정성을 크게 향상시켜 GPT-2 이후 표준이 되었다. 잔차 연결은 그래디언트 고속도로 역할을 한다.
그림 8. Transformer 블록의 해부도. 어텐션과 FFN이 교대로 쌓이며, 각각 잔차 연결과 LayerNorm으로 둘러싸인다. 이 블록이 수십~수백 번 반복되어 LLM이 된다.
6.4 위치 인코딩 (Positional Encoding)
자기주의는 순열 등변(permutation-equivariant)이므로 순서를 명시적으로 주입해야 한다.
- 절대 위치: sinusoidal (Vaswani et al., 2017) 또는 학습된 임베딩.
- 상대 위치: Shaw et al.(2018), T5-style.
- RoPE (Rotary Position Embedding, Su et al., 2021): 쿼리·키 벡터를 회전시켜 상대 위치를 주입. 현재 Llama, Qwen, GPT-NeoX 등 대부분의 현대 LLM에서 채택.
- ALiBi(Press et al., 2022): 어텐션 점수에 거리 비례 편향을 가산, 길이 외삽에 유리.
6.5 어텐션의 계산 복잡도와 해결책
표준 어텐션은 시퀀스 길이 $n$에 대해 $O(n^2 d)$의 시간·메모리를 요구하여, 긴 맥락 처리의 병목이다.
- FlashAttention(Dao et al., 2022): 커널 융합과 타일링으로 메모리 I/O를 최소화. 근사가 아닌 정확한 계산.
- 희소 어텐션: Longformer, BigBird 등 $O(n)$ 근사.
- Mamba / SSM(Gu & Dao, 2023): 상태 공간 모델로 선형 복잡도 달성, 긴 맥락 후보.
- Grouped-Query Attention (GQA)(Ainslie et al., 2023): 여러 쿼리 헤드가 하나의 키·값 헤드 공유. 추론 시 KV 캐시 감소.
6.6 인코더-디코더 변형
원본 Transformer는 번역을 위한 인코더-디코더였으나, 이후 세 계통으로 분화되었다:
- 인코더 전용: BERT, RoBERTa — MLM으로 양방향 표현 학습. 분류·검색.
- 디코더 전용: GPT 계열 — 인과 마스킹으로 자기회귀 생성. 현재 LLM의 지배적 아키텍처.
- 인코더-디코더: T5, BART — 번역·요약 등 seq2seq.