1. Introduction
논문에서는 BERT가 충분히 훈련되지 않았고 다음과 같은 방법을 통해 성능을 더 높일 수 있다고 제안했습니다. (We find that BERT was significantly undertrained, and can match or exceed the performance of every model published after it.)
- 더 큰 batch size, 더 많은 데이터, 더 많은 학습시간
- NSP 제거
- 더 큰 max sequence length을 사용하여 학습
- MLM에서 Dynamic Masking 적용
2. Implementation
Data
160GB의 데이터 사용 (기존 BERT에서는 16GB)
- BookCorpus + Wikipedia (16GB)
- CC-News (76GB)
- OpenWebText (38GB)
- Stories (31GB)
Hyperparameter
- 기존 BERT의 training hyperparameter를 따름
- peak learning rate와 warmup steps, Adam의 epsilon,
Dynamic Masking
기존 BERT에서는 static masking을 사용하여 매 epoch마다 동일한 masking을 적용한 데이터를 학습했습니다. 하지만 이 논문에서는 dynamic masking을 제안하여 data를 10배 복사한 후 10번 각각 다른 mask를 적용합니다. 그리고 총 40 epoch 학습을 진행함으로써 동일하게 masking 된 data는 4번씩 학습하게 됩니다. Dynamic masking이 조금 더 우세한 성능을 보여줍니다.
NSP (Next Sentence Prediction)
두 문장이 서로 이어지는 문장인지 예측하는 NSP loss로 pre-training 하는 것에 의문을 제기하고 다양한 Input format을 실험합니다. 그 결과 앞으로의 실험에서는 Full-SENTENCES방식을 채택합니다.
- SEMGENT-PAIR + NSP
- 기존 BERT와 동일한 Input
- SENTENCE-PAIR + NSP
- 하나의 문서에서 연속된 문장 또는 서로 다른 문서에서 온 두 문장
- segment가 아닌 sentence 단위. sentence가 segment보다 짧으므로 배치 사이즈를 늘림
- FULL-SENTENCES
- 하나 이상의 document에서 연속적으로 sampling 된 전체 sentence
- DOC-SENTENCES
- FULL-SENTENCES와 같지만 document를 건너뛸 수 없음
Batch Size
최근 연구들이 BERT가 large batch size에서도 잘 동작한다고 합니다.
전체 step 수가 유지되도록 batch size와 epoch 수를 조정하면서 실험을 진행
- batch size 256에 epoch 1M = batch size 2K에 epoch 125K
- batch size가 커졌을 때 perplexity가 낮아짐과 동시에 성능이 향상되며 데이터를 parallelize 하기 쉽기 때문에 RoBERTa에서는 8k의 batch size를 사용합니다.
Text Encoding
- BERT는 데이터 전처리 이후에 30K 크기의 character-level BPE tokenizer를 사용합니다.
- RoBERTa는 전처리 없이, 50K 크기의 byte-level BPE tokenizer를 사용합니다. 이는 GPT-2에서 사용한 tokenizer와 동일합니다.
- 이것을 사용하면 “unknown” token 없이도 input text를 encoding 할 수 있는 적당한 크기의 하위 단어 어휘를 train 할 수 있습니다.
- 본 논문에서 encoding에 대한 실험은 진행하지 않았습니다.
3. Result
1) MNLI (Multi-Genre Natural Language Inference) : 이 문장 다음 문장이 이어지는 문장인지, 반대되는지, 서로 관련이 없는지를 체크
2) QNLI (Question Natural Language Inference) : 질의응답
3) QQP (Quora Question Pairs) : 두 질문이 의미상 같은지 다른지 분류
4) RTE (Recognizing Textual Entailment) : MNLI와 비슷하지만 양이 적음
5) SST (The Stanford Sentiment Treebank) : 영화 리뷰 감정 분류
6) MRPC (Microsoft Research Paraphrase Corpus) : 뉴스와 사람이 만든 문장이 같은 뜻인지 아닌지
7) CoLA (The Corpus of Linguistic Acceptability) : 문법이 맞는지 틀린 지 분류
8) STS (The Semantic Textual Similarity Benchmark) : 뉴스 헤드라인과 사람이 쓴 패러프레이징 문장이 같은지 아닌지
9) WNLI (Winograd NLI) : 문장 분류
4. Conclution
정리하자면
- 더 많은 160GB의 데이터
- Dynamic masking
- NSP 없이 MLM만으로 pre-train
- Full-sentence 형식의 input
- BERT의 약 32배의 batch size
- byte-level BPE tokenizer
을 통해 무작정 모델을 수정하는 것이 아닌, 데이터 크기, 학습 시간 같은 것들을 통해 모델을 제대로 학습시키는 것의 중요성을 보여줬습니다.