[논문리뷰] RoBERTa: A Robustly Optimized BERT Pretraining Approach
https://arxiv.org/abs/1907.11692
BERT는 대단한 모델이나 undertrained되어 그 모델의 성능을 제대로 발휘하지 못하고 있다. 따라서, 이 논문에서는 BERT가 undertrained된 요소들을 찾고, 개선점을 찾아 제시한다. 이 논문의 이름이 RoBERTa(=Robustly optimized BERT approach)인 이유이다.
RoBERTa의 개선 방식은 총 네가지이다.
- training the model longer, with bigger batches, over more data
- removing the next sentence prediction objective
- training on longer sequences
- dynamically changing the masking pattern applied to the training data.
이 논문에서 BERT의 training의 문제점을 발견하고 개선사항을 찾는 부분은 4. Training Precedure Analysis이다. 따라서, 이 파트를 중점적으로 탐구하겠다.
4. Training Procedure Analysis
이 섹션에서는 어떠한 선택들이 성공적으로 BERT 모델을 pretraining시킬 수 있는지 탐구한다.
4.1 Static vs Dynamic Masking
기존 BERT는 static한 방법으로 masking을 진행하였음. 즉, data processing단계에서 masking을 한번 수행하였고, 이는 epoch이 상승되더라도 똑같은 마스킹된 데이터를 학습하게 되는 결과를 가져옴.
이렇게 똑같은 마스킹이 학습되는 것을 방지하기 위해, RoBERTa의 경우 data 10개를 복제하여 각 sequence에 40 epoch에 걸쳐 10가지 방법으로 masking되도록 처리하였음. 즉, 학습시 동일한 mask는 4번만 보게 되는 것임. 이는 큰 데이터 셋을 pre-train할 때 중요함.

dynamic masking을 적용한 것이 static과 동등하거나 조금 더 나은 모습을 보여주었음.
위 결과와 dynamic masking의 추가적인 이점을 고려해 보았을 때, 나머지 실험에서도 dynamic masking을 사용하기로 결정하였음.
4.2 Model Input Format and Next Sentence Prediction
기존의 BERT는 0.5의 확률로 같은 document에서 연속된 segment를 가져오거나, 각각 다른 document에서 두 개의 segment를 가져왔음. 그리고 NSP(Next Sentence Prediction)이라는 방식을 통해 paired된 segment가 연속된 segment인지, 아닌지를 판단했었음.
4.2.1 학습 세팅
하지만 NSP loss의 필요성이 의심받는 상황에서, 다음과 같이 총 4개의 set을 만들어 학습을 진행하고, 비교해 보았다.
- SEGMENT-PAIR + NSP : 기존의 BERT방식. Segment는 여러개의 문장을 포함하나, 총 길이는 512token보다 작아야 함.
- SENTENCE-PAIR + NSP : 각 입력은 document의 인접부분 또는 다른 document의 sentence 쌍으로 구성됨. 이 입력은 512token보다 훨씬 작기 때문에(Segment는 여러개 문장 포함하는데 비해 이건 한 문장이므로) 총 개수가 SEGMENT-PAIR + NSP와 유사하게 유지되도록 batch size를 늘려준다.
- FULL-SENTENCES : 각 입력은 하나이상의 document에서 연속적으로 sampling된 문장들로 채워진다. 총 길이는 512이다. 샘플링 하는 도중 document가 끝나더라도 총 길이 512를 채울 때 까지 다음 document에서 계속 sampling을 하게 되며, document사이에 별도의 seperator token을 추가한다. NSP는 사용 x
- DOC-SENTENCES : document를 넘어서 sampling을 할 수 없다는 사실을 제외하고는 FULL-SENTENCSE와 동일함. document를 넘어다닐 수 없으므로 document 끝 부분에 sampling된 입력은 최대 길이인 512에 못 미칠것이다. 이렇게 된 경우 전체 batch와 비슷한 수의 전체 sentence를 얻기 위해 동적으로 batch size를 늘리게 된다. NSP는 사용x
4.1.2 학습 결과

- SEGMENT-PAIR와 SENTENCE-PAIR를 비교해 보았을때(둘다 NSP는 사용) single sentence를 사용하는 것이 downstream task에 대한 성능을 저하한다는 것을 밝힘 - 이는 모델이 long-range dependency를 학습할 수 없기 때문이다.
- DOC-SENTENCES(NOT NSP)를 보면BERTBASEBERT_{BASE}보다 더 성능이 좋았음. 즉, NSP loss를 제거하는 것이 downstream task의 성능을 조금이나마 상승시키는 것으로 밝혀짐.
- DOC-SENTENCE(=single document사용)이 FULL-SENTENCE(=mutiple document사용)보다 sequence를 packing하는 것에 더 좋은 성능을 나타내었음.
- 하지만 DOC-SENTENCE는 가변적인 batch-size를 가지고 있고 이는 실험에 적용하기 어려움. 따라서, 나머지 실험에서는 FULL-SENTENCE를 사용.
4.3 Training with large batches
- 과거 NMT(Nerual Machine Translation)에 대한 연구들은 아주 큰 mini-batch를 사용하는 것은 (학습속도가 적절하게 증가할 때) 최적화 속도와 최종 작업 성능을 크게 향상시킬 수 있음을 보여주었음
- BERT는 대규모 batch training에도 적합하다.
- 기존BERTBASEBERT_{BASE}는 batch size 256 sequence를 이용해 1M step학습하였음.
- computation cost측면에서 보자면, (1) batch size 2K를 이용해 125K step 학습시키는 것과 (2) batch size 8K를 이용해 31K step 학습시키는 것은 각각 기존BERTBASEBERT_{BASE}의 computation cost와 동일함.

- 결과를 보면 large batch를 사용하는 것이 masked language modeling뿐만 아니라 end-task accuracy도 향상시키는 것을 확인 가능하다.
- 나머지 실험에서는 8K sequence batch를 사용한다.
4.3 Text Encoding
약간의 성능 향상이 있을 것이라는 가설만 제시하고, 실험은 진행하지 않았음.
- GPT2는 unicode character대신 byte를 base subword unit으로 하는 BPE를 사용함.
- 이를 이용하면 “unknown” token 없이도 input text를 encoding할 수 있는 적당한 크기의 하위 단어어휘를 train할 수 있음.
- 논문에서는 이를 사용함. encoding들에 대한 비교는 future work로 남겨둠.
5. RoBERTa
앞에서 언급한 향상된 접근방식들을 사용하였음. 즉,
- dynamic masking사용
- FULL SENTENCES without NSP사용
- large mini-batch사용
- larger byte-level BPE사용.
Uploaded by
N2T