Deeper Learning

RoBERTa: A Robustly Optimized BERT Pretraining Approach 본문

AI/Deep Learning

RoBERTa: A Robustly Optimized BERT Pretraining Approach

Dlaiml 2022. 6. 1. 15:15

Yinhan Liu, Myle Ott, Naman Goyal, Jingfei Du, Mandar Joshi, Danqi Chen, Omer Levy, Mike Lewis, Luke Zettlemoyer, Veselin Stoyanov, Facebook AI, (2019.07)

 

Abstract

  • 언어모델 사전학습은 큰 성능향상을 가져오지만 여러 접근법에 대한 비교가 어려움
  • BERT의 여러 주요 hyperparameters, training data size의 효과를 정밀하게 측정한 replication study를 제시
  • BERT가 undertrained 되었고 성능향상의 여지가 있음을 확인
  • 저자가 제시한 모델은 GLUE, RACE, SQuAD에서 SOTA를 달성

1. Introduction

  • ELMo, GPT, XLM, XLNet과 같은 Self-training 모델은 큰 성능향상을 가져왔지만 어떤 method가 contribute 하였는지 분석이 매우 어려움
  • private data 사용, 많은 학습 비용으로 인해 여러 training approach의 contribute를 정확히 측정이 쉽지 않음
  • BERT가 상당히 undertrained 되었다는 것을 발견했고 BERT 모델 학습의 개선된 레시피를 제시하고 그것을 RoBERTa로 이름붙임
  • 저자의 modifications은 간단
    • model을 더 큰 batch로, 더 많은 데이터로, 더 길게 학습
    • NSP(Next sentence prediction)을제거
    • longer sequences로 학습
    • masking 패턴을 변경
  • 다른 privately data size에 견줄만한 새로운 large dataset인 CC-NEWS를 수집
  • RoBERTa는 BERT의 GLUE, SQuAD에서의 성능을 뛰어넘었으며 추가 데이터를 사용하여 길게 학습할 때 RoBERTa는 public GLUE leaderboard에서 88.5점을 달성 (이전 SOTA인 XLNet은 88.4)
  • MNLI, QNLI, RTE, STS-B 총 9개의 GLUE task 중 4개에서 SOTA를 달성
  • SQuAD와 RACE에서도 SOTA 달성
  • BERT의 masked language model의 학습 목표를 XLNet의 perturbed autoregressive language modeling과 같은 최신 기법과 경쟁 가능하도록 개선

 

Contribution

  • BERT의 downstream task의 성능을 높이기 위한 design choices, training strategies를 제시
  • CC-NEWS 데이터셋을 pre-training에 사용하여 성능 향상
  • masked language model을 사용한 pre-training이 알맞은 design choice하에서는 다른 최신 pre-training method에 견줄만한 효과를 가짐을 제시

2. Background

 

BERT background

 

Masked Language Model (MLM)

  • input sequence의 몇몇 token은 special token [MASK]로 대체
  • masked token을 predict하고 cross-entropy loss로 학습
  • input token의 15%를 선택하고 그중 80%를 [MASK]로 10%를 random vocabulary token으로 10%를 그대로 둔다

Next Sentence Prediction (NSP)

  • 두 segment가 original text에서 연속되는 segment인지를 이진 분류
  • negative examples은 다른 document에서 추출한 segment로 생성
  • NSP는 Natural Language Inference와 같이 두 sentence pair의 관계에 대한 reasoning이 필요한 downstream task의 성능 향상을 위해 디자인되었다

Data

  • BERT는 Bookcorpus (Zhu et al., 2015)와 English Wikipedia 데이터로 총 16GB의 text로 학습되었다

3. Experimental Setup

  • $\beta_2=0.98$, Adam epsilon term, large batch로 학습 안정성을 증가
  • original BERT(Devlin et al., 2019) 는 학습 속도 향상을 위해 초기 90%의 model update에는 512가 아닌 128 max sequence length를 사용, 그 후 10%의 학습에 512 sequence length 설정을 적용하여 positional embedding을 학습
  • RoBERTa에서는 위와 달리 512 max sequence length로 초기부터 끝까지 학습
  • Bookcorpus, CC-News, OpenWebText, Stories dataset을 사용하여 총 160GB의 데이터로 학습

4. Training Procedure Analysis

BERT base와 동일한 model 아키텍처를 사용 (L=12, H=768, A=12, 110M params)

 

4.1. Static vs. Dynamic Masking

  • BERT는 data 전처리 과정에서 masking을 적용하는 static masking, 매 epoch 같은 방식으로 masking된 문장이 주어지는 것을 방지하기 위해 하나의 데이터를 10개로 복사하고 random masking을 적용함
  • static masking 방식의 문제는 40 epoch을 학습한다고 하면 같은 mask가 적용된 데이터가 학습 도중 4번 중복으로 주어지는 것
  • Dynamic masking은 문장이 모델에 input으로 주어질 때 masking을 적용하는 형태로 larger datasets에서 많은 step pretraining 할 때 중요하다.

  • Dynamic masking을 적용할 경우 조금의 성능 향상이 있었기 때문에 dynamic masking을 사용

 

4.2. Model Input Format and Next Sentence Prediction

  • original BERT는 두 sequence를 같은 document에서 50%, 서로 다른 document에서 50% 추출하여 전자를 positive example, 후자를 negative example로 labeling하고 NSP loss를 적용
  • SEGMENT-PAIR+NSP (BERT)
    • input은 pair of segments (multiple natural sentences)
    • combined length는 최대 512 tokens
  • SENTENCE-PAIR+NSP
    • segment보다 작은 단위인 sentence pair가 input
    • 512 tokens 보다 combined pair의 token이 적은 경우가 많아 batch size를 늘려 이를 보완
  • FULL-SENTENCES
    • NSP loss를 사용하지 않음
    • input은 한 개 또는 그 이상의 documents에서 연속적으로 샘플링된 full sentences
    • total length는 최대 512 tokens
    • document가 끝나면 다음 document에서 샘플링하고 extra separator token을 배치
  • DOC-SENTENCES
    • input은 FULL-SENTENCES와 비슷하나 cross document가 아님
    • document의 끝 부분에서 샘플링된 문장의 경우 512 tokens보다 작기 때문에 이를 보완하기 위해 batch size를 늘려 FULL-SENTENCES와 비슷한 token lengths를 만들었음
    • NSP loss를 사용하지 않음

  • SENTENCE-PAIR의 점수가 SEGMENT-PAIR의 점수보다 낮은데 이에 저자는 model이 long-range dependencies를 학습할 수 없기 때문이라는 가설을 세웠다
  • NSP loss를 제거할 경우 성능 하락이 있다고 주장하던 BERT 논문과 달리 NSP loss를 제거한 method의 점수가 조금 대체로 높은데 이는 original BERT에서는 SEGMENT-PAIR의 input format을 사용하면서 NSP loss를 제거했기 때문이라고 추측된다
  • DOC-SENTENCES의 점수가 조금 더 높은데 batch size를 일정하게 유지하기 위해 FULL-SENTENCES를 앞으로 실험에 사용

 

4.3. Training with large batches

 

4.4. Text Encoding

  • BPE(Byte-pair encoding)은 학습 corpus에 따라 sub-word unit으로 text를 나눈다
  • BERT는 학습 corpus에 휴리스틱 하게 토크나이징을 하고 character-level의 BPE를 학습 (30k vocab)
  • RoBERTa는 GPT의 byte 단위 BPE를 학습하였고 50k의 vocab size를 사용
  • Byte 단위의 경우 성능이 end-task performance가 조금 떨어졌지만 universal-encoding scheme의 장점이 적은 성능 차이보다 중요하다고 생각하여 byte-level BPE를 채택

5. RoBERTa

  • Robustly optimized BERT approach(RoBERTa)
    • dynamic masking 사용
    • FULL-SENTENCES without NSP loss
    • large mini-batches
    • larger byte-level BPE
    • 160GB 데이터로 pretraining (BERT=16GB)
  • 기존 연구들에서 중요하게 다뤄지지 않은 2개의 요소에 대한 조사
    • pretraining data의 중요성
    • number of training passes through the data (training longer)

  • 데이터셋을 추가함에 따라 성능이 모든 downstream task에서 향상되는 것을 관찰하여 pretraining에서 data size와 diversity의 중요성을 검증
  • 500K step까지 길게 학습일 시켰음에도 불구하고 overfitting이 나타나지 않았으며 추가 학습으로 인한 성능 향상을 관찰

GLUE Results

  • 9개 중 4개의 task에서 SOTA를 달성, 전체 task 평균 점수도 SOTA

 

SQuAD Results

  • SQuAD 1.1v에서는 XLNet과 비슷한 점수를 달성하였고 SQuAD 2.0v에서 extra 데이터를 추가로 사용하지 않았음에도 매우 좋은 성능을 보임

 

RACE Results

  • RoBERTa SOTA 달성

6. Conclusion

  • 더 길게 학습, 더 큰 batch size로 학습, NSP loss를 제거, 더 긴 sequence로 학습, dynamic masking 적용으로 original BERT의 성능을 끌어올린 RoBERTa를 제시
  • GLUE, RACE, SQuAD에서 SOTA를 달성 (multi-task finetuning, additional data를 사용하지 않음)
  • BERT에서 간과한 design decision의 중요성을 보여줌
  • BERT의 pretraining objective가 최근 제시된 대안들과 견줄만하다는 것을 보여줌
  • 새로운 데이터셋인 CC-News를 소개
  • RoBERTa의 finetuning, pretraining code를 공개 (https://github.com/facebookresearch/fairseq)

정리 & 후기

  • BERT를 개선한 RoBERTa를 제시하였고 GLUE, RACE, SQuAD에서 SOTA를 달성
    • 더 길게 학습
    • 더 큰 batch size로 학습
    • NSP loss를 제거
    • 더 긴 sequence로 학습
    • dynamic masking 적용
    • 더 많은 데이터로 사전학습
  • downstream task에서 성능을 끌어올리기 위해서는 pretraining 모델의 scale도 중요하지만 여러 design choice와 pretraining objective, pretraining data 또한 중요하다는 것을 알 수 있음
  • BERT에서 NSP를 제거하면 성능이 하락한다는 것을 BERT 논문에서 보았을 때 NSP objective가 중요하다고만 생각을 하였는데 input format을 segment pair로 유지하면서 NSP를 제거하였기 때문에 성능 하락이 있었을 것이라는 저자의 가설이 합리적이라고 생각함

 

Reference

[0] Yinhan Lui et al. (2019). "RoBERTa: A Robustly Optimized BERT Pretraining Approach". https://arxiv.org/abs/1907.11692

[1] Jacob Devlin et al. (2019). "BERT: Pre-training of deep bidirectional transformers for language understanding". https://arxiv.org/abs/1810.04805

 

Comments