[논문 리뷰] RoBERTa: A Robustly Optimized BERT Pretraining Approach

Seoyeon·2022년 8월 28일

NLP 논문 리뷰

목록 보기
3/3

⚠️ BERT 논문 리뷰를 먼저 보시는 것을 추천 드립니다 ⚠️

Reference
https://arxiv.org/pdf/1907.11692.pdf


1. Introduction

  • 최근 ELMO, GPT, BERT, XLM, XLNet 등의 self-training method는 상당한 성능 개선을 보였지만, 제안된 방식 중 어떤 전략이 성능 개선에 가장 큰 영향을 주었는지 판단하는 것에 어려움이 있다.
    • 이러한 방식은 pre-training에서 많은 시간과 비용이 소요되고, 각각의 방법들이 다양한 크기의 private 데이터를 이용하여 학습이 되었기 때문에 비교하는 것이 어렵다.

  • 논문에서는 BERT는 아직 학습이 덜 되어 있고(undertrain), 이를 보완할 방법을 아래와 같이 제안했다.
    (1) 모델을 더 많은 데이터와 더 큰 배치 사이즈로 더 오래 학습시킴
    (2) Next Sentence Prediction(NSP) 방법론을 제외
    (3) 더 긴 시퀀스를 이용하여 학습
    (4) dynamic masking 적용
    + 학습 데이터 셋 크기에 따른 효과를 확인하기 위해서 새로운 데이터셋 수집(CC-News) ➡️ BERT 성능 향상을 위한 방법을 RoBERTa라고 부르기로 함.

  • RoBERTa가 기여한 점
    (1) BERT design choices와 학습 전력을 제시하여 downstream task(GLUE, SQuAD) 성능을 높임
    (2) 새로운 데이터셋 CCNews를 사용하고, pretraining 단계에서 더 큰 데이터셋을 사용하면 모델의 성능 향상에 영향을 준다는 것을 보임
    (3) Masked Language Model(MLM) pretraining의 경쟁력을 보임


2. Background

이 섹션에서는 BERT의 pretraining 방식에 대해 간단하게 소개. 더욱 자세한 내용은 BERT 논문 리뷰를 참고.


2.1 Setup

  • BERT는 두 개의 segment를 연결하여 입력으로 사용한다.(x1,...,xNx_1, ..., x_Ny1,...,yNy_1, ..., y_N).
    • 하나의 segment는 주로 한 개 이상의 자연어 문장으로 구성
    • 두 개의 segment는 아래와 같이 special tokens를 포함하여 BERT의 하나의 입력 시퀀스로 사용됨
      [CLS],x1,...,xN,[SEP],y1,...,yM,[EOS][CLS], x_1, ..., x_N, [SEP], y_1, ..., y_M, [EOS]
      • MMNNM+N<TM+N<T.
      • 이 때, TT는 학습 시에 사용할 최대 시퀀스 길이를 결정하는 파라미터
  • 모델은 처음에 large unlabeled 텍스트 데이터셋을 이용하여 사전 학습을 진행하고, 각 태스크에 맞는 labeled 데이터를 이용하여 파인 튜닝을 진행한다.

2.2 Architecture

  • transformer의 encoder로 이루어진 구조
  • LL개 층의 transformer 블록을 이용했고, 각각의 블록은 AA개의 self-attention heads와 hidden dimension HH으로 구성됨.

2.3 Training Objectives

Masked Language Model(MLM)

  • pretraining 단계에서 입력 시퀀스의 토큰 중 일부를 랜덤으로 선택하여 special token [MASK]로 교체
    • 마스킹된 토큰을 예측하고, cross-entropy loss를 이용하여 학습
    • BERT는 전체 입력 시퀀스의 토큰 중 15%를 랜덤으로 선택하여 마스킹하고, 선택된 토큰의 80%는 [MASK]로 교체 / 10%는 그대로 유지 / 10%는 vocabulary token 내의 랜덤 토큰을 선택하여 교체

Next Sentence Prediction(NSP)

  • 두 개의 segment가 원 텍스트에서 이어지는 문장인지 아닌지를 판단하는 binary classification이다.
    • Positive examples : 데이터셋 내에서 연속된 두 문장을 선택
    • Negative examples : 서로 다른 문서 내의 두 개의 문장을 선택

2.4 Optimization

  • BERT는 아래와 같은 파라미터를 이용하여 Adam optimization 사용
    • β1=0.9\beta_1 = 0.9
    • β2=0.999\beta_2 = 0.999
    • ϵ=1e6\epsilon = 1e-6
    • L2L_2 weight decay =0.01= 0.01
    • warmup steps =10,000= 10,000
    • peak learning rate =1e4=1e-4
    • dropout rate =0.1= 0.1
    • GELU activation function
    • Pretraining 단계에서 총 1,000,000 스텝을 학습
    • 미니 배치는 256개의 시퀀스 단위이고, 최대 길이는 512

2.5 Data

  • BookCorpus + English Wikipedia를 학습
    - 총 16GB의 압축되지 않은 텍스트 데이터


3. Experimental Setup


3.1 Implementation

  • fairseq의 BERT 코드를 활용하여 RoBERTa를 구현
    • peak learning ratewarmup steps를 제외하고, 대부분은 Section 2.4 Optimization에서 소개한 BERT의 하이퍼파라미터를 따름
    • 큰 배치 사이즈로 학습할 때, 안정성을 위하여 β2=0.98\beta_2 = 0.98으로 설정
  • 시퀀스의 최대 길이는 T=512T = 512 토큰으로 설정하여 사전 학습을 진행.
    • BERT와는 다르게 처음 90%의 업데이트에 대해 시퀀스 길이를 줄여서 학습하지도 않았음.(BERT에서는 처음 pretraining의 90%에서는 짧은 길이 128, 256으로 줄여서 학습하고, 남은 10%에 대해서만 full length 512를 이용하도록 권장)
    • RoBERTa는 pretraining의 시작부터 끝까지 full-length로만 학습 진행

3.2 Data

  • 총 160GB의 텍스트 데이터를 이용하여 사전 학습. 사용한 말뭉치는 아래와 같다.
    • BookCorpus + Wikipedia : BERT에서 사용한 데이터(16GB)
    • CC-News : CommonCrawl News 데이터셋의 영문 데이터를 사용. (2016.09~2019.02 사이에 수집된 총 63 million 영어 기사, 필터링 후에 76GB)
    • OpenWebText : GPT 논문에 설명된 데이터 (38GB)
    • Stories : CommonCrawl에서 story-like style of Winograd schema와 일치하는 데이터만을 필터링(31GB)

3.3 Evaluation

이전 논문들을 따라서 pretrained 모델을 3개의 벤치마크에 대해서 평가를 진행


GLUE

  • General Language Understanding Evaluation(GLUE) benchmark
    • natural language understanding system을 평가하는 9개의 태스크로 구성된 벤치마크

SQuAD

  • Stanford Question Answering Dataset(SQuAD)
    • 본문과 질문으로 구성된 데이터셋
    • 주어진 본문 내에서 질문에 대한 답을 찾는 태스크
      • v1.1 : 본문에 항상 정답을 포함
      • v2.0 : 본문에 정답이 없는 경우도 존재

RACE

  • ReAding Comprehension from Examinations
    • 대규모 질문-답변 데이터셋으로 28,000개의 passage와 거의 100,000개의 질문으로 구성.
profile
ML Engineer @Wrtn Technologies Inc.

0개의 댓글