The ELECTRA model introduces a novel approach to pre-training by leveraging a Replaced Token Detection (RTD) mechanism instead of the traditional Masked Language Model (MLM) used in models like BERT. This review will cover the model’s methodology, efficiency improvements, and its implications for the field of Natural Language Processing (NLP).
1. Introduction
ELECTRA = Efficiently Learning an Encoder that Classifies Token Replacements Accurately
ELECTRA proposes a more efficient method than the traditional Masked Language Model (MLM) approach, aiming to enhance natural language understanding by training the encoder to accurately classify replaced tokens within a sentence.
Review를 시작하기 전, 기존의 NLP Task에서, Model을 Pre-training 시키는 방법론에 대해서 알아야 할 필요가 있다.
기존의 모델이었던 BERT와 같은 모델들은, MLM (Masked Learning Model)방식을 이용해서 사전학습을 진행하곤 했다. 하지만, 이와 같은 방식에서는 문제점이 존재한다.
- BERT의 MLM 방식이 지닌 문제점
1. Training (학습)에서는 [MASK] 토큰을 참고하지만 Inference (실제)에서는 [MASK] 토큰이 존재하지 않음
2. 하나의 example에 대해서 고작 15%만 학습함
3. 학습하는 데 여전히 많은 연산 비용이 발생
이를 해결하기 위한 대안으로, 이 논문은 RTD를 대안한다.
모델이 실제 입력 토큰과 그럴싸한 가짜 토큰을 구별하도록 하는 사전 학습 작업을 수행하는 것이다.
→ BERT의 mismatch 문제(pre-training 단계에서는 마스킹된 데이터를 사용하지만, fine-tuning 단계에서는 [MASK] 토큰 없이 원본 문장이 입력되는 차이에서 발생하는 문제)를 해결하였다.
또한, ELECTRA에서 또 주목해봐야 할 점은, GAN의 Generator-Discriminator 아키텍처를 사용했다는 점이다. 기존 MLM 방식과 달리, 생성자는 일부 토큰을 교체하고, 구별자는 이 교체된 토큰을 식별하는 역할을 한다. 이 구조는 GAN의 아이디어를 가져온 것이지만, 문장 생성을 목표로 하지 않고 구별을 최우선으로 한다는 점이 차별화된다.
-> 그럼 이제 이러한 방식들이 어떻게 학습 성능을 높이는데 기여했는지 확인해보자.
Pre-training method
1. Replaced Token Detection
위의 사진은 ELECTRA의 전반적인 아키텍처를 표현한 그림으로, 전반적으로 GAN의 모양을 닮은 것을 확인할 수 있다. 그렇다면, 각각의 Gerator, Discriminator이 어떻게 동작하는지 자세히 알아보자.
- 입력 {x}=[x_1,…,x_n]에 대해서 마스킹할 위치의 집합 {m}=[m_1,…,m_k] 결정한다.
- 선택한 위치에 있는 입력 토큰을 [MASK]로 바꾼다.
- 마스킹 된 입력 토큰의 원래 토큰이 무엇인지 예측한 후, 샘플링을 통해 대체 토큰을 삽입한다. (주어진 위치 t에 대해 softmax 레이어로 특정 토큰 x_t를 생성할 확률을 출력)e(⋅): 토큰 임베딩
1. 마스킹된 토큰을 [MASK]가 아닌 generator의 softmax 분포 p_G(x_t|x)에 대해 샘플링한 토큰으로 치환(corrupt)해 corrupted example x^corrupt를 만들어낸다.
2. 이후 x^corrupt의 어떤 토큰이 원래 입력 X와 맞는지 예측하는 방식으로 학습을 진행한다.
이제 Loss function에 대해서 알아보자.
- Generator의 Loss function에서는, masked된 입력 x^masked에 대하여 마스크된 위치 i에 있는 토큰을 예측한다. 이 손실 함수는 마스크된 토큰에 대한 예측 확률의 로그값을 최소화하여 Generator가 마스크된 토큰을 올바르게 복원하도록 학습한다.
- Discriminator의 Loss function에서는, 생성된 토큰이 가짜인지 진짜인지에 따라 점수를 매겨 잘 구분할 수 있도록 학습한다. (GAN의 Loss function의 형태와 유사한 것을 확인할 수 있다.)
=> 여기서 주목해야 할 점은, BERT에서는 MLM 방식을 사용했다고 했는데, 이떄 Masking된 토큰에 대해서만 Loss를 취합하였다.
반면, ELECTRA의 Discriminator는 모든 토큰에 대해 손실을 계산한다. 즉, ELECTRA의 Discriminator는 입력된 전체 토큰에 대해 손실을 계산하므로, BERT보다 더 많은 정보를 학습할 수 있다. 이 방식 덕분에 ELECTRA는 같은 데이터와 계산 자원을 사용하더라도 더 효율적으로 학습할 수 있으며, 결과적으로 모든 토큰을 학습에 활용하기 때문에 성능이 향상된다.
즉, 맨 처음 제시했던 기존 MLM의 문제점 2번이었던 "2. 하나의 example에 대해서 고작 15%만 학습함"이라는 단점을 해결했다.
=> 또한, 이 Loss function에도 GAN과의 주요한 차이가 존재했다. GAN은, Adversarial하게 학습해 Discriminator의 가짜/진짜 예측확률이 0.5가 되도록 하는 것이 목표이지만, 이 ELECTRA에서는 Maximum likelihood 방식으로 학습하였다.
=> 그럼 진짜 Adversarial하게 학습하는 것보다 효율이 좋을지 알아보기 위해, 뒤쪽에서 Ablation study를 진행한 내용이 있다. ELECTRA는 Dicrete token들을 다루기 때문에, 간접적으로 강화학습 방법을 이용해서 Adversarial하게 학습을 진행시킨 후 성능을 비교하였다.(결과적으로는 성능이 좋지 않았음)
2. Weight sharing
이제, Generator와 Discriminator 모델의 크기에 대해서 살펴보자. 논문에서 제시한 최적의 비율은 다음과 같다.
만약 Generator의 size가 discriminator에 비하여 너무 크면, Replaced token을 너무 잘 생성해 Discriminator가 맞추지 못해 학습이 진행되지 않는 문제가 발생하였다.
또한, 이 과정에서 두 모델은 Generator의 Input embedding을 공유하였는데, 이유는 아래와 같다.
1. 학습 효율 개선
- Generator와 Discriminator가 Embedding을 공유하면, 두 네트워크가 별도의 Embedding을 학습할 필요가 없으므로, 모델의 메모리 사용량이 줄어들고 계산 자원이 절약된다. 이를 통해 학습 속도가 빨라지며, 특히 큰 어휘 corpus을 사용하는 경우 이점이 크다.
2. 일괄된 표현 학습
- Generator와 Discriminator가 동일한 Embedding을 사용하면, 두 네트워크는 일관된 어휘 표현을 학습할 수 있다. 이를 통해 Generator가 생성한 가짜 토큰과 Discriminator가 처리하는 입력 토큰이 같은 의미 공간에서 표현되기 때문에, Discriminator가 가짜와 진짜 토큰을 구별하기 더 쉬워진다.
그렇다면, 정말 위의 방식으로 Loss를 최소화 하는 방식이 효과가 있었는지 알아보기 위해, 위의 Combined loss function을 최소화 하는 것이 아닌 다른 알고리즘을 적용해서 테스트 해보았다.
방법은 위 Figure와 같다. 결과적으로는 잘 학습되지 않았는데 Generator가 먼저 학습을 시작했기에, 역시 relplaced 토큰이 너무 잘 생성되어 구분할 수 없다는 점을 연구진은 원인으로 뽑았다.
Experiment results
이제 다른 모델들과 성능을 비교한 실험결과를 확인해보자.
주요 지표는 다음과 같다.
1. Train / Infer FLOPs
- 각 모델의 훈련 및 추론에 필요한 FLOPs(부동 소수점 연산)를 나타낸다.
- BERT-Small과 ELECTRA-Small이 비슷한 FLOPs를 사용하지만, ELECTRA는 더 적은 FLOPs로도 BERT보다 높은 성능을 기록했다.
- ELECTRA-Base는 BERT-Base와 동일한 훈련 FLOPs(6.4e19)를 사용하지만, GLUE 점수에서 BERT를 능가한다.
2. Speedup
- BERT-Base와 ELECTRA-Base가 동일한 연산량과 속도로 표시되어 있지만, ELECTRA-Base는 동일한 자원에서 더 높은 성능을 달성하기 때문에, 효율성 면에서는 ELECTRA-Base가 더 유리한 것을 확인할 수 있다.
3. Params (파라미터 수)
- 모델 크기를 나타내는 지표로, ELECTRA-Small과 BERT-Small은 동일하게 14M 파라미터를 가지며, ELECTRA-Base와 BERT-Base는 동일하게 110M 파라미터를 가진다.
4. Train Time + Hardware (훈련 시간 및 하드웨어)
- 각 모델을 훈련하는 데 필요한 시간과 하드웨어를 나타낸다.
- ELECTRA-Small은 단일 V100 GPU로 4일이 소요되는 반면, ELMo와 GPT는 다수의 GPU가 필요하며 훈련 시간이 더 길다.
- ELECTRA는 BERT와 동일한 하드웨어를 사용하는 조건 하에서, 같은 훈련 시간으로 유사하거나 더 높은 성능을 기록한다.
5. GLUE 점수
- 각 모델의 성능을 평가하는 지표로, GLUE 데이터셋의 개발 세트에서 기록한 점수이다.
- ELECTRA-Small(79.9)은 BERT-Small(75.1)을 능가하며, ELECTRA-Base는 85.1로 BERT-Base(82.2)를 상회한다.
위의 Figure을 통해 같은 환경일 때, ELECTRA가 더 효율적으로 학습된다는 사실을 알 수 있었다.
그렇다면, 큰 사이즈의 모델에 대해서도 효율이 좋은지 확인해보자.
Table 2는, GLUE의 하위 태스크(CoLA, SST, MRPC, STS, QQP, NMLI, QNLI, RTE, WNLI)에 대해서 성능을 평가한 지표이다.
눈에 띄는 점은, ELECTRA-400K는 XLNET에 비하여 약 5배 개선된 학습 효율을 가지는 동시에 평균 스코어는 0.1차이로 비슷했다는 점이다.
또한, Table 3에서는 더 큰 모델에 대해서 ELECTRA가 높은 GLUE score을 가지는 것을 확인할 수 있다.
Ablation study
그렇다면, 위에서 설명한 2가지 Method들이 정말로 ELECTRA의 효율성을 개선하는 성능에 영향을 미쳤는지 확인해보자.
1. ELECTRA 15%
- 앞서, ELECTRA는 BERT와 달리 마스킹된 토큰(15%의 비율)에서만 Loss를 취합하지 않고, 전체 Token에 대해서 Loss를 취합한다고 했다. 이렇듯 전체 토큰에서 loss를 취합하는 것이 정말 학습 성능에 영향을 미쳤는지 확인하기 위해, Replaced된 토큰(15%)에 대해서만 Loss를 취합한 ELECTRA 15%를 테스트하였다.
2. Replaced MLM
- 이 모델은, MLM방식에서 Replaced Token Detection 방식으로 전환한 것이 효과적이었는지 확인하기 위해, 기존의 MLM 모델을 그대로 사용하되 Masking된 토큰 자리에, Generator가 생성한 sample을 넣은 모델이다.
3. All-Tokens MLM
- 이 모델은 BERT와 ELECTRA의 혼합 모델로, MLM 모델에서 15%의 마스킹된 토큰에서만 Loss를 취합한 것이 아닌, 전체 token에 대해서 Loss를 취합한 모델이다.
결과는 위 표와 같았는데, ELECTRA > All-Token MLM > Replace MLM > ELECTRA 15%순으로 성능이 높은 것을 확인할 수 있었다.
이를 통해 Replace Token Detection 방식 보다는, 모든 토큰에 대해서 loss를 취합하는 방식이 ELECTRA의 학습 성능, 효율성 개선에 더욱 영향을 미쳤다고 생각해볼 수 있다.
Comments for paper
이 논문을 읽고 든 생각은 성능만을 중요시해 학습 효율은 생각하지 않고 무조건 성능 지표를 향상시키는 데 목적을 두었던 기존의 NLP 태스크와는 달리, 학습 효율을 개선시키기 위해 노력했다는 점이 흥미로웠다.
뿐만 아니라, 기존의 MLM 방식에서 RTD 방식으로 개선한 아이디어가 참신했으며, 또한 GAN에서 아키텍처 아이디어를 구상해 구현에 성공했다는 점은 칭찬할 만하다고 생각한다. 그러나 아래와 같은 점들에서, 생각해볼 만한 요소들이 존재했다.
1. 평가 데이터셋의 설명
앞서, Figure 8에서는 GLUE의 하위 태스크인 CoLA,SST,MRPC에 대해서는 XLNET, RoBERTa 등의 모델의 점수가 더 높은 것을 확인할 수 있었다. 논문에서는 이 점에 대해서 딱히 언급하지 않고 평균 GLUE 스코어에 대해서만 언급했다.
이에 대해 궁금해 CoLA,SST,MRPC 데이터셋에 대해서 찾아보니, CoLA는 문법적 허용성을 평가하고, RTT는 Recognizing Textual Entailment를 평가하는 데이터셋이었다. 다른 태스크들(예: SST-2, MNLI, QQP 등)은 문장 감정 분석, 문장 쌍 유사도, 다중 문장 추론 등 상대적으로 언어적 함의나 복잡한 논리 추론이 덜 요구되는 태스크다.
이를 통해 ELECTRA가 텍스트 함의 태스크에서 높은 일반화 성능을 보이는 데 어려움을 겪는다고 생각해보았다.
원인에 대해서는 데이터셋의 부족에 따른 오버피팅 등이 있을 수 있으나, 논문에서 한번 더 다뤄주었으면 좋다고 생각했다.
2. 복잡한 모델 구조
ELECTRA는 Generator와 Discriminator를 사용해 훈련을 진행하는 GAN-like 구조이므로, 구현과 조정이 BERT보다 복잡하다는 것을 생각해볼 수 있었다. 이로 인해 Fine-tuning 작업 시 모델의 파라미터를 미세하게 조정하는 작업이 어려울 수 있겠다는 생각이 들었다.
3. Generator의 성능의 한계
ELECTRA는 Generator를 작은 모델로 설계해 대체 토큰을 예측하도록 하고 있지만, 이 Generator의 성능이 낮으면 생성되는 가짜 토큰의 품질이 떨어질 수 있다. 이로 인해 Discriminator가 단순한 패턴만 학습하는 위험이 있으며, 전반적인 모델 성능에 악영향을 미칠 수 있다고 생각해 보았다.
4. Data 의존성
ELECTRA는 Discriminator를 통해 모든 토큰에 대한 학습이 가능해 효율적인 학습을 보여주지만, 사전 학습 데이터의 품질에 크게 의존한다는 점이다. 데이터가 충분하지 않거나 편향된 경우 Discriminator의 학습이 왜곡될 수 있으며, 전반적인 모델 성능이 떨어질 위험이 있다고 생각했다.
Conclusion
ELECTRA는 효율성과 성능 면에서 훌륭한 성과를 보여주었으나, 구조적 복잡성과 일부 응용 제한 등 몇 가지 아쉬운 점은 분명히 존재한다고 생각하며, paper review를 마무리 하겠다.
'Paper review' 카테고리의 다른 글
ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators (3) | 2024.10.28 |
---|