6. Attention과 Transformer

🧒 Transformer의 심장: 어텐션

어텐션 = 문장 읽을 때 중요한 단어에 형광펜 치기.

"The cat sat on the mat"에서 "sat(앉았다)"을 이해하려면 "cat(누가?)"을 봐야 한다. 어텐션이 "cat에 70% 주목, 나머지 30%"로 가중치를 매긴다.
Q·K·V는 도서관 비유:
  • Q (쿼리) = 내가 찾고 싶은 것 ("앉은 건 누구?")
  • K (키) = 각 책의 제목 명찰 ("나는 고양이야")
  • V (값) = 책 안의 실제 내용
  • Q와 K 궁합 맞추기 → 잘 맞는 책의 V를 많이 참고

💡 Transformer가 대단한 이유: 문장의 첫 단어와 마지막 단어가 얼마나 떨어져 있든 한 번에 관계를 볼 수 있다. RNN은 순서대로 읽어야 했는데, 이건 병렬로 본다.

Transformer 아키텍처(Vaswani et al., 2017)는 RNN의 순차성과 CNN의 지역성을 모두 버리고, 자기주의(self-attention)만으로 시퀀스를 처리한다. 현대 AI의 중심축이므로 상세히 다룬다.

X 입력 시퀀스 × W^Q × W^K × W^V Q K V Query (질의) Key / Value Q · Kᵀ / √dₖ 유사도 점수 softmax 가중합 × V Z 출력

그림 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 \] 각 헤드는 서로 다른 부분공간에서 관계를 포착하며, 이는 문법·의미·참조 등 다양한 언어적 관계에 대응함이 경험적으로 관찰된다.

The
cat
sat
on
the
mat
0.1
0.8
0.3
0.05
0.02
0.4
0.05
0.5
0.9
0.2
0.03
0.3
0.02
0.1
0.6
0.7
0.2
0.5
0.03
0.08
0.15
0.3
0.85
0.25
0.1
0.45
0.25
0.4
0.2
0.9

그림 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 이후 표준이 되었다. 잔차 연결은 그래디언트 고속도로 역할을 한다.

입력 임베딩 + 위치 LayerNorm Multi-Head Self-Attention Q, K, V 병렬 처리 + 잔차 연결 LayerNorm Feed-Forward W₂ · SwiGLU(W₁x) (4× 확장 → 축소) + 출력 → 다음 블록 × N회 반복 (GPT-4: ~120) (Llama-70B: 80) Softmax → 다음 토큰

그림 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.
← 신경망대규모 언어모델 →