← 문제 목록/Noam Schedule (Transformer inverse-sqrt) [medium]
문제 해설

Noam Schedule (Transformer inverse-sqrt) [medium]

학습률 스케줄 · medium

preview

Noam Schedule [medium]

v1 Linear warmup 은 warmup 이후 상수. Noam schedule (Vaswani et al. 2017, "Attention is All You Need") 은 warmup 뒤에 inverse square root decay:

ηt=dmodel0.5min(t0.5, ttw1.5)\eta_t = d_{\text{model}}^{-0.5} \cdot \min(t^{-0.5}, \ t \cdot t_w^{-1.5})

  • t<twt < t_w: ηt=d0.5ttw1.5\eta_t = d^{-0.5} \cdot t \cdot t_w^{-1.5} (선형 증가)
  • ttwt \ge t_w: ηt=d0.5t0.5\eta_t = d^{-0.5} \cdot t^{-0.5} (inverse sqrt 감소)
  • 정확히 t=twt = t_w 에서 두 branch 일치.

dmodeld_{\text{model}} 은 모델 차원 (예: 512 for base Transformer). 이 스케일링은 d\sqrt{d} 항이 attention softmax 의 분산과 균형을 이루게 해줌.

Noam vs Cosine

NoamCosine
WarmupLinear rampLinear ramp
Decayt1/2t^{-1/2} (느림)Cosine (매끄러움)
End lr0 으로 서서히lr_min 에 도달
적합오래 학습 (상황 변화 적음)고정 iteration 예산

원 Transformer 는 Noam 을 썼지만, 최근 (BERT/GPT) 은 대부분 Cosine + warmup.

과제

함수 noam_lr(t, warmup_steps, d_model) 를 완성하세요.

  • t: 스칼라/배열, 1-indexed (t=1 이 첫 스텝).
  • 반환: 같은 shape lr.
  • t=0 이면 t=1 로 취급하거나 결과 0 (문제는 t ≥ 1 가정).
  • 힌트: d_model**(-0.5) * min(t**(-0.5), t * warmup_steps**(-1.5)).

테스트 케이스

#이름검증
1t=warmup → 두 branch 일치t^(-1/2) = t · t_w^(-3/2) at t=twt=t_w
2warmup 영역 선형 증가t<twt < t_w
3warmup 이후 단조 감소t>twt > t_w
4decay asymptote: η0\eta \to 0 as tt \to \infty
5d_model 스케일: d=1024 → d=512 의 1/√2 배
6피크 lr = d0.5tw0.5d^{-0.5} \cdot t_w^{-0.5}t=twt = t_w
7벡터 입력 처리
코드 작성
Loading...
실행 결과

코드를 작성하고 Run 을 눌러보세요.