Transformer 아키텍처
"Attention Is All You Need" — RNN 없이 Attention만으로 시퀀스를 처리하는 혁명적 아키텍처
📌 이 글의 목적
Transformer는 현대 AI의 기반 아키텍처임. GPT, BERT, Claude, Gemini, Llama 모두 Transformer 기반. 이 글은 Transformer의 내부 동작을 수학적 직관과 함께 이해하는 것이 목표.
1. 왜 Transformer인가
| RNN의 한계 | Transformer의 해결 |
|---|---|
| 순차 처리 → 병렬화 불가 | Self-Attention → 완전 병렬 처리 |
| 긴 시퀀스 → 기울기 소실 | 어떤 위치든 직접 참조 → 장거리 의존성 |
| 학습 느림 | GPU 활용 극대화 → 대규모 학습 가능 |
2. Self-Attention 메커니즘
2.1 Query, Key, Value
모든 토큰이 세 가지 벡터를 가짐:
| 벡터 | 역할 | 비유 |
|---|---|---|
| Query (Q) | "나는 무엇을 찾고 있는가" | 검색어 |
| Key (K) | "나는 어떤 정보를 가지고 있는가" | 문서 제목 |
| Value (V) | "내가 제공할 실제 정보" | 문서 내용 |
2.2 Attention 계산
Attention(Q, K, V) = softmax(Q · Kᵀ / √dₖ) · V
단계별:
- Q와 K의 내적 → 각 토큰 쌍의 유사도(관련성) 점수
- √dₖ로 나눔 → 값이 너무 커지는 것 방지 (Softmax 안정화)
- Softmax → 확률로 변환 (합계 = 1)
- V와 곱셈 → 관련 있는 토큰의 정보를 가중합으로 수집
💡 핵심 직관: "나는 밥을 먹었다"에서 "먹었다"를 처리할 때, Query("먹었다")와 Key("밥을")의 내적이 크므로 → "밥을"의 Value에 높은 가중치를 줌 → "먹었다"의 출력에 "밥을"의 정보가 많이 반영됨.
2.3 Masked Self-Attention (디코더용)
GPT(Decoder-only)에서는 미래 토큰을 참조하면 안 됨 (다음 토큰 예측이 목표이므로).
Mask를 적용하여 현재 위치 이후의 토큰에 대한 Attention을 -∞로 설정 → Softmax 후 0이 됨.
3. Multi-Head Attention
3.1 왜 여러 개의 헤드인가
하나의 Attention은 하나의 관점에서만 관계를 포착함. 여러 헤드를 병렬로 실행하면 다양한 관계를 동시에 포착 가능.
| 항목 | 설명 |
|---|---|
| 헤드 수 | 보통 8, 16, 32, 64개 (모델 크기에 비례) |
| 각 헤드의 차원 | d_model / 헤드 수 |
| 효과 | 다양한 관계 패턴을 병렬로 학습 |
4. Positional Encoding
4.1 왜 필요한가
Self-Attention은 순서를 모름. "나는 밥을 먹었다"와 "밥을 나는 먹었다"가 같은 Attention 결과를 냄. 위치 정보를 별도로 주입해야 함.
4.2 방법
| 방법 | 원리 | 사용 |
|---|---|---|
| 사인/코사인 | sin/cos 주파수로 위치 인코딩 | 원래 Transformer |
| 학습 가능 임베딩 | 위치별 벡터를 학습 | ✅ GPT, BERT |
| RoPE (Rotary PE) | 회전 행렬로 상대적 위치 인코딩 | ✅ Llama, 최신 LLM |
| ALiBi | Attention에 위치 기반 페널티 | 일부 모델 |
5. Transformer 전체 구조
5.1 Encoder-Decoder (원래 Transformer)
5.2 핵심 컴포넌트
| 컴포넌트 | 역할 |
|---|---|
| Multi-Head Self-Attention | 토큰 간 관계 학습 |
| Feed-Forward Network | 각 토큰 독립적으로 비선형 변환 (2층 MLP) |
| Layer Normalization | 학습 안정화 |
| Residual Connection | 기울기 소실 방지 (ResNet에서 가져옴) |
| Positional Encoding | 순서 정보 주입 |
6. 세 가지 변형
| 변형 | 핵심 | 대표 모델 | 주요 용도 |
|---|---|---|---|
| Encoder-only | 양방향 Attention. 입력 전체를 동시에 봄 | BERT, RoBERTa | 분류, 임베딩, NER |
| Decoder-only | Masked Attention. 왼→오 단방향 | GPT, Claude, Llama | ✅ 텍스트 생성, LLM |
| Encoder-Decoder | 인코더의 출력을 디코더가 Cross-Attention으로 참조 | T5, BART | 번역, 요약 |
7. Transformer가 강력한 이유
| 이유 | 설명 |
|---|---|
| 병렬 처리 | 모든 토큰을 동시에 처리 → GPU 활용 극대화 |
| 장거리 의존성 | 모든 토큰이 모든 토큰을 직접 참조 (O(n²)) |
| 스케일링 | 모델/데이터를 키우면 예측 가능하게 성능 향상 (Scaling Law) |
| 범용성 | 텍스트, 이미지(ViT), 음성, 비디오, 단백질 구조까지 |
다음 글
→ LLM Overview — 대규모 언어 모델의 진화, Scaling Law, 추론 최적화