한줄 요약: RNN/CNN 없이 셀프 어텐션만으로 시퀀스를 처리하는 Transformer 아키텍처를 제안하여, NLP를 넘어 AI 전체의 기본 구조가 되었다.
| 항목 | 내용 |
|---|---|
| 저자 | Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin |
| 소속 | Google Brain, Google Research, University of Toronto |
| 발표 | NeurIPS 2017 |
| 링크 | arxiv.org/abs/1706.03762 |
| 키워드 | Transformer, Self-Attention, Encoder-Decoder, Positional Encoding |
2017년 시퀀스 모델링의 지배적 아키텍처는 RNN(LSTM, GRU)이었다:
RNN의 근본적 한계:
1. 순차 계산: h_t = f(h_{t-1}, x_t) → 토큰을 하나씩 순서대로 처리
→ 병렬화 불가 → GPU 활용 비효율
2. 장거리 의존성: 100번째 토큰이 1번째 토큰에 접근하려면
99단계의 순차 전파 → 기울기 소실/폭발
3. 메모리 병목: 고정 크기 hidden state에 모든 과거 정보를 압축
→ 정보 병목
CNN 기반 시도 (ConvS2S, ByteNet):
병렬 처리 가능하지만, 장거리 의존성은 여러 레이어 쌓아야 함
→ 거리 d의 의존성: O(d) 또는 O(log d) 레이어 필요
입력: X = [x₁, x₂, ..., xₙ]
각 토큰이 모든 다른 토큰과 직접 상호작용:
Q = XW_Q, K = XW_K, V = XW_V
Attention(Q, K, V) = softmax(QK^T / √d_k) V
핵심 이점:
- 모든 토큰 쌍 사이 거리 = O(1) → 장거리 의존성 해결
- 행렬 곱셈 → 완전 병렬화 가능
- 가중 평균 → 각 토큰이 관련 토큰에 선택적 주목
하나의 어텐션 = 하나의 "관점"
Multi-Head: 여러 관점에서 동시에 주목
head_i = Attention(QW_Qi, KW_Ki, VW_Vi)
MultiHead = Concat(head_1, ..., head_h) W_O
예시 (8 헤드):
head 1: 구문적 관계 (주어-동사)
head 2: 지시어 해결 (it → the cat)
head 3: 인접 토큰 관계
...
→ 다양한 종류의 의존성을 동시에 포착
Encoder (6 레이어):
각 레이어 = Self-Attention + Feed-Forward Network
→ 입력 시퀀스의 풍부한 표현 생성
Decoder (6 레이어):
각 레이어 = Masked Self-Attention + Cross-Attention + FFN
Masked: 미래 토큰을 보지 못하게 마스킹 (autoregressive)
Cross: 인코더 출력에 대해 어텐션 → 입력 정보 참조
Feed-Forward Network:
FFN(x) = max(0, xW₁ + b₁)W₂ + b₂
→ 위치별 독립 변환 (어텐션과 상보적)
문제: 어텐션은 순서 정보가 없음 (permutation-equivariant)
해결: 위치 정보를 입력에 추가
PE(pos, 2i) = sin(pos / 10000^(2i/d))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d))
→ 각 위치에 고유한 벡터 할당
→ 상대적 위치 관계를 내적으로 표현 가능
| 모델 | EN-DE BLEU | EN-FR BLEU | 학습 비용 |
|---|---|---|---|
| GNMT (LSTM) | 26.30 | 39.92 | 6.1 × 10¹⁹ FLOPs |
| ConvS2S (CNN) | 25.16 | 40.46 | 1.5 × 10²⁰ |
| Transformer (base) | 27.3 | 38.1 | 3.3 × 10¹⁸ |
| Transformer (big) | 28.4 | 41.0 | 2.3 × 10¹⁹ |
→ BLEU 2점 향상 + 학습 비용 대폭 감소 (GNMT 대비 1/3)
Transformer base: 12시간 (8 P100 GPU)
Transformer big: 3.5일 (8 P100 GPU)
vs GNMT: 6일 (96 K80 GPU)
→ 더 적은 GPU로 더 빠르게 학습 (병렬화 덕분)
| 변형 | EN-DE BLEU |
|---|---|
| Transformer base | 27.3 |
| − Multi-Head → Single Head | 25.8 |
| head 수: 1 → 4 → 8 → 16 | 25.8 → 26.9 → 27.3 → 27.3 |
| − Positional Encoding 제거 | 24.5 |
| 학습된 PE vs 사인 PE | 동등 |
이 논문을 2017년이 아닌 2024년에 리뷰하는 것은 역사적 관점에서의 재평가다. 당시에는 "번역에서 LSTM보다 좋은 모델"이었지만, 7년이 지난 지금 Transformer는 AI의 거의 모든 것이 되었다. 저자들도 이 파급력을 예상하지 못했을 것이다.
가장 중요한 설계 결정은 "어텐션만 사용한다"는 과감한 선택이다. 당시 RNN이 시퀀스 모델링의 정석이었고, 어텐션은 RNN을 "보조"하는 것으로 여겨졌다. RNN을 완전히 제거한 것은 학문적 용기였다.
흥미롭게도 Transformer의 O(n²) 한계를 극복하려는 연구(Linear Attention, Mamba 등)가 활발하지만, 아직 Transformer를 완전히 대체하지는 못했다. "단순함과 범용성"이라는 Transformer의 강점이 효율성의 약점을 상쇄하고 있기 때문이다.
관련 논문: BERT, GPT, ViT, Flash Attention, Mamba, RoPE