[Paper Review] RoBERTa: A Robustly Optimized BERT Pretraining Approach

2022. 3. 13. 23:26·AI/ML/NLP

1. Introduction

논문에서는 BERT가 충분히 훈련되지 않았고 다음과 같은 방법을 통해 성능을 더 높일 수 있다고 제안했습니다. (We find that BERT  was significantly undertrained, and can match  or exceed the performance of every model  published after it.) 

  • 더 큰 batch size, 더 많은 데이터, 더 많은 학습시간
  • NSP 제거
  • 더 큰 max sequence length을 사용하여 학습
  • MLM에서 Dynamic Masking 적용

2. Implementation

Data

160GB의 데이터 사용 (기존 BERT에서는 16GB)

  • BookCorpus + Wikipedia (16GB)
  • CC-News (76GB)
  • OpenWebText (38GB)
  • Stories (31GB)

Hyperparameter

  • 기존 BERT의 training hyperparameter를 따름
  • peak learning rate와 warmup steps, Adam의 epsilon, β2는 변경
  • 전체 sequence의 최대 길이는 512로 맞춤

Dynamic Masking

기존 BERT에서는 static masking을 사용하여 매 epoch마다 동일한 masking을 적용한 데이터를 학습했습니다. 하지만 이 논문에서는 dynamic masking을 제안하여 data를 10배 복사한 후 10번 각각 다른 mask를 적용합니다. 그리고 총 40 epoch 학습을 진행함으로써 동일하게 masking 된 data는 4번씩 학습하게 됩니다. Dynamic masking이 조금 더 우세한 성능을 보여줍니다.

NSP (Next Sentence Prediction)

두 문장이 서로 이어지는 문장인지 예측하는 NSP loss로 pre-training 하는 것에 의문을 제기하고 다양한 Input format을 실험합니다. 그 결과 앞으로의 실험에서는 Full-SENTENCES방식을 채택합니다.

  • SEMGENT-PAIR + NSP
    • 기존 BERT와 동일한 Input
  • SENTENCE-PAIR + NSP
    • 하나의 문서에서 연속된 문장 또는 서로 다른 문서에서 온 두 문장
    • segment가 아닌 sentence 단위. sentence가 segment보다 짧으므로 배치 사이즈를 늘림
  • FULL-SENTENCES
    • 하나 이상의 document에서 연속적으로 sampling 된 전체 sentence
  • DOC-SENTENCES
    • FULL-SENTENCES와 같지만 document를 건너뛸 수 없음

Batch Size

최근 연구들이 BERT가 large batch size에서도 잘 동작한다고 합니다.

전체 step 수가 유지되도록 batch size와 epoch 수를 조정하면서 실험을 진행

  • batch size 256에 epoch 1M = batch size 2K에 epoch 125K
  • batch size가 커졌을 때 perplexity가 낮아짐과 동시에 성능이 향상되며 데이터를 parallelize 하기 쉽기 때문에 RoBERTa에서는 8k의 batch size를 사용합니다.

Text Encoding

  • BERT는 데이터 전처리 이후에 30K 크기의 character-level BPE tokenizer를 사용합니다.
  • RoBERTa는 전처리 없이, 50K 크기의 byte-level BPE tokenizer를 사용합니다. 이는 GPT-2에서 사용한 tokenizer와 동일합니다.
  • 이것을 사용하면 “unknown” token 없이도 input text를 encoding 할 수 있는 적당한 크기의 하위 단어 어휘를 train 할 수 있습니다.
  • 본 논문에서 encoding에 대한 실험은 진행하지 않았습니다.

 

 

3. Result

1) MNLI (Multi-Genre Natural Language Inference) : 이 문장 다음 문장이 이어지는 문장인지, 반대되는지, 서로 관련이 없는지를 체크

2) QNLI (Question Natural Language Inference) : 질의응답 

3) QQP (Quora Question Pairs) : 두 질문이 의미상 같은지 다른지 분류

4) RTE (Recognizing Textual Entailment) : MNLI와 비슷하지만 양이 적음

5) SST (The Stanford Sentiment Treebank) : 영화 리뷰 감정 분류 

6) MRPC (Microsoft Research Paraphrase Corpus) : 뉴스와 사람이 만든 문장이 같은 뜻인지 아닌지

7) CoLA (The Corpus of Linguistic Acceptability) : 문법이 맞는지 틀린 지 분류

8) STS (The Semantic Textual Similarity Benchmark) : 뉴스 헤드라인과 사람이 쓴 패러프레이징 문장이 같은지 아닌지

9) WNLI (Winograd NLI) : 문장 분류

4. Conclution

정리하자면 

  • 더 많은 160GB의 데이터
  • Dynamic masking
  • NSP 없이 MLM만으로 pre-train
  • Full-sentence 형식의 input
  • BERT의 약 32배의 batch size
  • byte-level BPE tokenizer

을 통해 무작정 모델을 수정하는 것이 아닌, 데이터 크기, 학습 시간 같은 것들을 통해 모델을 제대로 학습시키는 것의 중요성을 보여줬습니다.

'AI/ML > NLP' 카테고리의 다른 글

[Paper Review] LoRA: Low-Rank Adaptation of Large Language Models  (1) 2023.05.14
[Paper Review] Don’t Stop Pretraining  (0) 2022.10.23
[Review] OpenAI의 DALL-E2 공개  (0) 2022.04.24
[Paper Review] An Empirical Study of Tokenization Strategies for Various Korean NLP Tasks  (0) 2022.01.23
[Paper Review] Transferable Multi-Domain State Generator for Task-Oriented Dialogue Systems (TRADE)  (0) 2021.05.10
'AI/ML/NLP' 카테고리의 다른 글
  • [Paper Review] Don’t Stop Pretraining
  • [Review] OpenAI의 DALL-E2 공개
  • [Paper Review] An Empirical Study of Tokenization Strategies for Various Korean NLP Tasks
  • [Paper Review] Transferable Multi-Domain State Generator for Task-Oriented Dialogue Systems (TRADE)
gunuuu
gunuuu
주로 AI, ML에 관한 글을 씁니다.
  • gunuuu
    gunuuu
    gunuuu
  • 전체
    오늘
    어제
    • 분류 전체보기 (40)
      • AI/ML (11)
        • NLP (8)
        • RAG (1)
      • Pytorch (5)
      • Python (11)
      • SQL (2)
      • Causal Inference (3)
        • DoWhy (1)
      • 일상 (3)
      • 책 (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    DAPT
    Hybrid search
    sparse vector
    Chain of Thought
    SQL
    nlp
    FAISS
    cython
    미니어처 라이프 서울
    인과추론
    Low-Rank Adaptation
    TAPT
    line_profiler
    onnx
    허깅페이스
    window function
    itertuples
    Tree of Thought
    bm25
    대규모언어모델
    크레마S
    PEFT
    DetectGPT
    인과 추론
    DoWhy
    모델경량화
    DataDistributedParallel
    TALLRec
    벡터 db
    KoAlpaca
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
gunuuu
[Paper Review] RoBERTa: A Robustly Optimized BERT Pretraining Approach
상단으로

티스토리툴바