티스토리 뷰

huggingface의 Transformer를 Train class를 이용해 학습시키면 checkpoint가 생성된다. checkpoint는 학습 중에 모델의 파라미터와 다른 관련 정보를 학습의 일정 point마다 snapshot을 생성하는 것과 같다. 

 

# checkpoint가 유용한 이유

  • 학습 재개 : 학습이 의도치 않게 중단되는 경우, checkpoint에 저장된 가장 마지막 step부터 학습을 시작할 수 있다. 
  •  원하는 성능의 모델 사용 : 일정 간격으로 저장된 모델 중 원하는 단계를 선택해 fine-tuning을 하거나, evaluation을 할 수 있다. train loss는 낮았지만 evaluation dataset에는 그렇지 않을 수 있으므로 저장된 단계별로 eval dataset의 성능을 확인하고 원하는 단계의 모델을 선택해서 사용할 수 있다.
# checkpoint 저장
model.save_pretrained('bert_checkpoint')

# checkpoint 부터 학습재개
loaded_model = AutoModel.from_pretrained('bert_checkpoint')

 

 

# checkpoint에 저장되는 정보

Trainig argument에서 save_total_limit을 2개로 설정하면 최대 2개의 checkpoint만 생성이 된다. 

 

checkpoint중 하나에 들어가보면 아래와 같은 파일이 생성되어 있다. 

  • config.json : 모델의 구성을 저장하는 JSON 파일. 모델의 아키텍처, 하이퍼파라미터 등의 정보가 포함됨
  • pytorch_model.bin : pytorch모델의 가중치를 저장하는 binary 파일. 모델의 학습된 가중치가 포함됨
  • optimizer.pt : optioner의 상태를 저장하는 파일
  • scheduler.pt : scheduler의 상태를 저장하는 파일
  • trainer_state.json : Trainer 객체의 설정과 훈련 상태에 관련된 정보가 포함. 현재 epoch, 현재 훈련 step, 기타 훈련 관련 설정 등
  • rng_state.pth : pytorch 모델의 학습을 재현 가능하도록 하는 데 사용되는 파일. 모델 학습 중에 발생한 random seed 상태를 저장하는데 사용됨. 모델 학습 중에 중단된 경우, 학습을 다시 시작할 때 동일한 random seed상태를 사용하여 학습을 재개하거나, 다른 컴퓨터나 환경에서 같은 실험을 재현할 때, 동일한 random seed상태를 사용하도록하는데 사용된다. 
  •  tokenizer 관련 파일 : spm.model, tokenizer_config.json, tokenizer.json, added_tokens.json

 

참고자료

https://medium.com/@sujathamudadla1213/what-is-checkpoint-in-hugging-face-transformers-d67e6b0db5b9

'NLP' 카테고리의 다른 글

tokenizer train  (0) 2024.03.29
huggingface repository create / delete / clone / push  (0) 2024.03.28
[NLP] gensim Word2Vec을 이용한 embedding vector train  (0) 2023.03.26
[NLP] word embedding - CBOW  (0) 2023.03.04
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
글 보관함