RoBERTa: A Robustly Optimized BERT Pretraining Approach(2019)
논문을 읽고 내용 요약 및 정리를 담았다.
본 논문은 BERT 사전학습에 대한 반복 연구를 수행하는데, BERT가 상당히 undertrain되었다는 것을 발견하고 BERT 모델을 학습시키기 위해 더 나은 방안을 제안한다. 이러한 모델을 RoBERTa
라 부르고, 모든 post-BERT 방법론의 성능에 필적하거나 능가할 수 있다.
모델의 변형은 단순한데, (1) 학습을 더 오래, 더 큰 배치에서, 더 많은 데이터로 진행 (2) 다음 문장 예측(NSP) objective를 제거 (3) 더 긴 시퀀스로 학습 (4) 학습 데이터에 적용되는 마스킹 패턴을 더 동적으로(dynamic) 변경하는 방식이다. 또한, 새로운 대형 데이터셋(CC-News) 수집을 통해 학습 셋의 크기에 대한 영향을 더 잘 제어할 수 있도록 한다.
본 논문의 기여를 요약하자면, (1) BERT의 중요한 design choice와 학습 전략 셋을 제안하고, 다운스트림 태스크 성능을 향상시키기 위한 대안을 소개한다. (2) CC-News라는 새로운 데이터셋을 사용하고, 사전학습에 더 많은 데이터를 사용하는 것이 다운스트림 태스크에 대한 성능을 크게 향상시킨다는 것을 확증한다. (3) 마스크드 언어 모델 사전학습(MLM)이 적절한 design choice 아래 있을 때, 학습의 향상도가 최근 배포된 모든 최신 방법론과 필적할 수 있다는 것을 입증한다.
BERT의 사전학습 접근법과 다음 섹션에서 실험할 training choice에 대한 개요를 간략히 설명한다.
BERT는 두 세그먼트(토큰의 시퀀스)의 연결(x1~xn과 y1~ym)을 입력으로 한다. 세그먼트는 보통 하나 이상의 자연 문장을 포함한다. 두 세그먼트는 BERT에 세그먼트의 경계를 정하는 특이 토큰과 단일 입력 시퀀스로 제시된다. [CLS], x1~xn, [SEP], y1~ym, [EOS]. M과 N은 T가 학습 시 최대 시퀀스 길이를 제어하는 파라미터일 때, 로 제한된다. 모델은 대형 라벨 텍스트 코퍼스에서 처음으로 사전학습 되고, 이후엔 엔드 테스크 라벨 데이터로 파인튜닝된다.
BERT는 트랜스포머 구조를 layer L
과 함께 사용한다. 각 블록은 셀프 어텐션 A
와 은닉 차원 H
를 사용한다.
사전학습 동안 BERT는 2개의 objective를 사용한다 MLM(마스크드 언어 모델)
과 NSP(다음 문장 예측)
- Masked Language Model(MLM)
입력 시퀀스에서 임의의 토큰 샘플이 선택되고 특이 토큰 [MASK]로 대체된다. MLM objective는
크로스 엔트로피 손실
을 마스크 토큰 예측에 사용한다. BERT는 입력 토큰의 15퍼센트를 대체 후보로서 균일하게 선택한다. 선택된 토큰 가운데 80퍼센트는 [MASK]로 대체되고, 10퍼센트는 변경되지 않은 상태로 남기며, 나머지 10퍼센트는 임의로 선택된 단어 토큰으로 대체된다.실제로 데이터가 복제되어 마스크가 모든 학습 문장에서 동일하지 않음에도 불구하고, 기존의 시행에서 임의의 마스킹과 대체는 초기에 한 번 시행되고 학습하는 동안 저장된다.
- Next Sentence Prediction(NSP)
NSP는 두 세그먼트가 원본 텍스트에서 서로 수반되는지를 판별하기 위해
이진 분류 손실
을 사용한다. 긍정(Positive) 예제는 텍스트 코퍼스에서 연속된 문장을 취하여 생성된다. 부정(Negative) 예제는 다른 도큐먼트에서 세그먼트 쌍을 지어 생성된다. 긍부정 예제는 동일한 확률로 샘플링된다.
- Optimization
BERT는 다음의 파라미터를 사용하여
Adam
으로 최적화된다. :β1 = 0.9
,β2 = 0.999
,ǫ = 1e-6
, L2 가중치 감소0.01
. 학습율은 피크 수치 1e-4로 최초 10,000 스텝동안 웜업되고, 이후 선형적으로 감소한다. BERT는 모든 레이어에0.1
의 드롭아웃과 어텐션 가중치,GeLU
활성화 함수를 적용하여 학습한다. 모델은 미니 배치B = 256
에 시퀀스 최대 길이T=512
으로 토큰S = 1,000,000
동안 업데이트로 사전학습된다.
- Data
BERT는 BOOKCORPUS와 English WIKIPEDIA를 혼합하여 총 16GB의 압축되지 않은 텍스트로 학습된다.
본 섹션은 BERT 반복 학습에 대한 실험 구조를 설명한다.
BERT를 FAIRSEQ(facebook ai research seq2seq toolkit)에서 재시행하는데, 초기에는 세팅 시 개별로 튜닝되는 피크 학습률과 웜업 스텝의 수를 제외하고 섹션 2에서 주어진 기존 BERT 모델의 최적화 하이퍼파라미터를 따른다.
RoBERTa에서는 시퀀스를 최대 토큰 T=512에서 사전학습한다. Devlin et al. (2019)와는 다르게, 길이가 짧은 시퀀스를 임의로 주입하지 않고, 최소 90%의 업데이트에서 감소된 시퀀스 길이로 학습하지 않는다. 오직 full-length
인 시퀀스에서만 학습한다.
BERT 형식의 사전학습은 텍스트 양에 크게 의존한다. Baevski et al. (2019)는 데이터의 크기를 증
가시키는 것이 향상된 앤드 태스크 성능을 가져온다는 것을 입증한다. 본 연구는 가능한 많은 실험 데이터를 모으는 것에 집중했고, 다양한 크기와 영역의 영어 코퍼스들을 고려하여, 총 160GB의 압축되지 않은 텍스트를 수집한다.
- static(original BERT) vs dynamic(RoBERTa) masking
섹션 2에서 논의한 바와 같이, BERT는 임의의 마스킹과 토큰 예측에 의존한다. 기존의 BERT에서 마스킹은 데이터 전처리 때 1번 시행되며, 단일 정적 마스크를 결과로 한다. 각 에포크의 학습 시점마다 동일한 마스크를 사용하는 것을 피하기 위해, 학습 데이터가 10번 복제되어 각 시퀀스가 학습되는 40 에포크에 걸쳐 10가지 다른 방법으로 마스킹된다.
본 논문은 이러한 전략과 모델에 시퀀스를 삽입할 때마다 마스킹 패턴을 생성하는 동적 마스킹을 비교한다. 이러한 마스킹 방식은 더 많은 스텝이나 더 큰 데이터셋에서 사전학습 할 때 중대하다.
Table 1의 결과는 BERT_BASE와 본 논문에서 재시행한 정적 마스킹과 동적 마스킹을 비교한다. 정적 마스킹의 재시행과 기존 BERT 모델을 비교했을 때, 정적 마스킹은 원 BERT 모델과 유사한 성능을 내고, 동적 마스킹은 원 BERT 모델과 필적하거나 정적 마스킹보다 살짝 더 나은 성능을 낸다. 이러한 결과와 동적 마스킹의 효율성 혜택 때문에, 저자는 이후의 실험에서 동적 마스킹을 사용한다.
- next sentence prediction(NSP)
기존 BERT 사전학습 절차에서 모델은 MLM objective와 NSP 손실을 통해 관측된 도큐먼트 세그먼트가 동일한 도큐먼트인지 아닌지 예측하도록 학습된다.
NSP 손실은 기존 BERT 모델을 학습하는 중요한 요소였으나, 최근 연구에서는 NSP 손실의 중요성에 대한 의문이 제기되어 왔다. 본 논문은 이에 대해 몇가지 대안적인 학습 포맷을 비교한다 :
SEGMENT-PAIR+NSP
: 기존 BERT에 사용된 NSP 손실과 입력 포맷을 따른다. 각 입력은 세그먼트 쌍이 있고, 각 입력은 여러 자연 문장을 포함하나 총 길이가 512토큰보다 적어야 한다.SENTENCE-PAIR+NSP
: 각 입력은 자연 문장 쌍을 포함하는데, 한 도큐먼트의 연속된 부분이거나 개별적인 도큐먼트에서 샘플링 된 것이다. 이러한 입력은 512토큰보다 훨씬 짧고, 배치 사이즈를 증가시켜 토큰 총 수가 SEGMENT-PAIR+NSP와 유사하게 한다. NSP 손실을 재학습한다.FULL-SENTENCES
: 각 입력은 한 개 또는 그 이상의 도큐먼트에서 연속으로 샘플링된 FULL SENTENCE로 채워지는데, 이 문장의 총 길이는 최대 512토큰이다. 입력은 도큐먼트 경계를 지날 수 있으며, 한 도큐먼트의 종점에 도달하면 다음 도큐먼트에서 문장을 샘플링하기 시작하고, 도큐먼트 사이에 부가적인 분리 토큰을 추가한다. NSP 손실은 제거된다.DOC-SENTENCES
: 입력은 도큐먼트 경계를 지나지 않는 입력을 제외하고, FULL SENTENCE와 유사하게 구성된다. 도큐먼트 종점 근처에 샘플링된 입력은 512토큰보다 더 짧을 수 있고, 이러한 경우 배치 사이즈를 동적으로 증가시켜 총 토큰 수를 FULL SENTENCE와 유사하게 되도록 한다. NSP 손실은 제거된다.
Table 2에서 NSP 손실을 유지한 SEGMENT-PAIR와 SENTENCE-PAIR를 비교했을 때, 단일 문장을 사용한 SENTENCE-PAIR에서 성능이 저하됨을 볼 수 있다. 독립적인 문장의 사용이 다운스트림 태스크의 성능을 손상시키는 이유는 모델이 장거리 의존성을 학습할 수 없기 때문이다.
다음으로, NSP 손실 없이 학습하는 방식을 NSP 손실로 학습하는 방식과 비교했을 때, NSP 손실을 제거하는 것이 다운스트림 태스크의 성능에 필적하거나 혹은 살짝 향상시킨다는 것을 발견한다. 또한 단일 도큐먼트로 시퀀스를 제한하는 방식(DOC-SENTENCES)이 여러 개의 도큐먼트에서 시퀀스를 결합(FULL-SENTENCES)하는 방식보다 조금 더 나은 성능을 보인다는 것을 발견한다. 그러나 DOC-SENTENCES 형식은 다양한 배치 사이즈로 결과를 냈기 때문에, 연관 연구와 더 쉽게 비교하기 위해 이후 실험에서는 FULL-SENTENCES를 사용한다.
- training with large batches
기계번역에 대한 선행 연구는 매니 배치를 매우 크게 하여 학습하면, 학습률이 적절하게 증가할 때 최적화 속도와 최종 태스크의 성능을 모두 향상시킬 수 있다는 것을 입증해 왔다. 최근 연구는 bert 또한 더 큰 배치학습을 잘 받아들인다는 것을 증명했다.
Table 3을 보면, 더 큰 배치학습이 MLM objective의 퍼플렉서티와 최종 태스크의 정확도를 향상시키는 것을 알 수 있다. 더 큰 배치 사이즈는 분배된 데이터의 병렬학습을 통해 더 쉽게 병렬화된다. 이후 실험에서 8K 시퀀스 배치로 학습한다.
- text encoding
Byte-pair encoding(BPE)
는 자연어 코퍼스들에 공통된 대형 vocabulary를 다루는 것을 허용하는 문자와 단어 수준 representation간의 hybrid이다. BPE는 전체 단어 대신, 서브워드 유닛에 의존하는데, 이 서브워드는 학습 코퍼스의 통계적 분석을 수행하여 추출된다.BPE 단어사전 크기는 전형적으로 10K~100K의 서브워드 유닛 범위이다. 그러나, 유니코드 캐릭터는 본 연구에서 고려된 것과 같은 크고 다양한 코퍼스들을 모델링 할 때, vocabulary를 상당히 잘 설명할 수 있다. Radford et al. (2019)는 BPE를 현명하게 도입하여, 유니코드 캐릭터 대신 바이트를 베이스 서브워드 유닛으로 사용한다. 바이트를 사용하는 것은 보통 크기(50K 유닛)의 서브워드 vocabulary를 학습할 수 있게 하는데, 이 크기는 어떤 “알려지지 않은(unknown)” 토큰을 도입하지 않고도 입력 텍스트를 인코딩 할 수 있는 크기이다.
기존 BERT는 30K의 문자 수준 BPE vocabulary을 사용하는데, 이 vocabulary는 휴리스틱 토큰화 규칙으로 입력을 전처리한 후 학습된다. 본 논문에서는 Radford et al. (2019)에 따라, 어떠한 부가적인 입력의 전처리나 토큰화 없이, 50K 서브워드 유닛을 포함한 바이트 수준의 더 큰 BPE vocabulary로 BERT를 학습시킨다. 이는 BERT_BASE와 BERT_LARGE에 15M, 20M의 부가적인 파라미터를 추가한다.
BPE는 일부 태스크에서 최종 태스크 성능을 약간 하락시켰으나, 보편적인 인코딩 전략이 성능 하락보다 더 중요하다고 여기고 이러한 인코딩 방식을 이후 실험에 사용한다.
- Byte pair Encoding(BPE)
자연어 처리에서 BPE는
서브워드 분리(subword segmentation)
알고리즘이다. BPE를 요약하자면, 글자(character) 단위에서 점차적으로 단어 집합(vocabulary)을 만들어 내는 bottom-up 방식 접근을 사용한다. 학습 데이터의 단어들을 모든 글자, 혹은 유니코드 단위로 단어 집합(vocabulary)를 만들고, 가장 많이 등장하는 유니그램을 하나의 유니그램으로 통합한다.BERT에서 사용된 WordPiece Tokenizer가 BPE의 변형 알고리즘이다.
(참고) 자연어 처리에서 BPE(바이트 페어 인코딩)
이전 섹션에서는 최종 태스크의 성능을 향상시키는 BERT의 사전학습 절차에 대한 변형을 제안했는데, 본 섹션은 이러한 향상을 집계하고 결합하여 영향력을 평가한다. 이러한 구성을 RoBERTa, Robustly optimized BERT approach
라 일컫는다.
RoBERTa는 동적 마스킹(섹션 4.1)을 사용하고, NSP 손실 없이 FULL-SENTENCE로 학습(섹션 4.2)되며, 큰 미니 배치 사이즈(섹션 4.3)와 더 큰 바이트 수준의 BPE(섹션 4.4)로 학습된다.
더 많은 데이터로(16GB→160GB), 더 많은 시간(100K→300K→500K steps) 사전학습한 RoBERTa의 dev set에 대한 결과이다. 각 열은 상단의 열의 성능 향상을 누적한다. RoBERTa는 BERT_LARGE의 모델 구조 및 training objective와 일치한다. BERT_LARGE와 XLNET_LARGE의 결과는 각 Devlin et al. (2019) and Yang et al. (2019)에서 발췌되었다. 모든 GLUE 태스크에 대한 결과는 부록에 실려 있다.Table 4와 같이 학습 데이터를 제어할 때, RoBERTa가 기존 BERT_LARGE보다 더 큰 성능 향상을 가져옴에 따라, 섹션 4에서 탐구했던 design choice의 중요성을 재차 확인한다.
다음으로, RoBERTa를 이전과 같은 수의 학습 스텝(100K)로 결합한 데이터를 학습하여 총합 160GB의 데이터를 사전학습시킨다. 이로써 모든 다운스트림 태스크에 대한 큰 성능 향상을 관측했고, 사전학습의 데이터 크기와 다양성에 대한 중요성을 입증한다.
마지막으로 사전학습 스텝을 100K→300K→500K로 길게 증가시켜 RoBERTa를 학습시킨다. 가장 오래 학습된 모델도 데이터에 오버핏되지 않고, 부가적인 학습 시에도 작 작용되는 것에 주목한다.
(각 태스크에 대한 결과는 생략)
사전학습 모델은 언어 모델링(Dai and Le, 2015; Peters et al., 2018; Howard and Ruder, 2018), 기계 번역(McCann et al., 2017), MLM(Devlin et al., 2019; Lample and Conneau, 2019)와 같은 다양한 학습
objectives로 설계되어 왔다. 다수의 최근 연구는 각각의 최종 태스크를 위한 기본적인 파인튜닝 레시피와 MLM objective를 일부 변형한 사전학습을 사용해 왔다.
그러나, 더 최신의 방법은 개체 임베딩 (Sun et al.,2019), 구간 예측 (Joshi et al., 2019), 그리고 자기회귀 사전학습의 다수의 변형 (Song et al., 2019; Chan etal., 2019; Yang et al., 2019)을 통합한 멀티 태스크 파인튜닝 (Dong et al., 2019)을 통해 성능을 향상시켰다.
또한 전형적으로 더 많은 데이터에 더 큰 모델을 학습시킴으로써 성능이 향상된다 (Devlin et al., 2019;Baevski et al., 2019; Yang et al., 2019; Radford et al., 2019). 이러한 모든 방법에 대한 상대적인 성능을 더 잘 이해하기 위한 참조점으로서, 본 논문의 목표는 BERT의 학습에 반복, 단순화, 그리고 더 나은 튜닝을 하는 것이었다.
우리는 BERT 모델을 사전학습 할 때 design decisions의 수에 대해 사려깊게 평가한다. 우리는 모델을
더 오래, 더 큰 배치로, 더 많은 데이터로 학습시킴에 따라 성능이 상당히 크게 향상될 수 있음을 발견한다. NSP objective를 생략하고, 더 긴 시퀀스에서 학습시키고, 학습 데이터에 적용된 마스킹 패턴을 동적으로 변형하는 것 또한 성능을 크게 향상시킨다.
우리의 발전된 사전학습 절차, 즉 RoBERTa는 GLUE에서 멀티태스크 파인튜닝을 하거나, SQuAD에서 부가적인 데이터 사용 없이도, GLUE, RACE, SQuAD에서 SOTA 성능을 거두었다. 이러한 결과는 이전에 간과되어왔던 설계적 결정의 중요성을 입증하고 BERT의 사전학습 objective가 최근 제안된 대안책과 비교했을 때 여전히 경쟁력이 있음을 제시한다.