강의 소개
이번 강의에선 PyTorch 모델 저장 및 불러오는 방법과 이어 학습하기(Transfer Learning)를 학습합니다. state_dict의 의미와 모델의 파라미터를 여러 정보들과 함께 저장하고 불러오는 법을 배우고 전에 학습되어 있는 모델을 활용하는 법을 배웁니다.
본 강의에서 배운 것을 통해 Loss와 Metric에 따라 모델을 저장하고, 이어학습하기, 더 나아가 public site에 있는 학습해둔 모델 활용법까지 익힙니다.
즉, 다른 데이터에 pre-trained된 backbone model을 가져와서 현재 데이터셋에 적합하게 fine-tuning을 위한 강의 영상 정리!!
model.save()
학습의 결과를 저장하기 위한 함수
모델 형태(architecture)와 파라미터를 저장
모델 학습 중간 과정의 저장을 통해 최선의 결과 모델을 선택(early stopping)
model 파라미터 확인
model 파라미터 저장
model 파라미터 로드 :
model architecture와 함꼐 저장 및 load
일반적일 경우는 파라미터를 저장하고, architectur는 코드로 공유를 함

check points
학습의 중간 결과를 저장하여 최선의 결과를 선택
earlystopping 기법 사용시 이전 학습의 결과물을 저장
loss와 metric 값을 지속적으로 확인 저장
일반적으로 epoch, loss, metric을 함께 저장하여 확인
colab에서 지속적인 학습을 위해 필요

저장 시 방법

pretrained model
transfer learning

NLP에서는 HuggingFace가 사실상 표준!!
Freezing
Pretrained model을 활용시 모델의 일부분을 frozen 시킴
Task A과 같은 backone architecture에서 마지막 3개의 layer를 제거하고, dense layer를 추가하는 등 현재 데이터를 위한 weight를 생성함
여기서 기존 모델에서 특정 부분까지는 weight가 변하지 않게 조작하는데, 그것을 Freezing이라고 함.

최근에는 stepping freosen이라고 하여, 기존 모델에 4개의 weight matrix가 있을 때, 한 개만 frozen 시키고 나머지 3개는 학습, 1개씩 모두 frozen이 되도록 반복하는 stepping frozen을 사용하기도 함.
freezing 하고자 하는 parameter에 대해, requires_grad = False로 바꿔주면 됨
