본문 바로가기
Paper Review/Natural Language Processing

[Paper Review] RoBERTa: A Robustly Optimized BERT Pretraining Approach(2019)

by BangGeuk 2024. 1. 16.

본 글은 https://arxiv.org/abs/1907.11692 내용을 기반으로 합니다.

혹시 잘못된 부분이나 수정할 부분이 있다면 댓글로 알려주시면 감사하겠습니다.


Language model pretraining은 상당한 성능 향상을 가져왔으나 학습에서 계산 비용이 많이 들고 모델마다 다양한 크기의 dataset을 통해 수행되는 경우가 많고 모델의 성능에서 하이퍼파라미터 선택이 상당한 영향을 미친다. 본 논문은 BERT의 여러 주요 하이퍼파라미터, training data size의 효과를 측정한 replication study를 제시한다. BERT가 상당히 훈련되지 않았고 모든 모델의 성능과 일치하거나 초과할 수 있음을 발견했다. 본 논문에서의 최고 모델은 GLUE, RACE 및 SQuAD에서 SOTA 성능을 달성한다. 이러한 결과는 이전에 간과되었던 설계 선택의 중요성을 강조하고 최근 보도된 개선사항의 원인에 대한 의문을 제기한다.

1. Introduction

ELMo, GPT, BERT, XLM, XLNet과 같은 self-training 방법들은 상당한 성능 향상을 가져왔으나 어떤 측면이 가장 큰 기여를 하는지 결정하는 것은 어렵다. Training은 계산 비용이 많이 들고 각기 다른 크기의 training data가 사용되어 모델링 향상을 위한 방법들이 어떤 영향을 미치는지 알기 어렵다.

 

본 논문은 하이퍼파라미터 튜닝과 training set 크기의 영향에 대한 신중한 평가를 포함한 BERT의 replication study를 제시한다. 그 결과, BERT는 상당히 덜 학습되었음을 발견하고 모든 BERT 모델의 성능과 일치하거나 초과할 수 있는 RoBERTa라고 부르는 BERT training을 위한 개선된 방법을 제안한다. 수정 사항은 다음과 같다.

(1) 더 많은 데이터에 대해 더 큰 batch size로 모델을 더 오랫동안 훈련

(2) Next sentence prediction objective 제거

(3) 더 긴 sequence로 훈련

(4) Training data에 적용된 masking 패턴을 동적으로 변경

추가적으로 CC-NEWS라는 새로운 large dataset을 수집한다.

 

이를 통해, 다양한 task에서 SOTA 성능을 달성하였다. 요약하면, 이 논문의 contribution은 다음과 같다.

(1) 중요한 BERT design 요소 및 training 전략을 제시하고 더 나은 downstream task 성능을 보여주는 대안을 소개한다.

(2) 새로운 dataset인 CC-NEWS를 사용하고 pre-training에 더 많은 data를 사용하면 downstream task에서 성능이 더욱 향상됨을 확인한다.

(3) Masked language model을 사용한 pre-training이 올바른 design 선택 하에, 다른 최신 방법에 견줄만한 효과를 가짐을 보여준다.

2. Background

2.1 Setup

BERT는 두 개의 segment x1,...,xN과 y1,...,yM의 연결을 입력으로 사용한다. 두 segment는 [CLS],x1,...,xN,[SEP],y1,...,yM,[EOS]와 같이 special 토큰을 사용하여 입력 sequence로 제공된다. 모델은 먼저 unlabeled text corpus에 pretrain된 후 최종 task에 해당하는 labeled data를 사용하여 finetuning 한다.

2.2 Architecture

L개의 layer로 transformer 아키텍처를 사용하고 각 block들은 A개의 self-attention head와 hidden dimension H를 사용한다.

2.3 Training Objectives

Pretraining 과정에서 BERT는 masked language modeling과 next sentence prediction의 두 가지 objective를 사용한다.

Masked Language Model(MLM)

입력 시퀀스 토큰 중에서 15%를 랜덤으로 선택되어 [MASK] 토큰으로 대최된다. MLM objective는 마스킹된 토큰을 예측하기 위해 cross-entropy loss를 사용한다. 15%의 토큰 중에서 80%는 [MASK] 토큰으로 대체되고 10%는 바뀌지 않으며 나머지 10%는 랜덤하게 선택된 단어 토큰으로 대체된다.

 

Next Sentence Prediction(NSP)

NSP는 두 segment가 next sentence인지 판별하는 binary classification loss이다. Positive example은 연결된 두 문장에서 만들고 negative example은 서로 다른 문서에서 가져와 만든다. NSP objective는 두 쌍의 문장의 관계가 중요한 자연어 추론과 같은 downstream task 성능 개선을 위해 디자인되었다.

2.4 Optimization

  • Optimizer : Adam
  • Learning rate : 10,000 step까지는 1e-4까지 증가한 후 선형적으로 감소
  • Dropout : 0.1
  • Activation function : GELU
  • Step : 1,000,000
  • Mini batch size : 256
  • Sequences of maximum length token : 512

2.5 Data

BERT는 BOOKCORPUS와 English WIKIPEDIA의 조합으로 총 16GB의 text로 훈련한다.

3. Experimental Setup

3.1 Implementation

본 논문은 FAIRSEQ에서 일부 조건을 제외하고 기존 BERT optimization 하이퍼파라미터를 사용하여 다시 구현한다. Adam epsilon term, large batch size, β2=0.98로 학습 안정성을 증가시켰다.

3.2 Data

BERT-style pretraining은 대용량 text dataset에 의존한다. 본 논문에서는 크기와 도메인이 다양한 다섯 가지의 English-language corpora(총 160GB 이상)를 이용한다.

3.3 Evaluation

본 논문의 pretrained 모델은 세 가지 benchmark를 사용하여 downstream task에 대해 평가한다.

 

GLUE

General Language Understanding Evaluation(GLUE) benchmark는 자연어 이해 시스템을 평가하기 위한 9개의 dataset 모음이다. Task는 단일 문장 분류 또는 문장 쌍 분류로 구성된다. 

 

SQuAD

Stanford Question Answering Dataset(SQuAD)는 문맥 단락과 질문을 제공한다. Task는 문맥으로부터 관련 범위를 추출하여 질문에 답하는 것이다.

 

RACE

ReAding Comprehension from Examinations(RACE) task는 28,000개가 넘는 구와 절, 약 100,000개의 질문이 포함된 대규모 독해 dataset이다. Task는 모든 질문에 대해 네 가지 선택 중에서 하나의 정답을 선택하는 것이다.

4. Training Procedure Analysis

이 section에서는 BERT 모델을 pretraining하는데 중요한 선택사항을 탐색하고 정량화한다. BERT base 모델과 동일한 아키텍처를 사용한다.

4.1 Static vs Dynamic Masking

BERT는 랜덤하게 마스킹하고 토큰을 예측하는 것에 의존한다. 기존 BERT는 single static mask로 데이터 전처리 과정에서 한 번 마스킹을 시행한다. Single static mask는 같은 데이터를 10번 복제하여 random masking을 적용하기 때문에 epoch이 증가할수록 중복되는 마스크가 발생한다. Dynamic masking은 문장이 모델에 입력될때마다 masking 패턴을 생성한다. Table 1은 BERT base를 이용하여 static masking과 dynamic masking 성능 비교를 보여준다. Dynamic masking의 성능이 비슷하거나 조금 더 좋은 성능을 보여준다.

Table 1. Comparison between static and dynamic masking for BERT base. We report F1 for SQuAD and accuracy for MNLI-m and SST-2.

 

4.2 Model Input Format and Next Sentence Prediction

기존 BERT pretraining 과정에서 마스킹을 사용한언어 모델 목적함수 외에도 보조 Next Sentence Prediction(NSP) loss를 통해 segment가 같은 문서에서 왔는지 다른 문서에서 왔는지 예측하도록 학습된다. 과거 연구들에서는 NSP loss를 제거하면 성능이 저하된다는 결과가 있으나 최근 연구에서는 NSP loss의 필요성에 대해 의문을 제기한다. 이러한 의문에 대해 타당성을 확인하기 위해 다음과 같이 training format을 구성한다.

  • SEGMENT-PAIR+NSP : NSP loss를 사용하며 기존 BERT에서 사용된 input format과 동일하다. 각 input은 segemnt 쌍으로 있으며 multiple natural sentence를 포함할 수 있으나 합쳐진 총 길이는 512개 이하의 토큰이여야한다.
  • SENTENCE-PAIR+NSP : NSP loss를 사용하며 각 input은 natural sentence 쌍을 포함한다. 이러한 input은 512개의 토큰보다 훨씬 짧기 때문에 총 토큰의 수가 SEGMENT-PAIR+NSP와 유사하게 유지되도록 batch size를 증가시킨다.
  • FULL-SENTENCES : NSP loss를 사용하지 않으며 각 input은 하나 이상의 문서에서 연속적으로 샘플링된 full sentence로 총 길이는 최대 512 토큰이다. 하나의 문서의 끝에 도달하면 다음 문서에서 문장을 샘플링하며 두 문서 사이에 extra separtor token을 추가한다.
  • DOC-SENTENCES : NSP loss를 사용하지 않으며 input은 문서 간의 경계를 넘어서지 않는 것을 제외하면 FULL-SENTENCES와 유사하게 구성된다. 문서의 끝에 가까운 곳에서 샘플링된 입력은 512 토큰보다 짧을 것이라서 FULL-ENTENCES와 총 토큰 수가 유사하도록 하기 위해 batch size를 증가시킨다.

Table 2는 네 가지 다른 setting들에 대한 결과를 보여준다. SENTENCE-PAIR는 long-range dependency를 학습할 수 없기 때문에 모델의 성능이 떨어진다. NSP loss를 사용하지 않은 모델과 BERT base 모델에 대한 결과를 비교하면 NSP loss를 사용하지 않을 때 downstream task 성능이 비슷하거나 약간 향상된다. 마지막으로 DOC-SENTENCES가 FULL_SENTENCES보다 조금 더 좋은 성능을 보인다. 그러나, DOC-SENTENCES는 다양한 batch size를 가지기 때문에 관련 연구와 더 쉽게 비교할 수 있도록 나머지 실험들은 FULL-SENTENCES를 사용한다.

Table 2. Development set results for base models pretrained over BOOKCORPUS and WIKIPEDIA. All models are trained for 1M steps with a batch size of 256 sequences. We report F1 for SQuAD and accuracy for MNLI-m, SST-2 and RACE.

4.3 Training with large batches

Neural Machine Traslation에서 이전 연구들은 learning rate가 적절하게 증가할 때 아주 큰 mini-batch와 함께 학습하면 최적화 속도와 성능 모두 개선시킬 수 있다고 보여준다. 최근 연구에서도 BERT가 큰 batch training에 적합하다는 것을 보여준다.

 

표 3은 BERT base 모델로 batch size를 증가시키며 복잡성과 task 성능 비교 결과를 보여준다. 큰 batch size로 학습하는 것은 masked language modeling objective의 복잡성과 task 정확도를 개선시킨다. 

Table 3. Perplexity on held-out training data and development set accuracy for base models trained over BOOKCORPUS and WIKIPEDIA with varying batch size. We tune the learning rate for each setting. Models maske the same number of passes over the data and have the same computational cost.

4.4 Text Encoding

Byte-Pair Encoding(BPE)는 대규모 어휘를 처리할 수 있는 character와 word-level representation의 합성이다. BPE는 학습 corpus에서 통계적 분석을 수행하여 추출된 subword unit에 의존한다. Byte 단위의 BPE를 이용하여 unknown 토큰 없이 50,000개의 subword 어휘로 학습을 할 수 있다. 기존 BERT는 character level의 BPE를 사용하는데 본 논문은 추가 전처리나 tokenization 없이 byte-level BPE로 학습을 한다. Byte-level BPE는 일부 task에서 성능이 떨어졌으나 universal encoding의 장점이 성능 저하보다 더 크다고 판단하여 byte-level BPE로 적용한다.

5. RoBERTa

이전 section에서는 성능을 향상을 위해 BERT pretraining 과정에서의 개선을 소개했다. 이제 이러한 개선사항을 종합하고 결합된 영향을 평가한다. 본 논문은 이러한 구성을 RoBERTa(Robustly optimized BERT approach)라고 부른다. 앞서 분석한 결과를 토대로 RoBERTa는 dynamic masking, FULL-SENTENCE without NSP loss, large mini-batches와 larger byte-level BPE를 사용하여 학습한다. 추가적으로, 이전 연구들에서 강조되지 않았던 두 가지 요소(pretraining에 사용된 data, training pass의 개수)를 탐구한다.

 

Table 4는 RoBERTa와 BERT large, XLNet large 모델에 대한 성능 비교 결과를 보여준다. 앞서 분석한 요소들을 모두 넣은 RoBERTa 모델이 기존 모델에 비해 성능이 더 좋다. 또한, 추가 dataset을 이용하고 pretraining 과정이 길수록 성능이 향상된다.

Table 4. Development set results for RoBERTa as we pretrain over more data and pretrain for longer. Each row accumulates improvements from the rows above.

5.1 GLUE Results

Table 5는 GLUE benchmark를 이용한 성능 결과를 보여준다. Single-task에 대하여 RoBERTa는 9개 모든 task에서 SOTA 성능을 달성한다. 결정적으로, RoBERTa는 BERT large와 동일한 masked language modeling pretraining objective 및 아키텍처를 사용하지만 지속적으로 BERT large와 XLNET large보다 더 좋은 성능을 보여준다. 이는 모델 아키텍처와 pretraining objective보다 dataset 크기와 학습 시간과 같이 본 논문에서 탐구한 세부 사항의 중요성을 보여준다.

Table 5. Results on GLUE. All results are based on a 24-layer architecture.

5.2 SQuAD Results

Table 6은 SQuAD benchmark에 대한 결과를 보여준다. SQuAD v1.1에서 XLNet 모델과 비슷한 성능을 보여주고 SQuAD v2.0에서 RoBERTa는 SOTA 성능을 달성한다.

Table 6. Results on SQuAD.

5.3 RACE Results

Table 7은 RACE test set에서의 성능 결과를 보여준다. 중학교, 고등학교 dataset에서 모두 SOTA 성능을 보여준다.

Table 7. Results on the RACE test set.

6. Conclusion

본 논문은 BERT 모델을 pretraining할 때 여러 가지 design을 평가하여 성능 향상 요인을 발견하였다. 더 많은 dataset과 더 큰 batch size를 사용하고 더 오랫동안 학습하며 NSP loss를 제거하고 더 긴 sequence에 대해 훈련하며 dynamic masking을 적용하면 성능 향상이 될 수 있다. 본 논문에서 소개한 RoBERTa는 GLUE, RACE and SQuAD에서 SOTA 성능을 달성하였으며 이전에 간과한 design 요소들의 중요성을 강조하고 BERT의 pretraining objective가 최근 제시된 대안들과 경쟁력이 있음을 보여준다.