본문 바로가기

NLP

Transformer와 Noam scheduling

Knowledge Tracing task를 위해 transformer encoder-decoder 기반 SAINT 모델을 학습시키던 중 model dimension이 256, 512일 때 학습이 잘 되지 않는 현상이 발생했다. Dimension이 128일 때는 잘 됐는데...

 

논문에서 Training Details 쪽을 보니 "We use the so-called Noam scheme to schedule the learining rate as in [22] with warmup_steps set to 4000." 이란 언급이 있었다. [22]는 "Attention is all you need" 논문이고,

해당 내용은 위와 같다.

 

적용해보니 신기하게도 학습이 잘 된다!

 

수식을 살펴보면 warmup_step까지는 일정하게 증가하다가(step_num * warmup_steps^-1.5이 더 작고, 계속 증가한다),  그 후로는 작아진다.

 

하지만 그것 외에도, 모델의 dimension을 고려하여 learning rate를 정한다는 점이 중요한 것 같다. Dimension이 크면 클수록 learning rate가 작아진다.

 

코드는 링크를 참조했다.