DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter

daegeon kim·2023년 3월 7일
0

Paper Review

목록 보기
1/2

기존 문제점

  • BERT는 Pre-trained + finetuning 하여 사용
  • Pre-trained는 메모리 용량 및 프로세스 성능 등 많은 자원을 소요하는 문제

DistilBERT 개요

  • DistilBERT는 기존 BERT-base 보다 40% 가볍고, 60% 빠름
  • 모바일 device에 탑재하여 추론 가능한 속도의 모델

DistilBERT 특징

  • 3가지의 Loss를 선형 결합하여 사용
  • soft target loss (Lce) : Teacher와 Student 모델의 출력으로 구함
  • hard target loss (Lmlm) : 같은 데이터로 일반적인 MLM Loss 최소화하도록 학습
  • cosine embedding loss (Lcos) : 허깅페이스 팀에서 추가한 Loss. Teacher와 Student의 마지막 레이어의 은닉 상태 벡터를 가져와 Loss를 구함
  • Teacher의 가중치로 초기화, 6개의 레이어를 사용하고 있기 때문에 Teacher의 레이어 2개 중 하나씩 선택

DistilBERT의 기존 BERT와 차이점

  • Token-type Embedding 제거(즉, Segment Embedding 제거, NSP 안함, PyTorch에서 Token_type_ids와 동일)
  • Pooler 제거(기존 BERT의 마지막 레이어의 은닉상태벡터에서 첫번째 토큰인 Pooler output 사용을 안함)
  • 레이어 개수 절반(트랜스포머 구조에서 사용하는 프레임워크는 행렬 연산이 최적화 되어 있어 차원은 유지)

실험 결과

  • 2개의 BiLSTM을 사용한 ELMo model과 original BERT와 GLUE로 성능을 비교. 9개의 Task에서 ELMo와 비슷하거나 높은 성능

  • BERT-base의 97% 성능 도달 (하지만 40% 적은 파라미터를 가짐)

  • WNLI Task에서는 BERT-base를 역전

  • 다운스트림 태스크에서는 감성분류와 질의응답 태스크를 수행

  • 두 task 모두 BERT-base와 유사한 accuracy와 F1 Score

Ablation study

  • Loss의 3가지 요소, 가중치 초기화 방법까지 4가지 요소를 하나씩 빼며 성능 비교
  • MLM Loss 제거 손실이 가장 성능에 적은 영향을 미침

참고
Hansu Kim 님의 블로그
집현전 자연어처리 모임 유튜브
DistilBERT 논문

profile
Language Model

0개의 댓글