ALBERT: A LITE BERT FOR SELF-
SUPERVISED LEARNING OF
LANGUAGE REPRESENTATIONS
장영록
Preview – 핵심 내용
• [Challenge] Pre-trained language representation 모델의 크기
를 증가시켜 성능 개선 시 다음의 문제점 발생
• Memory Limitation
• Training Time
• Model Degradation
• [Contribution] BERT에서 다음의 사항을 개선하여 모델 크기를
줄이고 성능 또한 개선
• Factorized Embedding Parameterization
• Cross-layer parameter sharing
• Sentence-order prediction
Preview – 모델 및 성능
Challenge – Memory Limitation
• BERT Paper에서는 Memory 64GB의 TPU 활용
• Titan X GPU (Memory 12GB) 활용 시 OOM 문제로 Maximum
batch size가 아래와 같음
https://github.com/google-
research/bert/blob/master/README.md
Challenge – Training time
• BERT_base
• L=12, H=768, A=12, Total Parameters=110M
• 16 TPU chips 활용 4 days
• 16 GPU V100 활용 5 1/3 days (예측 값)
• BERT_large
• L=24, H=1024, A=16, Total Parameters=340M
• 64 TPU chips 활용 4days
• 64 GPU V100 활용 8 1/2 days (예측 값)
https://timdettmers.com/2018/10/17/tpus-vs-gpus-for-
transformers-bert/
Challenge – Model Degradation (1)
• 일반적으로 Language Representation, Machine Translation 등
의 Task에서는 모델이 클 수록 높은 성능을 보임
BERT Paper에서
의 실험 결과
Challenge – Model Degradation (2)
• Model Degradation – 모델이 크다고 무조건 성능이 높아지지
않음을 실험적으로 보여줌
Layer = 24
Contribution – Factorized Embedding
Parameterization (1)
• Token Embedding Size(E)를 Hidden Layer Embedding Size(H)
보다 작게 설정하여 Parameter 수 줄임
• 기존 BERT, XLNet, RoBert 등 모두 E = H로 모델 구성
• [Intuition] H는 Contextualized Representation이지만 E는 Context
Independent Representation 이므로 E<H 이어도 모델의 성능이 떨어
지지 않을 것임
Contribution – Factorized Embedding
Parameterization (2)
• BERT / Transformer Embedding Size Review
H
H/(head 수) Size
로 Output 생성
후 Concat
Input/output Size = H
(Inner layer size = 4H)
각 Embedding Size가
H와 같음
Contribution – Factorized Embedding
Parameterization (3)
• BERT에서는 Vocabulary Size(V) x H를 활용하여 Token
Embedding
• Factorized Embedding Parameterization – VxE Matrix로 Token
Embedding 후 ExH Matrix를 활용하여 최종 Input 생성
• O(VxH) -> O(VxE+ExH)
• 일반적으로 V(BERT에서 30,000)가 매우 크므로 Parameter Size를 줄일
수 있음
H = 768 / layer = 12
Cross layer parameter
sharing 여부 (뒤에서
설명)
Contribution – Cross-layer Parameter Sharing
(1)
• Layer 간 같은 Parameter를 사용 (Recursive Transformation)
• Attention, FFN 등의 모든 Parameter를 Layer 간 공유
• Layer 수가 늘어나더라도 Parameter 수가 늘어나지 않음
• 유사한 Idea
• Universal Transformer
• https://arxiv.org/abs/1807.03819
• Deep Equilibrium Models
• https://arxiv.org/abs/1909.01377
Contribution – Cross-layer Parameter Sharing
(2)
• Universal Transformer
• [Intuition] RNN이 Sequence Data를 활용하여 Hidden State를
Iterative Update 하는 것처럼 Recurrent Layer를 통해 Output을
Iterative Update(Recursive Transformation)
• RNNs’ inductive bias towards learning iterative
• Machine Translation , bAbI (NLU Task) 등에서 Transformer 보다 높은
성능
Contribution – Cross-layer Parameter Sharing
(3)
Attention만 Sharing 했을
떄는 Not-shared와 성능
차이 크지 않음
FFN을 공유 했을 때, 비교
적 큰 성능 차이 발생
• 각 Layer의 FFN은 공유하지 않을 때 더 높은 성능 보임
Contribution – Cross-layer Parameter Sharing
(4)
• 각 Layer의 Input, Output을 비교해봤을 때 ALBERT의 변동 폭이
BERT 보다 작지만 0으로 수렴하지는 않음
• DQE Paper에 따르면 input, output Embedding이 같아지는
Equilibrium point에 도달하는 Layer가 있다고 했으나 아래처럼 다른
실험 결과 얻음
Contribution – Inter-sentence coherence loss
(1)
• Next Sentence Prediction(NSP) 대신 2개의 Sentence의 order
가 맞는지 여부를 예측하는 방식으로 학습
• Negative Example – 앞,뒤 문장의 순서를 바꾸어서 구성
• [Intuition] Sentence Order를 예측하는 것이 Inter-sentence
coherence를 학습하는데 더 적합
• NSP는 문장의 순서와 상관 없이 유사한 주제를 다루기만 한다면 Next
Sentence로 예측할 수 있음 -> Topic Prediction으로 볼 수 있음
• Sentence Order를 예측하는 경우 같은 Topic이라도 문장 간 순서를 고
려하므로 discourse level coherence를 반영한다고 볼 수 있음!
Contribution – Inter-sentence coherence loss
(2)
• ALBERT base에 Next Sentence Prediction(NSP), Sentence
Order Prediction(SOP) 각각 적용하여 실험
SOP로 학습해도 NSP 어
느 정도 가능
NSP로 학습시 SOP를 거
의 하지 못함
영화 Review -> Postive/negative
classification Task
Experiment
• Book Corpus, Wikipedia – 16GB 사용 (BERT와 같음)
• Batch Size = 4096
• 125,000 Steps 학습
• TPU v3 사용
• Model의 크기에 따라 64 ~ 1024 chips 활용
• Dataset
• GLUE 9 tasks
• SQUAD 1.1, 2.0
• RACE
• 중국 영어 시험 – 100,000개의 Questions
• Candidate Answer 4개 -> Multiple Choice
• 중, 고등학교
Experiment – 모델 및 성능
BERT large
의 70% size
Layer 12, 24일 때 성능 차이
가 없어서 12 선택
Large 보다
성능 낮음
6-Layer로 미
리 학습 후 12
Layer로 추가
Training ->
Converge가
좀 더 잘됬음
Experiment – Layer, Depth에 따른 성능
차이
12 Layer 이상 부터는
큰 차이 없음
성능 저하
Experiment – 같은 시간 동안 학습 시 성
능 차이
34 시간 학습
32 시간 학습
감사합니다.
Appendix
Appendix
Appendix

Albert

  • 1.
    ALBERT: A LITEBERT FOR SELF- SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS 장영록
  • 2.
    Preview – 핵심내용 • [Challenge] Pre-trained language representation 모델의 크기 를 증가시켜 성능 개선 시 다음의 문제점 발생 • Memory Limitation • Training Time • Model Degradation • [Contribution] BERT에서 다음의 사항을 개선하여 모델 크기를 줄이고 성능 또한 개선 • Factorized Embedding Parameterization • Cross-layer parameter sharing • Sentence-order prediction
  • 3.
  • 4.
    Challenge – MemoryLimitation • BERT Paper에서는 Memory 64GB의 TPU 활용 • Titan X GPU (Memory 12GB) 활용 시 OOM 문제로 Maximum batch size가 아래와 같음 https://github.com/google- research/bert/blob/master/README.md
  • 5.
    Challenge – Trainingtime • BERT_base • L=12, H=768, A=12, Total Parameters=110M • 16 TPU chips 활용 4 days • 16 GPU V100 활용 5 1/3 days (예측 값) • BERT_large • L=24, H=1024, A=16, Total Parameters=340M • 64 TPU chips 활용 4days • 64 GPU V100 활용 8 1/2 days (예측 값) https://timdettmers.com/2018/10/17/tpus-vs-gpus-for- transformers-bert/
  • 6.
    Challenge – ModelDegradation (1) • 일반적으로 Language Representation, Machine Translation 등 의 Task에서는 모델이 클 수록 높은 성능을 보임 BERT Paper에서 의 실험 결과
  • 7.
    Challenge – ModelDegradation (2) • Model Degradation – 모델이 크다고 무조건 성능이 높아지지 않음을 실험적으로 보여줌 Layer = 24
  • 8.
    Contribution – FactorizedEmbedding Parameterization (1) • Token Embedding Size(E)를 Hidden Layer Embedding Size(H) 보다 작게 설정하여 Parameter 수 줄임 • 기존 BERT, XLNet, RoBert 등 모두 E = H로 모델 구성 • [Intuition] H는 Contextualized Representation이지만 E는 Context Independent Representation 이므로 E<H 이어도 모델의 성능이 떨어 지지 않을 것임
  • 9.
    Contribution – FactorizedEmbedding Parameterization (2) • BERT / Transformer Embedding Size Review H H/(head 수) Size 로 Output 생성 후 Concat Input/output Size = H (Inner layer size = 4H) 각 Embedding Size가 H와 같음
  • 10.
    Contribution – FactorizedEmbedding Parameterization (3) • BERT에서는 Vocabulary Size(V) x H를 활용하여 Token Embedding • Factorized Embedding Parameterization – VxE Matrix로 Token Embedding 후 ExH Matrix를 활용하여 최종 Input 생성 • O(VxH) -> O(VxE+ExH) • 일반적으로 V(BERT에서 30,000)가 매우 크므로 Parameter Size를 줄일 수 있음 H = 768 / layer = 12 Cross layer parameter sharing 여부 (뒤에서 설명)
  • 11.
    Contribution – Cross-layerParameter Sharing (1) • Layer 간 같은 Parameter를 사용 (Recursive Transformation) • Attention, FFN 등의 모든 Parameter를 Layer 간 공유 • Layer 수가 늘어나더라도 Parameter 수가 늘어나지 않음 • 유사한 Idea • Universal Transformer • https://arxiv.org/abs/1807.03819 • Deep Equilibrium Models • https://arxiv.org/abs/1909.01377
  • 12.
    Contribution – Cross-layerParameter Sharing (2) • Universal Transformer • [Intuition] RNN이 Sequence Data를 활용하여 Hidden State를 Iterative Update 하는 것처럼 Recurrent Layer를 통해 Output을 Iterative Update(Recursive Transformation) • RNNs’ inductive bias towards learning iterative • Machine Translation , bAbI (NLU Task) 등에서 Transformer 보다 높은 성능
  • 13.
    Contribution – Cross-layerParameter Sharing (3) Attention만 Sharing 했을 떄는 Not-shared와 성능 차이 크지 않음 FFN을 공유 했을 때, 비교 적 큰 성능 차이 발생 • 각 Layer의 FFN은 공유하지 않을 때 더 높은 성능 보임
  • 14.
    Contribution – Cross-layerParameter Sharing (4) • 각 Layer의 Input, Output을 비교해봤을 때 ALBERT의 변동 폭이 BERT 보다 작지만 0으로 수렴하지는 않음 • DQE Paper에 따르면 input, output Embedding이 같아지는 Equilibrium point에 도달하는 Layer가 있다고 했으나 아래처럼 다른 실험 결과 얻음
  • 15.
    Contribution – Inter-sentencecoherence loss (1) • Next Sentence Prediction(NSP) 대신 2개의 Sentence의 order 가 맞는지 여부를 예측하는 방식으로 학습 • Negative Example – 앞,뒤 문장의 순서를 바꾸어서 구성 • [Intuition] Sentence Order를 예측하는 것이 Inter-sentence coherence를 학습하는데 더 적합 • NSP는 문장의 순서와 상관 없이 유사한 주제를 다루기만 한다면 Next Sentence로 예측할 수 있음 -> Topic Prediction으로 볼 수 있음 • Sentence Order를 예측하는 경우 같은 Topic이라도 문장 간 순서를 고 려하므로 discourse level coherence를 반영한다고 볼 수 있음!
  • 16.
    Contribution – Inter-sentencecoherence loss (2) • ALBERT base에 Next Sentence Prediction(NSP), Sentence Order Prediction(SOP) 각각 적용하여 실험 SOP로 학습해도 NSP 어 느 정도 가능 NSP로 학습시 SOP를 거 의 하지 못함 영화 Review -> Postive/negative classification Task
  • 17.
    Experiment • Book Corpus,Wikipedia – 16GB 사용 (BERT와 같음) • Batch Size = 4096 • 125,000 Steps 학습 • TPU v3 사용 • Model의 크기에 따라 64 ~ 1024 chips 활용 • Dataset • GLUE 9 tasks • SQUAD 1.1, 2.0 • RACE • 중국 영어 시험 – 100,000개의 Questions • Candidate Answer 4개 -> Multiple Choice • 중, 고등학교
  • 18.
    Experiment – 모델및 성능 BERT large 의 70% size Layer 12, 24일 때 성능 차이 가 없어서 12 선택 Large 보다 성능 낮음 6-Layer로 미 리 학습 후 12 Layer로 추가 Training -> Converge가 좀 더 잘됬음
  • 19.
    Experiment – Layer,Depth에 따른 성능 차이 12 Layer 이상 부터는 큰 차이 없음 성능 저하
  • 20.
    Experiment – 같은시간 동안 학습 시 성 능 차이 34 시간 학습 32 시간 학습
  • 21.
  • 22.
  • 23.
  • 24.