-
RoBERTa: A Robustly Optimized BERT Pretraining Approach 정리AI/NLP 2022. 2. 4. 16:57728x90
RoBERTa: A Robustly Optimized BERT Pretraining Approach 정리
들어가기 전에....
https://asidefine.tistory.com/181
https://asidefine.tistory.com/179
1.Introduction
RoBERTa 이전에 등장했던 BERT 모델이 pretraining 방식을 통해 매우 좋은 성능을 냈지만,
논문의 저자들은 이 BERT 모델이 아직 undertrain되었고 hyper parameter을 어떤 값을 선택하느냐에 따라 결과값에 매우 큰 차이가 있다는 것을 다양한 실험들을 통해 알아냈다고 합니다.
그래서 기존의 이 BERT 연구를 기반으로 더 좋은 성능을 내는 세팅들을 찾아내고자 아래와 같이 model을 더 오래 학습시키거나 batch 사이즈를 더 키우는 등의 시도로, 본 논문의 이름처럼 BERT을 robust하게 optimize합니다.
- Modification
- 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와 어떤 차이점이 있는지는 아래에서 더욱 구체적으로 말씀드리도록 하겠습니다.
따라서 본 논문에서는 BERT의 한계를 보완하고자 학습 전략이나 디자인 방법들의 중요성에 주목했고, 올바른 설계 하에 있는 masking language model pretraining 방식은 경쟁력 있다는 것을 보여줍니다.
[Contribution]
- We present a set of important BERT design choices and training strategies and introduce alternatives that lead to better downstream task performance
- Our training improvements show that masked language model pretraining, under the right design choices, is competitive with all other recently published methods
2. Background
RoBERTa는 BERT에 대한 Replication Study이기 때문에 2절에서는 BERT에 대해서 간단하게 요약 및 설명합니다.
BERT는 각 층이 transformer의 encoder로 이뤄져 있으며 두 단계로 학습을 합니다. 먼저 많은 양의 unlabeled corpus를 이용해서 pretrain을 진행하고, 두번째로 특정 도메인의 task를 학습하는 fine-tuning을 합니다.
BERT에서 pretraining은 Masked Language Model과 Next Sentence Prediction의 loss를 합하여 학습을 동시에 한다고 합니다.
https://asidefine.tistory.com/181
3. Experimental Setup
- Implementation
- Pretrain with sequences of at most T=512 tokens
- Data
- 160GB
- Evaluation
- GLUE
- SQuAD
- RACE
4. Training Procedure Analysis
1) Dynamic Masking
첫번째로 기존의 BERT는 data preprocessing과정에서 masking을 한번 수행해서 mask를 고정합니다. RoBERTa에서는 같은 mask를 사용하는 것을 막기 위해서, 학습 데이터를 10번 복제를 해서 40 epoch을 돌릴 때 10번의 다른 방법으로 mask을 진행합니다. 즉 같은 mask에 대해 4번의 학습을 진행하고 같은 문장에 대해서는 10번의 다른 mask를 사용합니다. 그 결과 위의 표처럼 약간의 성능 향상이 있는 것을 확인할 수 있었습니다.
2) Model Input Format and Next Sentence Prediction
두번째로 앞서 말씀드렸던 것과 같이 BERT에서는 pretrain 시에 Masked Language Model과 Next Sentence Prediction의 loss를 합하여 학습을 동시에 한다고 말씀드렸습니다. 하지만 본 논문의 저자들은 이렇게 두 개의 연결된 segment를 관찰하여 동일한 문서인지 아닌지에 대해 판단하는 NSP가 성능에 크게 기여하지 않는다고 가정을 하고 실험을 진행했습니다.
- 이러한 불일치를 더 잘 이해하기 위해 몇 가지 대체 training format을 비교합니다.
- SEGMENT-PAIR+NSP: 기존의 BERT에서 사용된 원래 input format을 따르며 NSP를 사용함. 각 입력에는 여러개의 문장이 포함되며 한 쌍의 segment가 있지만 512미만 길이의 token으로 구성.
- SENTENCE-PAIR+NSP: 각 입력에는 document의 인접부분 또는 다른 document의 sentence 쌍으로 구성됨. 이 입력은 512 token보다 훨씬 짧기 때문에 총 갯수가 SEGMENT-PAIR+NSP와 유사하게 유지되도록 batch size를 늘린다. NSP 또한 사용.
- FULL-SENTENCES: 각 입력은 하나 이상의 document에서 연속적으로 sampling된 전체 sentence로 채워지므로 총 길이는 최대 512이다. document가 끝나면 다음 document에서 sentence를 sampling하며 document사이에 별도의 separator token을 추가함. NSP는 사용하지 않음.
- DOC-SENTENCES: 입력이 document 경계를 넘을 수 없다는 점을 제외하고 FULL-SENTENCES와 유사하게 구성된다. document의 끝 부분에 sampling된 입력은 512개의 token보다 짧을 수 있으므로 이러한 경우 전체 batch와 비슷한 수의 전체 sentence를 얻기 위해 동적으로 batch size를 늘린다. NSP는 사용하지 않음.
⇒ 다수문장(segment)이 단일문장(sentence) 방식에 비해 높은 정확도를 가짐
(Sentence방식은 long range dependency를 반영할 수 없기 때문에 )
⇒ BERT모델(segment)와 단일문단(doc-sentences)를 비교한 결과, 단일문단 방법이 더 나은 결과값 출력
(NSP 제거했을 때 더 좋은 성능)
⇒ 다수문단(FULL-SENTENCES)보다 단일문단(doc-sentences)이 더 높은 정확도를 가짐
(그러나 doc-sentences는 dynamic하기 때문에 3번 사용 )
3) Training with large batches
세번째로 큰 mini batch를 사용한 학습은 학습속도가 적절하게 증가할 때 최적화 속도와 최종 작업 성능을 향상시킬 수 있다는 과거의 연구를 바탕으로, BERT 또한 큰 batch로 training하는 데에 적합하다고 합니다. 실제로 실험한 결과, large batch를 통한 training이 masked language modeling뿐만 아니라 end-task accuracy도 향상시키는 것을 확인할 수 있었습니다.
4) Text Encoding
- Byte-Pair Encoding (BPE) : a hybrid between character- and word-level representations that allows handling the large vocabularies common in natural language corpora.
마지막으로 Text Encoding에 대해서는 논문에서는 단순히 적용한다면 성능이 좋을 것이라는 언급만 하고 실험은 진행하지 않았는데요. 유니코드 문자 대신 byte를 기본 하위 단위로 사용하는 Byte-Pair Encoding을 사용하면 “unknown” token 없이도 input text를 encoding할 수 있는 적당한 크기의 하위 단어 어휘를 train할 수 있고 이를 모델에 반영했다고 합니다.
5. RoBERTa
Modification
- training the model longer, with bigger batches, over more data
- BERT (16GB) → RoBERTa (160G)
- removing the next sentence prediction objective
- training on longer sequences
- dynamically changing the masking pattern applied to the training data
위에서 진행했던 실험결과들의 최상의 조합으로 RoBERTa를 소개합니다.
RoBERTa에 이용된 설정은 다음와 같습니다.기존의 BERT 모델과 달리, 더 큰 배치 사이즈로 더 많은 데이터를 이용하여 모델을 더 오래 학습시킵니다. 다음으로, BERT에서는 pretrain 시에 masked LM과 NSP를 모두 사용하였지만, RoBERTa에서는 NSP를 제거하고 사용합니다. 또한 이 masked LM 방법으로 pretrain할 때 BERT와 달리 매 학습 epoch 마다 다른 Mask을 사용하는 Dynamic Masking 방법을 사용하였습니다,.
앞서 말씀드렸던 설정들을 적용해서, GLUE, SQuAD, RACE 이렇게 세 가지 벤치마크에 대해서 실험했을 때 모두 SOTA를 달성했습니다. 비교 모델로는 Masked-LM objective를 이용하면서 다른 구조를 가진 모델인 XLNet과 기존의 BERT를 사용하였습니다.
6. Related Work
기존의 pretraining 방법들은 다양한 training objectives들(e.g. language modeling / machine translation / masked langugage moodeling)을 위해 고안되었습니다.
최근의 연구들은 각각의 end task을 위한 fine tuning 모델들과 pretraining 모델들을 사용하였습니다.
그러나 여기서 더 발전해서 새로운 방법들( e.g. 하나의 task에 국한되는 것을 넘어, multi-task fine tuning / entity embedding을 포함 / span prediction / multiple variants of autoregressive pretraining )을 도입해서 성능을 더 높였습니다. 또한 더 큰 모델로 학습하고 더 많은 data를 사용함으로써도 성능이 향상했습니다.
7. Conclusion
- performance can be substantially improved
- by 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
- Achieves SOTA results on GLUE, RACE and SQuAD without multi-task finetuning for GLUE or additional data for SQuAD
- illustrate the importance of these previously overlooked design decisions
- Suggest that BERT’s pretraining objective remains competitive with recently proposed alternatives
최종적으로 RoBERTa 논문에 대해 결론을 내리자면, RoBERT의 이름과 같이 성능이 잘 나오는 BERT의 성능을 좀 더 끌어올리고 최적화시키고자 하는 연구가 진행되었습니다.
따라서 본 논문에서는 학습을 더 오래 시키거나 batch 크기를 키우는 등의 여러 가지 방법으로 성능을 더 끌어올릴 수 있었습니다. 이로 인해서 multi-task finetuning 없이도 GLUE 등의 여러 NLP Benchmark들에서도 SOTA를 달성했으며, 이전에는 간과되었던 설계의 중요성을 강조했다는 의의가 있습니다.
Reference
https://lsjsj92.tistory.com/626
https://vanche.github.io/NLP_Pretrained_Model_BERT(2)/
https://choice-life.tistory.com/45
https://jeonsworld.github.io/NLP/roberta/
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jjys9047&logNo=221671424019
https://baekyeongmin.github.io/paper-review/roberta-review/
728x90'AI > NLP' 카테고리의 다른 글
NLP 논문 공부 순서 (2023.12 업데이트) (0) 2022.02.04 NLP Benchmark Datasets 정리 (GLUE / SQuAD/RACE) (0) 2022.02.04 Word Embedding 3 : Deep Contextualized Word Representations (ELMo) 정리 (0) 2022.01.17 Word Embedding 01 (One-hot Encoding / Word2Vec ) 정리 (0) 2021.12.31 Word Embedding 02 ( Glove / FastText ) 정리 (0) 2021.12.31 - Modification