티스토리 뷰
RoBERTa: A Robustly Optimized BERT Pretraining Approach
0. Abstract
- 언어 모델의 pre-training은 성능 향상을 가져왔지만, 서로 다른 언어 모델의 pre-training 방법을 직접적으로 비교하는 것은 어려움.
(각 모델의 성능을 평가하거나 비교할 때 데이터셋의 규모나 품질이 다르기 때문) - 이 논문에서는 BERT pre-training의 효과를 확인하고 핵심 하이퍼파라미터 및 학습 데이터셋 크기의 영향을 측정하는 복제 연구를 진행한다.
(replication study : 특정 연구의 결과를 확인하거나 재현하기 위해 이전 연구를 다시 수행하는 과정을 말함.) - 이 연구에서는 BERT가 실제로 충분히 훈련되지 않았으며, 이를 개선한 모델이 RoBERTa이다.
한 마디로? RoBERTa는 BERT를 더 많은 데이터를 활용해 더 오래 학습시킨 모델!
1. Introduction
- ELMo, GPT, BERT, XLM, XLNet과 같은 Self-Supervised learning이 중요한 성능 향상을 가져왔지만, 어떤 측면이 가장 큰 기여를 하는지 결정하기 어렵다고함. ( 튜닝할 수 있는 양이 제한, 학습 데이터가 모두 다르기 때문에 모델링 효과를 측정하는 것이 제한됨 )
- BERT가 충분히 학습되지 않았고, 이를 개선한 RoBERTa를 제안함
- 논문에서 말한 수정 사항
- 모델을 더 오랫동안 더 큰 배치로 더 많은 데이터를 사용하여 훈련 ( 기존 BERT 16G -> RoBERTa 160G )
- NSP(Next Sentence Prediction ) 제거
- 더 긴 시퀀스로 훈련
- 훈련 데이터에 적용되는 마스킹 패던을 동적으로 변경
2. Background ( BERT에 관련된 내용 )
2.1 Setup
- BERT 모델은 두 개의 segment(토큰 시퀀스)를 입력으로 받고 [CLS] x1 x2 ... xN [SEP] y1 ... yM [EOS] 와 같이 토큰을 활용하여 BERT에 제공한다. N, M은 각각 첫 번째와 두 번째 segment의 토큰 수를 나타내며, T는 훈련 중 최대 시퀀스의 길이를 제어하는 매개변수이다.(T = 512)
- BERT는 라벨이 없는 텍스트를 활용하여 pre-training을 진행한 후, 최종 작업에 대해 label이 있는 데이터를 활용해 fine-tuning을 진행한다.
2.2 architecture
- BERT 모델은 Transformer 아키텍쳐를 사용하고 transformer블록은 입력 segment의 각 위치에서 특징을 추출.
(L개의 transformer 블록으로 구성되어 있으며, 각 블록은 A개의 self-attention head와 H개의 hidden dimension을 가짐)
2.3 Training Objectives
- BERT는 pre-training시 MLM(masked language model)과 NSP(next sentence prediction)를 진행한다.
2.4 Optimization
- BERT는 $\beta_{1}=0.9$ , $\beta_{2}=0.999$, $\varepsilon=1e-6$ 및 L2 weight decay = 0.01 를 사용하여 Adam으로 최적화 진행
- Learning rate는 처음 10,000단계 동안 1e-4의 최대 값으로 증가한 후 선형적으로 감소
- BERT는 모든 layer와 attention weight에 대해 0.1의 dropout과 GELU 활성화 함수를 사용하여 학습을 진행
- BERT는 B = 256개의 최대 길이 T=512 개의 토큰을 포함하는 미니배치로 S = 1,000,000 업데이트를 진행(pre-training)
2.5 Data
- BERT는 BOOKCORPUS와 영어 위키 텍스트 데이터를 사용하여 사전 학습을 진행 (총 16G)
3. Experimental Setup
3.1 Implementation
- FAIRSEQ에서 BERT를 구현
- FAIRSEQ은 Facdbook AI Research에서 개발한 시퀀스 모델링을 위한 빠르고 확장 가능한 툴킷으로 PyTorch를 기반으로 하며, 다양한 시퀀스 모델링 작업에 대한 최신 모델 아키텍처와 학습 알고리즘을 제공. FAIRSEQ은 기계 번역, 자연어 이해, 음성 인식 및 생성, 이미지 캡셔닝 등 다양한 분야에서 사용.
- 이 논문에서는 각 설정에 대해 개별적으로 조정된 peak learning rate와 warm up rate 단계 수를 제외하고는 BERT의 하이퍼 파라미터를 사용.
- 훈련이 Adam epsilon항에 매우 민감하다는 것을 발견하였고, 배치 크기가 큰 훈련시 안정성을 향상시키기 위해 $\beta_{2}=0.99$로 설정하여 진행 (BERT는 0.999사용)
- 최대 T=512개 토큰의 시퀀스로 pre training 진행.
- 짧은 시퀀스를 무작위로 주입하지 않으며, 업데이트의 처음 90%동안 시퀀스 길이가 감소된 상태로 훈련하지 않음.
( 원래의 긴 시퀀스를 그대로 사용하여 학습을 진행함. 이는 입력 데이터의 길이를 줄이거나 잘라내지 않고, 전체 문장이나 문서를 그대로 모델에 입력으로 제공하여 학습하는 것을 말함.)
3.2 Data
- BOOKCORPUS, Wikipedia (16GB) 기존 BERT에서 사용한 데이터
- CC-NEWS는 CommonCrawl 뉴스 데이터셋의 영어 부분에서 수집된 데이터로 2016년 9월부터 2019년 2월까지 수집된 6300만건의 영어 뉴스 기사를 포함(76GB)
- OPENWEBTEXT는 WebText corpus의 오픈소스 재구성본으로, Reddit에서 최소 세 개의 추천을 받은 URL에서 추출된 웹 콘텐츠를 포함(38GB)
- STORIES는 자연어 이해 및 상식적 추론을 평가하기 위한 일련의 문장 쌍 (31GB)
3.3 Evaluation
- GLUE 벤치마크
- CoLA ( Corpus of Linguistic Acceptability) : 문법적으로 올바른지를 식별하기 위한 데이터셋
- SST (Stanford Sentiment Treebank) : 문장의 감정을 분류하기 위한 데이터셋
- MRPC (Microsoft Research Paraphrase Corpus) : 두 문장이 서로 동일한 의미를 가지는지를 식별하기 위한 데이터셋
- STS (Sementic Textual Similarity Benchmark ) : 두 문장 사이의 의미적 유사성을 측정하기 위한 데이터셋
- QQP (Quora Question Pairs) : 두 질문이 동일한 의미를 가지는지를 식별하기 위한 데이터셋
- MNLI (Multi-Genre Natural Language Inference) : 두 문장 사이의 추론 관계를 식별하기 위한 데이터셋
- QNLI (Question-Answering Natural Language Inference ) : 질문과 문장 사이의 추론 관계를 식별하기 위한 데이터셋
- RTE ( Recognizing Textual Entailement) : 두 문장 사이의 함의 관계를 식별하기 위한 데이터셋
- WNLI (Winograd Natural Language Inference) : 두 문장 사이의 추론 관계를 식별하기 위한 데이터
- SQuAD 스탠포드 질문 답변 데이터셋
V1.1에서는 항상 문맥에 답이 포함된 반면, V2.0에서는 일부 질문에 대해 제공된 문맥에서 답이 나오지 않아 과제가 더 어려워짐- SQuAD V1.1의 경우 BERT와 동일하게 Span prediction method를 채택
( span prediction method는 주어진 문장에서 정확한 답변을 찾기 위해, 문장에서 답변이 위치한 시작점과 끝점을 예측 ) - SQuAD V2.0의 경우 질문이 답변 가능한지 여부를 예측하기 위해 추가 이진 분류기를 추가하며, 이 분류기는 주어진 질문에 대해 답변이 가능한지 여부를 나타냄.
( 이진 분류기를 학습시키기 위해 분류와 범위에 대한 손실을 합하여 사용한다는 것을 의미. 이렇게 함으로써, 모델은 답변 가능 여부를 판단하는 이진 분류와 정확한 답변 범위를 예측하는 두 가지 작업을 동시에 학습하게 됨. 모델이 평가 단계에서는 답변 가능한 질문에 대해서만 정확한 답변 범위를 예측하도록 한다는 것을 의미. 따라서 모델은 답변이 가능하다고 판단된 질문에 대해서만 정확한 답변 범위를 예측하게 된다.)
- SQuAD V1.1의 경우 BERT와 동일하게 Span prediction method를 채택
- RACE : 28,000개 이상의 지문과 거의 10만 개에 달하는 질문으로 구성된 대규모 데이터셋.
RACE에서는 각 지문이 여러 질문과 연결됨. 모든 질문에 대해 네 가지 보기에서 하나의 정답을 선택하는 것으로 맥락이 상당히 길고 추론을 필요로 하는 질문의 비율이 매우 큼.
4. Training Procedure Analysis
이 절에서는 BERT 모델을 성공적으로 pre training하기 위해 어떤 선택이 중요한지를 이야기함.
구체적으로 BERT BASE와 동일한 구성의 BERT모델을 훈련하는 것으로 시작 (L=12, H=768, A=12, 110M params)
4.1 Static vs Dynamic Masking
기존 BERT는 데이터 전처리 과정에서 한 번의 마스킹을 수행하여 Static한 마스크를 생성하였고, 매 에포크에서 각 훈련 인스턴스에 대해 동일한 마스크를 사용하는 것을 피하기 위해 훈련 데이터를 10배 복제하여(10개의 다른 mask 적용) 각 시퀀스가 40 에포크 동안 10개의 서로 다른 방식으로 마스크 되도록 함. 따라서 각 훈련 시퀀스는 훈련 중 4회 동일한 마스크를 보게됨.
이 표를 통해 정적 마스킹을 사용하여 재구현 한 모델이 기존의 BERT모델과 유사한 성능을 보이고 있으며, 동적 마스킹은 정적 마스킹과 비슷하거나 약간 더 나은 것을 알 수 있음.
이러한 결과와 동적 마스킹의 추가적인 효율성 이점을 감안할 때, 나머지 실험에서 동적 마스킹을 사용한다.
4.2 Model Input Format and Next Sentence Prediction
'부스트캠프' 카테고리의 다른 글
Do PLMs Know and Understand Ontological Knowledge? (0) | 2024.01.06 |
---|---|
[논문 읽기] Fine-Tuning Pre trained Language Models:Weight Initializations, Data Orders, and Early Stopping (0) | 2023.12.25 |
[Boostcamp] 6주차 회고 (0) | 2023.12.15 |
[Boostcamp] 5주차 회고 (2) | 2023.12.08 |
[Boostcamp] 4주차 회고 (0) | 2023.12.01 |