세로형
Recent Posts
Recent Comments
Link
11-28 04:46
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

꿈 많은 사람의 이야기

자연어처리(nlp) ELECTRA 논문 리뷰 - Pre-training Text Encoders as Discriminators Rather than Generators 본문

deep learning(딥러닝)

자연어처리(nlp) ELECTRA 논문 리뷰 - Pre-training Text Encoders as Discriminators Rather than Generators

이수진의 블로그 2021. 12. 16. 17:49
반응형
728x170

포스팅 개요

이번 포스팅은 자연어처리(nlp) 논문 중 ELECTRA : Pre-training Text Encoders as Discriminators Rather Than Generators 라는 논문을 리뷰하는 포스팅입니다. 본 논문은 ELECTRA 라고 많이 알려진 논문인데요. 앞서 GPT와 BERT 시리즈 등 리뷰에 이어서 진행하는 자연어처리 논문 포스팅 시리즈 여섯 번 째 포스팅입니다.

 

자연어처리 논문 리뷰는 아래와 같은 순서로 진행할 예정입니다. 오늘은 그 마지막 글인 여섯 번째 ELECTRA 입니다.

 

  1. GPT-1 (https://lsjsj92.tistory.com/617)
  2. BERT (https://lsjsj92.tistory.com/618)
  3. GPT-2 (https://lsjsj92.tistory.com/620)
  4. RoBERTa ( https://lsjsj92.tistory.com/626 )
  5. ALBERT ( https://lsjsj92.tistory.com/628 )
  6. ELECTRA

참고한 자료는 아래와 같습니다.


포스팅 본문

ELECTRA 논문 리뷰는 아래와 같은 순서로 진행합니다.

1. ELECTRA 핵심 요약

2. ELECTRA 논문 리뷰


ELECTRA 핵심 요약

Pre-trainingfocus 맞춤
Replaced token detection 방법으로 효율적인 pre-training 진행 제안
마치 GAN과 비슷한 구조
Generator
   • MLM에서 나온 단어를 replace시킴
Discriminator
   • 모든 단어를 보면서 원본인지 아닌지 식별
그러나 GAN과는 다른 구조
   • GeneratorMaximum likelihood로 학습함
   • Adversarial(적대적)하게 학습하지 않음
   • TextAdversarial이 쉽지 않음
G < D 구조임

  • 같은 사이즈의 경우 B

 

Weight sharing
Embedding layer만 공유함
모든 layer 공유하려면 G, D가 같은 size여야 함
   • BERT2배급 이므로 메모리 등에서 좀 비효율 적
본 논문에서는
   • G < D ( ¼ ~ ½ )하고 Embedding층만 sharing
더욱 효과적인 구조
   • Model learns from all input tokens rather than just small subset that was masked out
   • 컴퓨팅도 적고 성능이 좋게 나옴
와 같이 ELECTRA는 요약할 수 있습니다. 이제 논문을 리뷰해봅니다!

ELECTRA 논문 리뷰

Introduction

기존의 Masked Language Model
Compute cost가 발생함
   • 15%만 학습하기 때문에
본 논문은 Replaced Token Detection 도입
MASK 대신 replacing some token으로 대체
   • Pre-trainfine-tuned[MASK] mismatch 해결
Discriminator
   • 모든 token original인지 아닌지 Predict 수행
Generator
   • Predicts the original identites 수행
   • , replacing some token을 제대로 수행하도록 진행
      • Originalreplacing 될 수 있도록
효율성 증대
모든 토큰을 학습하므로 computational 효율 획득
   • Model learns from all input tokens instead of small masked out subset
GAN과 비슷한 구조
하지만, GAN은 아님
Adversarial하게 학습하지 않음
   • GeneratorMaximum-likelihood로 학습함
   • GANText에 적용시키는게 쉽지 않기 때문
 
이러한 방법을 ELECTRA라고
반응형
성능 뿐만 아니라 compute efficiency 고려
Same size, data, compute 가지고도 기존 모델 능가
   • ELECTRA-SMALL1 GPU4일이면 끝남
   • SMALLBERT-small, GPT보다 좋음

 

Method

GeneratorDiscriminator 구조
Transformer Encoder 구조를 가지고 있음
Gxtprobability softmax layer로 도출
DG에서 넘어온 xtfake인지 예측
   • Sigmoid
이 구조는 마치 GAN처럼 보임
GeneratorMaximum likelihood 학습함
   • 적대적(Adversarially) 방법이 아님
   • TextGAN 적용이 쉽지 않기 때문
Pre-trianing후에는 Generator는 버림
   • Only fine tune discriminator on downstream task

 

Generator
   • Masked Language Modeling(MLM) 수행
      • Random position(1 ~ n)을 선택
      • 선택된 position[MASK]
      • MASK된 것을 예측
Discriminator
Replaced by generator sample을 구분하는 것을 학습
Original inputmatch
GAN과의 차이점
Generator가 생성한 것을 real로 간주
   • Fake로 간주하는 것이 아님
Generatormaximum likelihood로 학습함
   • Descriminator 속이는 것이 아님
   • Adversarially 하게 학습하는 것은 backpropagate가 어려움
Noise vector input으로 Generator에 넣지 않음

 

Experiments

실험에서는 총 5가지의 하위 섹션으로 나뉘어집니다. 그 하위 섹션 목록은 다음과 같습니다.

- Experimental Setup

- Model Extension

- Small Models

- Large Models

- Efficiency analysis

 

3-1. Experimental Setup

Data
XLNet data 활용
BERT에서 ClueWeb, CommonCrawl, Gigaword 추가

 

3-2. Model Extensions

Weight Sharing

300x250
GeneratorDeiscriminator 사이에 weight sharing
   • pre-trianingefficiency 증가시키기 위해
Small generator + only share embedding이 효과적
   • All weight가 제일 성능이 좋았음
   • , same size로 해야하는 불이익
ELECTRAtied token embedding에서 효과를 얻음
   • MLM은 이러한 표현을 학습하는데 효과적
   • Generator는 모든 token embeddingdensely하게 update
   • (제 생각) G는 모든 단어에 대해서 바라봄
      • MLM으로 15% 선택되는데 이 선택된 것만 D는 바라봄
      • , 공평하게 튜닝할 기회는 MLM
      • 그래서 Embedding을 공유

 

Smaller Generators

만약 G, D가 같은 사이즈일 경우
   • ELECTRA2배의 compute가 들어감
Smaller Generator가 이런 factor 줄일 수 있음
   • Layer 사이즈만 줄이고 다른 하이퍼 파라미터는 유지
Smaller Generator의 불리함?
   • 500K로 전부 학습
   • Smaller Generatorless compute가 요구
   • 따라서 compute 측면에서 불리함
실제 결과는?
   • GeneratorDiscriminator¼ ~ ½ 정도에서 가장 좋음
   • 왜일까?
      • Generator가 너무 강하면 Discriminator에게 매우 어려운 과제
      • 너무 어려워서 오히려 효과적인 학습을 방해한다고 추측함

 

Training Algorithms
기본은 GeneratorDiscriminator joint training
다른 알고리즘 제안
   • 하나는 Two-stage 방법
      • 1. Generator만 훈련시킨 후
      • 2. Discriminatorweight Generator 것으로 초기화 이후, Generator weight frozen하고 D training
      • 초기화 후 성능이 쭉 올라감
   • 다른 하나는 Adversarial ELECTRA
      • 강화학습(reinforcement learning) 적용
      • 안 좋음
   • 이러한 Weight initialization
      • generatordiscriminator same size 요구
   • Weight initialization이 없으면
      • Discriminator는 때때로 다수 계층을 넘어서는 학습에 실패
      • Generator가 이미 훨씬 앞서가 있기 때문

 

3-3. Small Models

Small model 비교
본 연구의 목적!
   • Improve the efficiency of pre-training
   • Single GPU에서 빠른 학습이 되는 small model 개발
결과
   • ELECTRA smallhigher score 달성
      • More compute, parameter 모델보다 더 높게
   • BASE 모델은 BERT-BASE, LARGE도 이김

 

3-4. Large Models

Large model 비교
Pre-trained Transformer SOTA 모델과 비교
ELECTRA-Large
   • BERT-LARGE와 같은 크기
      • , trained much longer
         • (400k step, 2048 batch size, XLNet data)
결과
   • SOTA RoBERTamatch 가능
   • RoBERTa때와 마찬가지로 compute¼ 소요
   • 100K RoBERTa보다 더 좋고 XLNet 능가
      • Compute 양이 비슷함
   • 기본 BERT 모델은 RoBERTa-100k보다 안 좋음
      • 아래와 같은 이점을 얻을 수 있음을 시사
      • 더 많은 hyperparameter tuning
      • 또는, RoBERTa training data

 

3-5. Efficiency Analysis

Efficiency analysis
저자들이 주장한 것
   • Small subset of tokens masked language modeling이 비효율적
   • 하지만, 이것이 사실인지 불명확함
      • 소수만 예측하더라도 많은 수의 input tokens 받기 때문
   • ELECTRA의 이점이 어디에서 오는지 다른 pre-training objective와 비교
 
다른 pre-training object
   • ELECTRA 15%
      • ELECTRA와 동일
      • , Discriminator lossonly 15% masked out input token에서 발생
      • 토큰 학습 효율 때문에 성능 차이가 생겼는가? 확인
          • 기존에는 D100% 다 봤지만 여기선 15%
   • Replace MLM
      • MASK 토큰을  [MASK]로 교체하는 대신 replaced with token from generator
      • Pre-trainingfine-tuning의 불일치를 해결함으로써 ELECTRA 이득이 어느 정도인지 테스트
ALL-Tokens MLM
      • Replace MLM과 마찬가지로 masked tokengenerator sample로 대체
      • 일부만 치환하는게 아니라 all tokens in the input을 예측
      • BERT + ELECTRA

 

All input tokensubset보다 Greatly benefit 얻는 것을 확인
   • ELECTRA 15%ELECTRA보다 좋지 않음
Pre-train - fine-tune mismatch from [MASK]로 약간의 손해가 발생함을 확인
   • Replace MLMBERT 약간 능가
   • BERT는 이미 8:1:1pre-train, fine-tuning mismatch 해결 트릭을 사용 중
   • 그러나 이런 휴리스틱은 문제를 완전히 해결하는데 충분하지 않음을 시사
ALL-token MLMBERTELECTRA 사이의 격차를 좁힘
이런 결과를 종합했을 때
   • All tokens, 적은 양의 pre-train – fine-tune mismatchELECTRA의 많은 개선을 이루게 함
 

 

다양한 모델 크기에서 BERT와 비교
   • 모델이 작아질수록 ELECTRA 이득이 높아 짐
   • 작을수록 BERT와 성능차이가 커짐
모델이 작아도 BERT에 비해 빠르게 수렴
   • Small modeltrained fully to convergence

  • ELECTRAfully trained 했을 때 BERT보다 더 높은 정확도 달성

 

결론

Replace Token Detection 구조 제안
Masked Language Model과 비교
Pre-training objective가 더 효율적이고 downstream task에서 더 좋은 성능을 보여 줌
비교적 적은 양의 컴퓨팅에도 잘 동작
Access to computing resource가 부족한 연구자와 실무자에게 도움이 될 수 있기를!

맺음말

이번 포스팅은 자연어처리 논문 중 하나인 ELECTRA를 정리해봤습니다.

굉장히 독특한 아이디어로 좋은 퍼포먼스를 낸 논문입니다.

공부하시는 분들에게 도움이 되기를 바랍니다. 

반응형
그리드형
Comments