fyi
공개된 LIMO는 15 epoch를 학습시킨 후에, 각 epoch를 비교해서 가장 성능이 높은 9epoch 모델을 LIMO로 채택했다고 합니다.
저자의 언급은 다음 링크에. https://github.com/GAIR-NLP/LIMO/issues/5#issuecomment-2660791415
그리고, 학습 중 loss 값과 하이퍼파라미터들은 다음 링크에서 확인하실 수 있습니다.
https://huggingface.co/GAIR/LIMO/blob/main/trainer_state.json.
9 epoch == 234 step ( 817 datas / 32 batch size * 9 epoch) 시점의 모델이 채택됐는데요.
언급하신 환경에서 단순 계산으로는 3,4 epoch 가 성능이 더 좋을 수도 있겠네요.
참고로, 다른 분께서 reproductive result를 내보았을때 성능은 아래와 같았습니다.
Step | AIME24 | MATH500 | GPQA |
100 | 0.5000 | 0.9280 | 0.5000 |
200 | 0.6000 | 0.9320 | 0.5909 | == 약 8 epoch
300 | 0.5333 | 0.9380 | 0.5758 |
382 | 0.4667 | 0.9380 | 0.5859 |
논문에서는 9 epoch 에서 GPQA 0.667가 나오니 performance gap 이 생기는데요.
저자는 batch size가 다르니 확인해보라고 합니다.
4xH200 SXM 로 학습하셨는데 혹시 더 나은 성능을 원하시면 (4 nodes x 8 gpus x 1 batch per gpu) == 32 로 학습해보시는걸 추천드립니다!
추가적으로, 입력 데이터의 토큰 개수를 max_seq_len=16384 로 학습하였다고 합니다.
DeepScaleR 같은 경우 GRPO로 학습 시에 길이가 짧은 8k 먼저 학습 시키고 추가적으로 16k, 24k 까지 학습시키는 방법을 사용하기도 하는데 한 번 적용하셔도 좋을 것 같아요~
윽 그렇군요... 파이널(e5) 체크포인트는 있는데, epoch 3 시점의 체크포인트는 없어서 확인이 안되는 게 아쉽네요ㅠ
게다가 안그래도 총 배치 크기나 gpu 갯수같은게 안나와있어서, 제 임의로 총 배치 사이즈 8 (4x2)로 뒀더니, loss가 많이 불안정한 모습이 불안했습니다.
현재 이 모델도 HRM8K 써서 테스트 수행하고 있는데, 오리지널 모델보다는 개선이 있지만 reasoning 특유의 압도적인 퍼포먼스는 안나와서 고민하고 있는 중입니다.
말씀하신 부분들(early stopping, batch size, 다단계 학습) 적용해서 천천히 꾸준히 깎아보겠습니다. 감사합니다.