Pretraining, Fine tuning, Transfer learning이란? + workflow

Hyun·2022년 6월 27일
0

NLP

목록 보기
6/8

Pretraining Model이란?

사전 학습된 모델으로 광범위한 dataset 혹은 특정 task에 맞는 dataset으로 훈련된 Model이다.

Fine tuning이란?

새 task를 위해 새로운 모델로 처음부터 학습시키는 대신 대규모 데이터셋에서 이미 학습된 사전 학습(pre-train) 모델을 사용하고, 새로운 task에 따라 가중치를 조정(Fine tuning)하는 방식이다.

  • 임의 가중치로 모델을 초기화하는 대신 이미 학습된(Pretraining된) 모델의 가중치로 모델을 초기화
  • 출력층 및 출력층에 가까운 부분 혹은 모든 층의 파라미터를 원하는 task에 맞게 다시 학습하여 미세조정하는 기법

Transfer learning이란?

전이 학습이란 학습된 모델을 기반으로 최종 출력층을 바꿔 학습하는 기법이다.

Bert Fine tuning

Bert 모델 Fine tuning하여 사용할 때 장점

  1. 더 빠른 개발 : 이미 광범위한 데이터에 대하여 훈련되어 있기 때문에 2~4 epochs(Bert 저자의 권장에 의하면)만 반복하더라도 원하는 결과를 얻을 수 있기 때문에 훈련 시간이 짧다.
  2. Bert가 이미 충분히 광범위한 언어 dataset으로 훈련되어있기 때문에 적은 dataset만으로도 추가 훈련하여 원하는 task를 풀 수 있다.
  3. bert기반으로 훈련된 모델들이 특정 작업에서 state of the art 결과를 내고 있기 때문에 때로는 bert를 Fine-tuning하여 특정 task를 해결하는 것이 모호한 아키텍처를 구현하는 것 보다 낫다.

Workflow

GPU 사용 권고 ( CUDA )

  1. Load dataset
  2. EDA ( DataSet 만들면서 수행 가능 )
  3. train, validation, test 나누기
  4. Dataset(DataLoader) 만들기
  5. tokenizing -> Dataset(DataLoader) 만들면서 수행 가능
  6. Custom Model 만들기
  7. Model, Optimizer, Scheduler 생성
  • Optimizer : AdamW, 학습률 설정
    • eps = 1e-8 : 0으로 나누는 것을 방지하기 위한 매우 작은 숫자
  • Scheduler : 학습률(Learning rate) 감소를 상황에 따라 조절
  1. Checkpoint 생성 -> Train에 추가
  2. Train, validation 메소드 구현
  3. 모델 fitting ( Fine-Tuning )
  4. 하이퍼파라미터 조정하여 최적의 모델 찾기
  • BERT 논문에 의하면
    • batch size : 16, 32
    • 학습률(Adam): 5e-5, 3e-5, 2e-5
    • epoch numbers: 2, 3, 4
  1. (추가) 실제 데이터 삽입하여 예측값 알려주는 API 제작

Bert 모델의 장점과 Fine-Tuning 흐름 정리, 엔트

PyTorch를 사용한 BERT 미세 조정 자습서

전이학습(Transfer learning)과 파인 튜닝(Fine tuning)의 차이점

0개의 댓글