경량화5 [논문 리뷰] Distilling Linguistic Context for Language Model Compression 목적 💡 기존의 경량화는 단어 간 관계를 고려하지 않았고 단어가 model의 encoder layer를 통과하며 어떻게 변화하는지도 고려하지 않았음 기존 경량화: 단순히 학생 모델이 선생 모델의 weight를 따라가도록, logit 값을 따라가도록 학습 본 논문: logit 값을 따라갈 뿐만 아니라 단어 간 관계 및 단어가 encoder layer를 통과하며 어떻게 변하는지도 고려해서 학습 실험 방법 Model: Google’s Multi-lingual-BERT model Pre-train BERT 모델에 Distillation하여 경량화 된 BERT모델을 만들고 각 task datasets을 이용한 Fine-tuning 후 성능 비교 Pre-train distillation datasets: Engli.. 2022. 6. 23. [경량화 패키지] TextBrewer 사용 후기 ※ Disiller.train() 🤔 TextBrewer를 사용한 경량화 학습 시 train 메서드의 인자는 다음과 같다. optimizer : 옵티마이저 dataloader : 데이터 로더 using PyTorch num_epochs : 학습할 epoch 설정 num_steps : 학습할 step 설정 callback : 학생 모델 검증 함수 batch_postprocessor : 후처리 (굳이 설정 안 해줘도 됨) scheduler_class : textbrewer에 있는 scheduler 함수 scheduler_args : scheduler_class 설정 용도 scheduler : 무시 max_grad_norm : gradient vanishing 방지를 위한 설정 🚫 주의 사항 num_steps.. 2022. 6. 17. [경량화 패키지] TextBrewer 학습 Process Total loss 정의 KD loss : Knowledge Distillation loss로 학생 모델의 logits이 교사 모델의 logits 분포를 따라가도록 학습 HL loss : Hard Label로 학생 모델의 logits이 groud truth of label을 따라가도록 학습 Intermediate_losses : 학생 모델의 encoder layer 분포가 교사 모델의 encoder layer 분포를 따라가도록 학습 다양한 기능 제공 > 자세한 사항은 textbrewer docs 참고 KD loss 관련 기능 KD loss weight 설정 temperature 관련 Parameters loss type 관련 Parameters HL loss 관련 기능 (+ Inermediate_loss.. 2022. 6. 17. [경량화 패키지] TextBrewer scripts info. Main scripts 🗂️TextBrewer |-🗂️src |-🗂️textbrewer |-📄configurations.py # teacher model 기반으로 Student model initial weight 값 설정 # DistillationConfig 의 input 으로 들어감 -IntermediateMatch(type:class) |-📄configurations.py # knowledge distillation 학습을 위한 hyperparameters setting -DistillationConfig(type:class) # distiller define & train script 나열(?)된 script |-📄distillers.py |-📄distiller_general.py -General.. 2022. 6. 17. [경량화 패키지] TextBrewer란? Simple info of Textbrewer lib. 💡 모델 경량화를 위한 함수를 제공해주는 scripts BERT 모델 뿐만 아니라 다양한 모델(ex. GPT, LSTM, etc...) 경량화 가능 Teacher & Student 모델 구조가 달라도 경량화 가능 (ex. Teacher: BERT, Student: LSTM) 다양한 loss function이 있고 사용자가 loss를 append할 수 있도록 코드 구성 Workflow Stage 1: Preparation: 교사 모델 선택 학생 모델 정의 학습 준비 (데이터, optim, lr_scheduler, etc...) Stage 2: Distillation with TextBrewer: TraningConfig 및 DistillationCon.. 2022. 6. 17. 이전 1 다음 반응형