ELECTRA가 BERT의 masked language modeling보다 적은 계산으로 더 많은 토큰을 학습 신호로 사용하는 방법을 해설한다. 작은 generator가 일부 토큰을 바꾸고 discriminator가 모든 위치에서 원본과 치환 토큰을 구분하는 Replaced Token Detection이 핵심이다. generator 크기, 가중치 공유, 공동 학습 방식에 대한 절제 실험과 Small·Large 모델의 계산 효율까지 단계적으로 설명한다.
핵심 포인트- BERT의 MLM은 입력 중 약 15%만 loss를 계산하지만 ELECTRA의 discriminator는 모든 토큰에서 원본 여부를 판별해 학습 신호가 더 조밀하다.
- generator는 MLM으로 치환 후보를 만들고 discriminator는 각 토큰을 original 또는 replaced로 분류하며, 사전학습 후에는 discriminator만 사용한다.
- GAN과 달리 generator를 discriminator를 속이도록 학습하지 않고 maximum likelihood로 훈련하며 샘플링 경로로 discriminator loss를 역전파하지 않는다.
- generator와 discriminator는 임베딩을 공유하고, generator 크기를 discriminator의 1/4~1/2로 줄였을 때 가장 좋은 성능을 냈다.
- ELECTRA-Small은 한 GPU로 학습 가능하면서 BERT-Small보다 GLUE가 5점 높았고, Large는 RoBERTa·XLNet의 1/4 계산량으로 비슷한 성능에 도달했다.
상세 정리- 기존 MLM의 한계: BERT는 입력 토큰 약 15%를 마스킹하고 그 위치만 복원한다. 나머지 85%에서는 직접 loss가 나오지 않고 학습과 추론 사이에 `[MASK]` 토큰 불일치도 생긴다.
- RTD 구성: generator와 discriminator는 모두 Transformer 인코더다. generator가 마스킹 위치의 토큰 분포를 만들고 그 분포에서 뽑은 토큰으로 입력을 오염시킨다.
- 분류 대상: discriminator는 오염된 시퀀스의 각 위치가 원문과 같은지 판별한다. generator가 우연히 원래 토큰을 뽑으면 치환 위치였더라도 original 정답으로 처리한다.
- 학습 목적: generator의 MLM loss와 discriminator의 이진 분류 loss를 합쳐 최적화하고 두 loss 규모를 맞추기 위해 discriminator 항에 50의 가중치를 사용한다.
- GAN과 차이: 이산 토큰 샘플링 때문에 discriminator gradient가 generator로 흐르지 않는다. 강화학습으로 적대적 학습을 시도했지만 maximum likelihood generator보다 성능이 낮았다.
- 사전학습 이후: downstream task에는 generator를 버리고 discriminator만 fine-tuning한다. 실제로 사용할 인코더가 모든 입력 토큰을 판별하며 학습됐다는 점이 효율의 핵심이다.
- 가중치 공유: 공유하지 않을 때 GLUE 83.5, 임베딩만 공유할 때 84.3, 전체 공유 때 84.4였다. 전체 공유가 조금 높지만 두 모델 크기를 같게 해야 하므로 후속 실험은 임베딩만 공유했다.
- 작은 generator: discriminator와 같은 크기의 generator는 계산량을 거의 두 배로 만든다. 실험에서는 discriminator의 1/4~1/2 폭이 가장 좋았고, 너무 강한 generator는 판별 문제를 지나치게 어렵게 만들 수 있다고 해석한다.
- 학습 방식 비교: generator와 discriminator의 joint training이 generator 선학습 후 discriminator를 학습하는 two-stage나 적대적 방식보다 좋았다.
- Small 설정: 동일 FLOPs가 되도록 BERT-Small은 150만 step, ELECTRA-Small은 100만 step 학습했다. ELECTRA가 GLUE에서 5점 높았고 훨씬 큰 GPT도 넘어섰다.
- 빠른 수렴: ELECTRA-Small은 GPU 한 대에서 6시간 학습만으로도 경쟁력 있는 성능을 보였다. 적은 자원으로 language model 사전학습을 실험할 가능성을 보여준다.
- Large 설정: ELECTRA-400K는 RoBERTa와 XLNet의 1/4 FLOPs로 비슷한 성능을 냈다. 더 오래 학습한 ELECTRA-1.75M은 더 적은 계산량으로 두 모델을 넘고 SQuAD에서도 최고 성능을 기록했다.
- 효율 원인: RTD가 단순히 `[MASK]`를 generator 토큰으로 바꾼 것보다 좋았고, 모든 토큰에 판별 loss를 적용하는 설정이 성능 향상에 중요했다.
왜 읽나사전학습 목적함수가 계산 효율과 downstream 성능을 어떻게 함께 바꾸는지 구현과 절제 실험까지 이해하려는 NLP 연구자에게 적합하다.