전체코드

nlp/single_task_model.py at main · mirageoasis/nlp

1. 초기화

모델을 초기화 하는 과정이다.

def __init__(self, **kwargs):
        super().__init__()
        self.save_hyperparameters() # 이 부분에서 self.hparams에 위 kwargs가 저장된다.
        
        self.model = AutoModelForSequenceClassification.from_pretrained(self.hparams.pretrained_model, return_dict=True, num_labels=11)
        self.tokenizer = AutoTokenizer.from_pretrained(
            self.hparams.pretrained_tokenizer
            if self.hparams.pretrained_tokenizer
            else self.hparams.pretrained_model
        )

처음 모델을 train 시킬 때 모델, 토크나이저 그리고 hyper parameter를 초기화를 해주는 구간이다.

super().__init__()
self.save_hyperparameters() # 이 부분에서 self.hparams에 위 kwargs가 저장된다.

super class의 초기화 함수를 실행하고, kwargs를 통해 받아온 parameters를 초기화 시켜준다.

 
self.model = AutoModelForSequenceClassification.from_pretrained(self.hparams.pretrained_model, return_dict=True, num_labels=11)

현재 모델의 특성상 분류하는 라벨이 11개 이므로 num_labels=11로 설정한다. 그리고 리턴타입은 dictionary로 해준다.(forward에서 편하다) 이외에 필요한 parameter를 넘겨준다.

모델 파인튜닝에 필요한 매게변수는 여기서 참고가 가능하다. from_pretrained 문서에는 존재하지 않는다.