링크: https://openreview.net/forum?id=SyxS0T4tvS
RoBERTa: A Robustly Optimized BERT Pretraining Approach
We evaluate a number of design decisions when pretraining BERT models and propose an improved recipe that achieves state-of-the-art results on many natural language understanding tasks.
openreview.net
간단 요약 및 목차
- Background
- 모델을 학습시키는것은 많은 자원이 드니까 정확히 어떤 학습방법이 모델의 성능을 향상시키는건지 측정하기가 어려움
- BERT 모델은 undertraining 되어 있음
- Architecture
- BERT-large와 동일
- Methods
- training the model longer
- removing the NSP
- training on longer sentence
- byte-level BPE
- dynamically masking pattern
- training with large data (collect a large new dataset, CC-News)
- Contribution
- BERT-based 모델 design choice의 중요성과 학습 방법, downstream task에서 더 높은 성능을 내는 방법 등을 제안
- 새로운 데이터셋을 사용하여 더 많은 데이터로 pretraining하는게 downstream task에서 높은 성능을 냄을 확인함
- 올바른 모델 디자인 하에, 우리의 MLM 사전 학습 개선이 다른 모든 방법에 비해 경쟁력이 있음을 보여줌
- Result and Conclusion
- SOTA on 4/9 GLUE, SQuAD
Background - Comparison with BERT
- BERT
- 2개 (이상도 가능하긴 함)의 문장이 함께 input으로 들어감. ex) [CLS], x1, . . . , xN , [SEP], y1, . . . , yM, [EOS]
- transformer 기반의 architecture로 number of layer: L, heads: A, hidden dimension: H
- Optimization:AdamW, Weight decay, warmup learning rate (linear), dropout, GELU, step=1,000,000, batch size=256, max leangth=512
- 16GB data (bookcorpus, english wikipedia)
- Character level BPE
- 모델을 학습시키는것은 많은 자원이 드니까 정확히 어떤 학습방법이 모델의 성능을 향상시키는건지 측정하기가 어려움
- BERT 모델은 undertraining 되어 있음
- XLNet과 BERT
- max length (token), batch size (sequences), pretraining epoch (epochs)
- BERT: 512, 256, 40 (data: 16GB)
- XLNet: (?), 2048, 50
- XLNet이 BERT보다 성능이 좋은 이유가 학습도 10 time 많이 하고, batch size도 8배나 커서 그런거 같다
- RoBERTa
- RoBERTa가 BERT와 모델 architecture 자체가 다른 줄 알았는데 같고, 학습 방법이 다른 것임
- : 512, 256, 40 (data: 160GB)
- batch size, number of data, step을 모두 키워서 모델을 만들어보자 → RoBERTa
Methods
- training the model longer
- step을 100K, 300K, 500K로 비교해서 학습시켰더니 성능이 점점 향상
- removing the NSP
- NSP를 제거하고 (전처리 과정 자체를 생략) MLM으로만 학습시켰더니 오히려 더 높은 성능을 보임
- training on longer sentence
- 하나의 data의 길이에 따라 padding하지 않고 꽉꽉 채워넣음
- byte-level BPE
- character-level BPE를 byte-level로 진행함. byte 별로 글자를 잘라서 corpus에 등장하는 횟수에 따라 우선적으로 사전에 추가함
BPE 예시)
- character-level BPE를 byte-level로 진행함. byte 별로 글자를 잘라서 corpus에 등장하는 횟수에 따라 우선적으로 사전에 추가함
- dynamically masking pattern
- 학습할 때마다 masking pattern을 동적으로 변경하여 매번 다른 mask를 예측하도록 학습하는 방법. 하나의 mask에 대해 4번씩 학습한다고 함.
ex) 1 epoch, 나는 고양이를 <MASK> 좋아해 → 모델에게 이 문장을 4번씩 보여줌
2 epoch, 나는 <MASK>를 엄청 좋아해
3 epoch, 나<MASK>는 고양이<MASK>를 엄청 좋아해
- 학습할 때마다 masking pattern을 동적으로 변경하여 매번 다른 mask를 예측하도록 학습하는 방법. 하나의 mask에 대해 4번씩 학습한다고 함.
- training with large data (collect a large new dataset, CC-News)
- CC-News라는 새로운 데이터를 수집하고, 데이터셋을 구축해 모델을 큰 데이터로 학습함.
Experiment & Result
- Table 1
- segment-pair (=original bert): S1 <sep> S2
ex) <BOS> 저는 고양이를 좋아해요. <SEP> 고양이는 쥐를 잘 잡아요. <EOS> <PAD> <PAD> - Sentence-pair: S1 S2
ex) <BOS> 저는 고양이를 좋아해요. 고양이는 쥐를 잘 잡아요. <EOS> <PAD> <PAD> <PAD> - Full-Sentences: 다른 문서여도 함께 input으로 넣어줌. 단 다른 문서는 사이에 특수 토큰을 넣어줌
ex) <BOS> 저는 고양이를 좋아해요. 고양이는 쥐를 잘 잡아요. <specialtoken> 개는 늑대의 후손입니다. 개는 사냥을 잘 - Doc-Sentence: 같은 문서에서만 문장을 함께 input으로 넣어줌
- ex) <BOS> 저는 고양이를 좋아해요. 고양이는 쥐를 잘 잡아요. 하지만 고양이는 곤충을 더
→ NSP 학습 과정 자체를 제거하고 MLM으로만 학습시키는게 더 높은 성능을 보인다
→ BERT에서는 NSP가 성능 더 좋다했는데? → BERT는 2-sentence 구조에서 NSP를 해야 성능이 더 좋다, 하지만 RoBERT에서는 2-sentence로 전처리하지 않고 그냥 MLM하는게 더 좋다힘
- segment-pair (=original bert): S1 <sep> S2
- Table2
- batch size * steps가 일정할때 (=같은 계산 복잡도, 같은 컴퓨팅 자원을 사용할때) batch size가 크면 좋다
- Table 3
- 우리가 제안한 RoBERTa (모델 아키텍처가 아닌 학습 방법)가 같은 모델인 BERTlarge보다 높은 성능을 보였다
- 학습 데이터를 추가했더니 성능이 향상했다
- BERT는 undertraining되어 있었기 때문에 학습을 더 시키고, 더 시키니 성능이 향상했다
- Table 4, 5
- RoBERTa가 BERT와 XLNet과 비교하여 모든 부분에서 높은 성능을 달성함
- Ensemble을 사용하여 leaderboard의 SOTA 모델들과 4/9 GLUE와 SQuAD에서 SOTA를 달성함
강점
- dynamic MLM pretraining로 성능을 향상하는 방법 제안
- 새로 구축한 대규모 데이터와 학습 시간으로 높은 성능 → 대규모 데이터와 충분한 학습이 성능에 중요한 영향을 미친다는 것을 증명
- NLP 제거로 효율적인 학습
- 올바른 모델 디자인 하에, 우리의 MLM 사전 학습 개선이 다른 모든 방법에 비해 경쟁력이 있음을 보여줌
약점
- 학습 및 연산 작업이 많이 듬
- 새로운 아키텍처가 없음
'논문 리뷰 > 자연어처리' 카테고리의 다른 글
Parameter-Efficient Transfer Learning for NLP 리뷰 (0) | 2025.04.27 |
---|---|
ALBERT: A Lite BERT for Self-supervised Learning of Language Representations 리뷰 (0) | 2025.04.26 |