본문 바로가기
Natural Language Processing/Model Compression

[경량화 패키지] TextBrewer란?

by beeny-ds 2022. 6. 17.

Simple info of Textbrewer lib.

💡 모델 경량화를 위한 함수를 제공해주는 scripts

  • BERT 모델 뿐만 아니라 다양한 모델(ex. GPT, LSTM, etc...) 경량화 가능
  • Teacher & Student 모델 구조가 달라도 경량화 가능 (ex. Teacher: BERT, Student: LSTM)
  • 다양한 loss function이 있고 사용자가 loss를 append할 수 있도록 코드 구성

Workflow

출처:https://github.com/airaria/TextBrewer

  • Stage 1: Preparation:
    1. 교사 모델 선택
    2. 학생 모델 정의
    3. 학습 준비 (데이터, optim, lr_scheduler, etc...)
  • Stage 2: Distillation with TextBrewer:
    1. TraningConfig 및 DistillationConfig 정의 → distiller class 인자로 사용
    2. Adaptor와 Callback 정의 → distiller class 인자로 사용
      • Adaptor: 모델 입력 및 출력에 사용
      • Callback: 학습 상태 저장을 위해 사용
    3. train 메서드로 학습 진행

 

사용 후기

  • github에서 코드 개발은 오류 해결 정도만 진행되는 것 같으나 경량화에 관심이 있다면 사용 추천
  • docs도 깔끔하고 가독성이 좋게 구성되어 있으나 github 내부에서는 스크립트 파일들의 level이 안 맞는 건 아쉬움
  • 개인적으로 HuggingFace랑은 구분해서 사용 추천

 

TextBrewer 패키지 관련 글

이후 글

2022.06.17 - [Natural Language Processing/Model Compression] - [경량화 패키지] TextBrewer scripts info.

2022.06.17 - [Natural Language Processing/Model Compression] - [경량화 패키지] TextBrewer 학습 Process

2022.06.17 - [Natural Language Processing/Model Compression] - [경량화 패키지] TextBrewer 사용 후기

 

반응형

댓글