논문 원본 : https://arxiv.org/abs/1907.11692
RoBERTa: A Robustly Optimized BERT Pretraining Approach
Language model pretraining has led to significant performance gains but careful comparison between different approaches is challenging. Training is computationally expensive, often done on private datasets of different sizes, and, as we will show, hyperpar
arxiv.org
1. Abstract & Introduction
- 자기지도학습(Self-training) 기법인 ELMo, GPT, BERT, XLM, XLNet 등의 모델들은 뛰어난 성능 향상을 가져옴
- 하지만 어떤 요소가 가장 큰 기여를 하는지 파악하는 것은 쉽지 않음
- 본 논문은 BERT 사전훈련의 재현 연구를 수행하였으며, 하이퍼파라미터 튜닝과 훈련 데이터 크기가 성능에 미치는 영향을 면밀히 평가
- 연구 결과, BERT 모델이 충분히 훈련되지 않았다는 점을 발견하였고, 이를 개선한 새로운 훈련 방법을 제안
- 이 방법을 적용한 모델을 RoBERTa라고 하며, 기존 BERT 이후에 발표된 모델들과 비슷하거나 더 나은 성능을 달성할 수 있음
주요 개선 사항
- 모델을 더 오래 훈련하고, 더 큰 batch 크기를 사용하며, 더 많은 데이터를 활용함
- BERT의 "NSP(Next Sentence Prediction)" 목표를 제거함
- 더 긴 문장을 사용하여 훈련함
- 훈련 중 masking 패턴을 동적으로 변경
- 또한, CC-NEWS라는 새로운 대규모 데이터셋을 수집하여, 기존의 비공개 데이터셋과 비슷한 규모에서 학습 데이터 크기의 영향을 보다 정확하게 측정
- 본 모델은 GLUE의 9가지 과제 중 4개(MNLI, QNLI, RTE, STS-B)에서 새로운 최고 성능을 기록했으며, SQuAD 및 RACE에서도 SOTA 성능을 달성
- 본 연구를 통해 BERT의 마스킹 기반 언어 모델 훈련 방식이 여전히 경쟁력이 있다는 것을 확인
2. Background
2.1 Setup
- BERT는 두 개의 문장(또는 토큰 시퀀스)을 하나의 입력으로 받아들임
- 입력은 아래와 같은 형식으로 구성됨
- [CLS] x₁, ..., xₙ [SEP] y₁, ..., yₘ [EOS]
- x₁, ..., xₙ : 첫 번째 문장 (Segment 1)
- y₁, ..., yₘ : 두 번째 문장 (Segment 2)
- [CLS] : 문장의 시작을 나타내는 토큰
- [SEP] : 두 문장을 구분하는 토큰
- [EOS] : 문장의 끝을 나타내는 토큰
- M + N < T (M과 N의 합이 최대 길이 T를 넘지 않도록 제한됨)
- BERT는 먼저 대규모 비지도 학습을 수행한 후, 특정 태스크를 위한 지도 학습으로 fine-tuning 됨
2.2 Architecture
- BERT는 Transformer 아키텍처를 기반으로 함
- L 개의 layer을 사용
- 각 층에는 A 개의 self-attention head가 있음
- H 차원의 hidden state를 사용
2.3 Training Objectives
- BERT는 사전 학습(pretraining) 시 두 가지 주요 목표를 사용
Masked Language Model (MLM)
- 입력 문장에서 일부 토큰을 [MASK] 토큰으로 랜덤하게 변경
- 변경된 토큰을 올바르게 예측하는 Cross-Entropy Loss를 사용
- 토큰 선택 비율
- 15%의 단어를 마스킹
- 그중 80%는 [MASK]로 대체
- 10%는 원래 단어 유지
- 10%는 랜덤한 단어로 대체
Next Sentence Prediction (NSP)
- 두 개의 문장이 서로 연속된 문장인지 아닌지를 예측하는 binary classification task
- 긍정 예시(Positive Example): 문장 순서가 맞는 경우 (같은 문서에서 연속된 문장)
- 부정 예시(Negative Example): 문장을 서로 다른 문서에서 무작위로 선택한 경우
- NSP는 문장 간 관계를 파악하는 task(예: 자연어 추론, NLI)에 도움이 됨
3. Experimental Setup
3.1 Implementation
- BERT를 FAIRSEQ 라이브러리를 사용하여 다시 구현했음
- FAIRSEQ : Facebook AI에서 만든 딥러닝 라이브러리로, NLP 및 시퀀스 모델링을 위한 오픈소스 프레임워크
- 원래 BERT의 최적화 하이퍼파라미터를 따르지만, 다음 두 가지는 별도로 튜닝
- 최대 학습률 (Peak Learning Rate)
- Warmup 스텝 수 (초반에 천천히 학습률을 올리는 과정)
- Adam 옵티마이저의 epsilon 값(ϵ)이 학습 안정성에 크게 영향을 미침
- β₂ 값을 0.98로 설정하면 대규모 배치 학습에서 안정성이 향상됨
- Devlin et al.(2019)의 원본 BERT와 다르게 다음 사항을 변경:
- 짧은 문장을 무작위로 추가하지 않음
- 학습 초반 90% 동안 짧은 문장을 학습하는 방식을 사용하지 않음
- 오직 최대 길이의 문장만 학습 -> 512 토큰 길이(T = 512)를 사용하여 학습
3.2 Data
- BERT 사전 학습에서는 대량의 텍스트 데이터가 필수적
- Baevski et al.(2019)의 연구에 따르면 데이터 크기가 증가하면 성능 향상이 가능함
- 본 연구에서는 가능한 많은 데이터를 수집하여 실험을 진행함
- 총 160GB 이상의 영어 텍스트 데이터를 사용하여 학습 (기존 BERT는 16GB)
데이터셋 | 설명 | 크기 |
BOOKCORPUS + Wikipedia | BERT 원본 학습 데이터 | 16GB |
CC-NEWS | CommonCrawl에서 수집한 2016~2019년 영문 뉴스 데이터 | 76GB |
OPENWEBTEXT | Reddit에서 3개 이상 추천받은 웹 문서 기반 데이터 | 38GB |
STORIES | 이야기 형식의 텍스트 데이터 (Winograd schemas 스타일) | 31GB |
3.3 Evaluation
- 사전 학습된 모델의 성능을 평가하기 위해 3가지 벤치마크 사용
GLUE (General Language Understanding Evaluation)
- 자연어 이해(NLU) 평가를 위한 9개 데이터셋으로 구성된 벤치마크
- 문장 분류 및 문장 쌍 분류 태스크 포함
SQuAD (Stanford Question Answering Dataset)
- 질문-답변(QA) 태스크
- 문맥을 제공하고 질문을 주면, 답변을 문장에서 추출하는 문제
RACE (ReAding Comprehension from Examinations)
- 대규모 독해 능력 평가 데이터셋
- 28,000개 이상의 지문, 100,000개 이상의 질문 포함
4. Training Procedure Analysis
4.1 Static vs Dynamic Masking
Static Masking
- 원래 BERT는 훈련 데이터 전처리 과정에서 한 번만 마스킹을 적용
- 같은 데이터가 여러 번 반복해서 훈련될 때마다 같은 마스크 패턴을 유지
- 이를 보완하기 위해 하나의 문장을 10가지 다른 마스킹 패턴으로 변형하여 학습했음
- 즉, 40번의 학습 중 하나의 문장은 같은 마스크 패턴으로 4번 학습
Dynamic Masking
- 매번 훈련할 때마다 새로운 마스킹 패턴을 생성하여 적용
- 마스킹 패턴이 계속 바뀌기 때문에 모델이 더 다양한 데이터를 학습할 수 있음
- 특히 데이터가 많거나 훈련 스텝이 길어질수록 동적 마스킹이 더 유리
- 테스트 결과, 동적 마스킹이 정적 마스킹과 비슷하거나 조금 더 좋은 성능을 보임
- 또한, 동적 마스킹은 데이터 전처리를 단순하게 만들어 주기 때문에 이후 실험에서는 동적 마스킹을 사용
4.2 Model Input Format and Next Sentence Prediction
- BERT는 두 개의 문장을 이어서 입력한 후, 이 문장들이 같은 문서에서 나온 것인지 아닌지를 예측하는 NSP(Next Sentence Prediction) 손실 함수를 사용
- 기존 연구 (Devlin et al., 2019)
- NSP가 성능에 중요한 역할을 하며, 이를 제거하면 MNLI, QNLI, SQuAD 1.1 등에서 성능이 떨어진다고 보고
- 최근 연구 (Lample & Conneau, Yang et al., Joshi et al.)
- NSP가 꼭 필요하지 않다는 의견을 제시
입력 형식 | 설명 | NSP 손실 사용 여부 |
SEGMENT-PAIR+NSP | 기존 BERT 방식. 두 개의 문장 블록을 입력 (같은 문서 or 다른 문서) | O |
SENTENCE-PAIR+NSP | 한 문장 단위로 입력 (더 짧음) | O |
FULL-SENTENCES | 512토큰까지 여러 문장을 채워서 입력. 문서 경계를 넘을 수도 있음 | X |
DOC-SENTENCES | FULL-SENTENCES와 유사하지만 문서 경계를 넘지 않음 | X |
- 개별 문장을 입력하는 SENTENCE-PAIR 방식은 성능이 낮았음 → 긴 문맥을 학습하지 못하기 때문
- NSP를 제거하고 긴 텍스트 블록을 입력하는 DOC-SENTENCES 방식이 기존 BERT보다 성능이 좋았음
- FULL-SENTENCES (문서 경계를 넘는 방식)이 DOC-SENTENCES보다 성능이 약간 낮았지만, 배치 크기를 일정하게 유지할 수 있어 이후 실험에서 사용됨
- 결론: NSP는 반드시 필요하지 않으며, 긴 문장을 활용하는 것이 더 효과적
4.3 Training with large batches
- 일반적으로 큰 배치를 사용하면 학습 속도가 빨라지고, 모델의 성능도 향상될 수 있음
- 기존 BERT는 100만 스텝 동안 배치 크기 256으로 학습됨
- 이와 동등한 계산량을 고려하면 다음과 같은 대안이 가능
- 배치 크기 2K → 12.5만 스텝
- 배치 크기 8K → 3.1만 스텝
- 2K = 2,048 (2 × 1,024)
- 8K = 8,192 (8 × 1,024)
- 배치 크기를 늘리면 마스크 언어 모델링(Masked Language Modeling, MLM)의 perplexity(혼란도)가 개선됨
- 최종 다운스트림 성능도 향상됨
- 대형 배치는 GPU 분산 학습(Distributed Data Parallel Training)에 유리함
- 실험에서는 배치 크기 8K로 설정하여 학습 진행
4.4 Text Encoding
- BERT는 Byte-Pair Encoding (BPE)을 사용하여 단어를 하위 단위(subword)로 변환
- 원래 BERT에서는 30K개의 문자 기반 BPE 단어집을 사용함
- GPT-2에서는 50K개의 바이트 기반 BPE를 제안함
문자 기반 BPE (기존 BERT) vs. 바이트 기반 BPE (GPT-2)
- 문자 기반 BPE: 일반적인 단어 단위로 학습되며, 사전에 없는 단어는 처리하기 어려움
- 바이트 기반 BPE: 모든 유니코드 문자를 직접 처리 가능, "알 수 없는 단어(unknown token)"가 없어짐
- 바이트 기반 BPE를 사용했을 때 성능 차이는 크지 않았지만, 일부 작업에서 약간 낮은 성능을 보임
- 하지만, 유니버설(모든 언어에 대응 가능)한 인코딩 방식이므로 연구팀은 바이트 기반 BPE를 선택
- 결론: 바이트 기반 BPE는 보편적인 장점이 있으며, 성능 저하는 크지 않기 때문에 이후 실험에서 채택됨
5. RoBERTa
5.1 GLUE Results
- 9개 GLUE 태스크 모두 SOTA 달성
- BERTLARGE와 같은 구조를 사용하지만, 데이터 크기와 학습 방법만 개선하여 더 좋은 성능을 보임
- 단일 모델 기반으로 GLUE 리더보드 최고 평균 점수 기록
5.2 SQuAD Results
- SQuAD v1.1: XLNet과 동등한 성능
- SQuAD v2.0: XLNet을 0.4점(EM) 및 0.6점(F1) 차이로 초과 달성
5.3 RACE Results
- 중학교/고등학교 레벨 RACE 테스트에서 SOTA 성능 달성
7. Conclusion
- RoBERTa는 BERT의 사전 훈련 방식에서 여러 설계를 재검토하여 성능을 개선한 모델
- 주요 개선점은 더 긴 훈련 시간, 더 큰 배치 크기, 더 많은 데이터 활용, Next Sentence Prediction(NSP) 제거, 더 긴 시퀀스 학습, 동적 마스킹 적용 등임
- 이러한 개선을 통해 GLUE, RACE, SQuAD에서 SOTA 달성
'논문 리뷰 > NLP' 카테고리의 다른 글
[X:AI] BART 논문 리뷰 (0) | 2025.02.11 |
---|---|
[X:AI] ELMo 논문 리뷰 (0) | 2024.03.25 |
[X:AI] BERT 논문 리뷰 (0) | 2024.02.15 |
[X:AI] GPT-1 논문 리뷰 (0) | 2024.02.11 |
[X:AI] Transformer 논문 리뷰 (0) | 2024.02.10 |