Transformer 훈련을 가능하게 하는 다섯 가지 설계 결정
Warmup 스케줄의 이론적 정당성부터 AdamW의 분리된 weight decay, label smoothing의 calibration 효과, gradient accumulation의 선형 스케일링 법칙, BF16 mixed precision까지 — 현대 LLM 훈련 레시피의 공통 철학을 추적한다.
- 02 Transformer Block은 왜 이 네 요소의 조합인가
- 03 Positional Encoding은 어떻게 진화했나
- 04 Transformer 훈련을 가능하게 하는 다섯 가지 설계 결정
- 05 Attention의 O(T²) 벽을 어떻게 부수는가
- 06 BERT, GPT, T5, ViT, MoE — 다섯 아키텍처는 하나의 질문에 답한다
- 07 LLM은 왜 클수록 똑똑한가 — Scaling Laws의 세계
GPT-3, LLaMA, PaLM은 모두 다른 아키텍처처럼 보이지만 훈련 레시피는 놀랍도록 수렴해 있다. Linear warmup + cosine decay, AdamW, label smoothing, gradient accumulation, BF16 — 이 다섯 가지가 현대 Transformer 훈련의 사실상 표준이다. 왜 하필 이 다섯 가지인가?
불안정한 출발점에서의 탈출 — Warmup
Post-LN Transformer는 초기 gradient가 레이어 깊이 에 따라 로 누적된다. 큰 learning rate에서 학습을 시작하면 첫 몇 스텝 안에 loss가 발산한다. Warmup은 이 문제를 직접 우회하는 장치다.
작은 에서 시작하면, gradient가 폭발해도 parameter update 크기인 가 작다. LayerNorm의 가 학습되면서 gradient가 안정되면 그때 full LR로 진입한다.
Warmup 이후의 decay로는 cosine이 표준이다.
Cosine은 학습 초반에 빠르게 감소하다 후반부 수렴 구간에서 천천히 줄어드는 형태로, linear decay보다 fine-tuning 효과가 좋다. LLaMA-2는 peak LR의 10%까지만 내려가는 partial decay를 채택해 continued pretraining 가능성을 남겨 둔다.
BERT는 warmup ratio 1%, GPT-3는 0.1%, LLaMA-2는 0.3%. 큰 모델일수록 전체 step 수 대비 warmup 비율이 작아진다. Token 기준으로는 10B tokens 내외를 warmup에 쓰는 방식이 현대 레시피의 경향이다.
Weight Decay를 분리한 이유 — AdamW
표준 Adam에 L2 regularization을 추가하면 항이 gradient에 더해진다. 그런데 이 항도 second moment 에 들어간다.
결과적으로 L2 penalty의 effective decay가 로 나뉘어 dampening된다. 파라미터 크기가 클수록 가 커져 decay가 더 약해지는, 의도와 정반대의 효과다.
AdamW(Loshchilov & Hutter 2019)는 weight decay를 update에 직접 분리한다.
decay 항이 adaptive learning rate의 영향을 받지 않으므로 effective decay가 정확히 다. GPT-3, LLaMA, BERT 모두 (bias와 LayerNorm 파라미터는 제외)을 쓴다.
BERT는 를 쓰지만, LLaMA-2와 GPT-3는 를 쓴다. 큰 모델에서 레이어별 gradient 분포가 빠르게 변하기 때문에 긴 averaging window가 오히려 stale estimate를 만든다. 도 함께 로 키워 small- 영역의 불안정을 방지한다.
모델의 과신을 막는 장치 — Label Smoothing
Hard one-hot label로 학습하면 모델은 정답 class의 logit을 무한히 키우려 한다. Cross-entropy loss를 0으로 만들기 위해 이 되어야 하므로, logit 크기에 상한이 없다. 결과는 over-confidence와 poor calibration이다.
Label smoothing은 정답 분포를 균등 분포 방향으로 섞는다.
이 분포를 최소화하는 는 로 cap된다. , 이면 logit 차이의 상한이 로 유한해진다.
Müller 2019의 핵심 발견: smoothed teacher는 틀린 클래스들 간의 상대적 ranking — 이른바 “dark knowledge” — 을 손실한다. Student가 이 정보를 학습하지 못해 1-2% 정확도 손실이 생긴다. LLM pre-training에서 label smoothing을 쓰지 않는 또 다른 이유는 vocabulary가 50K+로 커 의 영향이 미미하고, next token prediction의 정답이 본질적으로 ambiguous하기 때문이다.
메모리와 규모 사이 — Gradient Accumulation과 선형 스케일링
GPU 한 장에 batch 32밖에 안 올라가도, 4 step을 accumulate하면 effective batch 128과 수학적으로 동일하다.
각 micro-batch의 gradient 평균이 큰 batch의 gradient 평균과 같다는 동치 관계다. 여기서 Goyal 2017의 Linear Scaling Rule이 성립한다: batch 일 때 로 같이 키우면 학습 곡선이 거의 일치한다.
직관: 번 작은 step을 밟은 것이 배 큰 step 한 번과 같으려면, LR도 배가 되어야 한다. 단, Adam에서는 분모가 자동으로 일부 scaling을 처리하므로, 매우 큰 batch에서는 scaling이 더 안정적이다. GPT-3의 3.2M tokens effective batch는 이 framework 위에 있다.
속도와 정밀도의 균형 — BF16 Mixed Precision
FP16은 exponent가 5 bit으로 dynamic range가 에 불과하다. LLM gradient의 tail은 아래로 내려가는데, 이 값들이 FP16에서 subnormal 또는 0으로 플러시된다. Loss scaling(, 전형적으로 )이 이를 막지만 파이프라인을 복잡하게 만든다.
BF16은 exponent를 FP32와 동일한 8 bit로 유지하고 mantissa만 7 bit으로 줄였다. Dynamic range가 으로 확장되어 gradient underflow가 사라진다. Mantissa 7 bit의 정밀도( 상대 오차)는 LLM의 weight update magnitude 수준에서 충분하다.
| Format | Exponent | Mantissa | Range | Loss Scaling |
|---|---|---|---|---|
| FP16 | 5 bit | 10 bit | ±65504 | 필요 |
| BF16 | 8 bit | 7 bit | ±10³⁸ | 불필요 |
| FP32 | 8 bit | 23 bit | ±10³⁸ | — |
Master weight은 FP32로 유지한다. Update 크기가 인데 weight이 이면, BF16의 mantissa 7 bit으로는 누적 업데이트가 소실된다. Forward는 BF16으로, 누적은 FP32로 — 속도와 정밀도를 분리한다. 2023년 이후 LLaMA, Mistral, PaLM 모두 BF16이 기본이다.
정리
다섯 가지 결정은 각자 독립된 기법이 아니라 하나의 공통 철학에서 나온다 — 불안정한 수치 환경에서 신호를 보존하라.
- Warmup은 초기 gradient 폭발을 작은 step으로 흡수한다.
- AdamW는 weight decay가 adaptive LR에 의해 왜곡되는 것을 막는다.
- Label smoothing은 무한히 커지려는 logit에 유한한 상한을 부여한다.
- Linear scaling rule은 batch 크기와 LR의 일관성을 유지한다.
- BF16은 gradient의 dynamic range를 보존하면서 Tensor Core 속도를 가져온다.
이 다섯 가지를 함께 쓰면 수천억 파라미터의 모델도 안정적으로 수렴한다. 다음 챕터에서는 이렇게 훈련된 모델이 추론 시 마주치는 병목, quadratic attention complexity로 넘어간다.