ALBERT

Han Hanju·2021년 9월 29일
0
post-thumbnail

Background

1) 기존 pre-trained language model의 문제점

  • 좋은 성능에는 large model이 필요
  • 하지만 model이 클 수록 large memory가 필요 할 뿐만 아니라 inference 및 학습 시간이 오래 걸린다. (하드웨어의 한계)

2) score의 많은 손실없이 성능 좋은 작은 모델을 만들어보자!

  • Parameter Reduction Technique
    • Factorized Embedding Parameterization
    • Cross-layer parameter sharing
      • parameter sharing으로 size를 줄인것!
  • Sentence-order prediction (new task)

3) Training과 Inference시 Memory Limitation

  • 12Gb Titan X GPU를 사용 할 경우
    • Lart BERT의경우 기본 Seq Length인 512도 사용 하기 힘들다

Contribution

1) Factorized Embedding Parameterizatin

  • BERT: Input Token Embedding Size(E)와 Hidden Size(H)가 같다.
  • ALBERT: E를 H보다 작게 설정하여 Parameter 수를 줄인다.
  • Input Token Embedding은 각 Token의 정보를 담고 있는 Vector를 생성한다. 반면, Transformer의 각 Layer에서의 Output은 해당 Token과 주변 Token들 간의 관계까지 반영한 Contextualized Representation이다. 따라서, 담고 있는 정보량 자체가 다르기 때문에 E가 H 보다 비교적 작아도 될 것이라고 생각할 수 있다. (H > E)
  • BERT의 경우 V가 30,000으로 상당히 크고 이에 비해 E와 H는 작은 값이므로 ALBERT에서는 Parameter 수를 줄일 수 있다.
    • (Embedding 과정을 2개의 Matrix로 나누어서 수행하므로 Factorized Embedding 이라고 합니다.)

2) Cross-layer Parameter Sharing

  • ALBERT에서는 layer의 모든 Parameter를 공유한다.
    • BERT: transformer block 1~12까지를 거쳤다
    • ALBERT: 단 하나의 transformer block을 12번 거친다.

3) Sentence Order Prediction

  • BERT: 연속된 문장인지 맞추는 Next Sentence Prediction(NSP) 사용
    • NSP는 두번 째 문장이 첫 문장의 다음 문장인지를 맞추는데 학습 데이터 구성 시 두 번째 문장은 실제 문장(positive example) 혹은 임의로 뽑은 문장(negative example)이 됩니다. 하지만, 임의로 뽑은 문장은 첫 문장과 완전히 다른 Topic의 문장일 확률이 높으므로 문장 간 연관 관계를 학습한다기 보다는 두 문장이 같은 Topic에 대해 말하는지를 판단하는 Topic Prediction에 가깝다.
  • ALBERT: 문장의 순서를 맞추는 Sentence Order Prediction(SOP) 사용
    • 실제 연속인 두 문장(Positive Example)과 두 문장의 순서를 앞뒤로 바꾼 것(Negative Example)으로 구성되고 문장의 순서가 옳은지 여부를 예측

Experiment

1) Memory Limitation

  • ALBERT느 BERT와 같은 Layer 수, Hidden size에서 모델의 크기가 훨씬 작다. 따라서, Memory 사용량을 훨씬 줄일 수 있다. (ex) BERT large - 334mb, ALBERT large - 18mb)

2) Training Time

  • layer 수, Hidden size가 같을 때 ALBERT는 BERT 보다 학습 속도가 훨씬 빠르다.
    • (ex) ALBERT xlarge는 BERT xlarge 보다 학습 속도가 2배 빠름)

2) Model Degradation

  • BERT는 large에서 xlarge로 커질 경우 오히려 성능이 떨어집니다. 하지만, ALBERT의 경우 xxlarge가 xlarge 보다 그리고 xlarge가 large 보다 성능이 높은 성능을 보인다.

Reference

https://www.youtube.com/watch?v=1qU3BjejLSg
https://y-rok.github.io/nlp/2019/10/23/albert.html

profile
Data Analytics Engineer

0개의 댓글