brunch

You can make anything
by writing

C.S.Lewis

by 서진호 Mar 27. 2020

ELECTRA를 통한 효율적인 NLP모델 사전 훈련

2020년 3월 10일(화) 구글 AI 리서치 블로그

언어 사전 훈련의 최근 발전으로 인해 자연 언어 처리 분야에서 BERT, RoBERTa, XLNet, ALBERT T5와 같은 최첨단 모델이 크게 향상되었습니다. 이러한 방법은 디자인이 다르지만 많은 양의 레이블이 없는 텍스트를 활용하여 감정 분석 및 질문 응답과 같은 특정 NLP 작업에 대해 미세 조정하기 전에 언어 이해의 일반적인 모델을 구축한다는 동일한 아이디어를 공유합니다.


기존의 사전 훈련 방법들은 일반적으로 두 가지 범주에 속합니다. 첫째, 입력 텍스트를 왼쪽에서 오른쪽으로 처리하여 이전 콘텍스트에서 제공된 다음 단어를 예측하는 GPT와 같은 언어 모델(LM) 및 BERT, RoBERTa와 같은 마스크된 언어 모델 (MLM)입니다. 둘째, 입력에서 마스킹된 적은 수의 단어의 ID 대신 예측하는 ALBERT입니다. 


MLM은 단방향이 아니라 예측되는 토큰의 왼쪽과 오른쪽 모두에서 텍스트를 "볼 수" 있다는 점에서 단방향 대신 양방향이라는 장점이 있습니다. 그러나 MLM 목표(및 XLNet과 같은 관련 목표)도 단점이 있습니다. 모든 단일 입력 토큰을 예측하는 대신이 모델은 작은 부분 집합(예: 15 %가 마스크 되지 않음)만 예측하므로 각 문장에서 학습되는 양이 줄어듭니다.

[그림 1]

[그림 1] 상세 설명 - 기존의 사전 훈련 방법 및 단점. 화살표는 주어진 출력 표현(사각형)을 생성하는 데 사용되는 토큰을 나타냅니다. 왼쪽: 기존 언어 모델(예: GPT)은 현재 단어 왼쪽의 콘텍스트 만 사용합니다. 오른쪽: 마스크 언어 모델(예 : BERT)은 왼쪽과 오른쪽의 콘텍스트를 사용하지만 각 입력에 대해 단어의 작은 하위 집합만 예측합니다.


“ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators”  논문에서, BERT의 이점을 제공하지만 훨씬 더 효율적으로 배우는 언어 사전 훈련에 대한 다른 접근 방식을 취합니다. ELECTRA(토큰 교체를 정확하게 분류하는 인코더를 효율적으로 학습)는 동일한 컴퓨팅 예산으로 기존 기술을 능가하는 새로운 사전 훈련 방법입니다. 예를 들어, ELECTRA는 계산의 1/4 미만을 사용할 때 GLUE 자연 언어 이해 벤치 마크에서 RoBERTa 및 XLNet의 성능을 일치시키고 SQuAD 질문 답변 벤치 마크에서 최첨단 결과를 얻습니다.


ELECTRA의 뛰어난 효율성은 소규모에서도 잘 작동한다는 것을 의미합니다. 단일 GPU에서 며칠 만에 30배 이상 더 많은 컴퓨팅을 사용하는 모델 인 GPT보다 정확도를 높일 수 있습니다. ELECTRA는 TensorFlow를 기반으로 오픈소스 모델로 출시되었으며 즉시 사용 가능한 사전 훈련된 언어 표현 모델을 다수 포함하고 있습니다.


사전 훈련 속도 향상

ELECTRA는 대체 토큰 탐지(RTD, Replaced token detection)라고 하는 새로운 사전 훈련 작업을 사용하여 모든 입력 위치(LM 등)에서 학습하면서 양방향 모델(MLM 등)을 훈련시킵니다. ELECTRA는 GAN (Generative Adversarial Network)에서 영감을 얻어 모델을 학습하여 "실제"와 "가짜"입력 데이터를 구별합니다.


BERT에서와 같이 토큰을 "[MASK]"로 교체하여 입력을 손상시키는 대신, 일부 입력 토큰을 부정확하지만 다소 그럴듯한 가짜로 대체하여 입력을 손상시킵니다. 예를 들어, 아래 그림에서 "cooked"라는 단어는 "ate"로 대체될 수 있습니다. 이것은 약간의 의미가 있지만 전체 맥락에 맞지 않습니다. 사전 훈련 작업은 모델(discriminator)이 원래 입력에서 어떤 토큰이 교체 또는 동일하게 유지되었는지를 결정하도록 요구합니다.


결정적으로, 이 이진 분류 작업은 적은 수의 마스크 토큰(BERT 스타일 모델의 경우 15%) 대신 모든 입력 토큰에 적용되어 MLM보다 RTD를 더 효율적으로 만듭니다. ELECTRA는 예제 당 모드 훈련 신호를 수신하기 때문에 동일한 성능을 달성하기 위해 더 적은 예제를 볼 필요가 있습니다. 동시에 RTD는 강력한 표현 학습을 제공합니다. 모델이 작업을 해결하기 위해 데이터 분포의 정확한 표현을 학습해야 하기 때문입니다.


대체 토큰은 생성기라고 하는 다른 신경망에서 나옵니다. 생성기는 토큰을 통해 출력 분포를 생성하는 모든 모델이 될 수 있지만, 우리는 discriminator와 공동으로 훈련되는 작은 마스크 언어 모델(즉, 숨겨진 크기가 작은 BERT 모델)을 사용합니다. discriminator에 공급되는 생성기의 구조는 GAN과 유사하지만 GAN을 텍스트에 적용하기 어렵기 때문에 가려운 단어를 예측할 수 있는 가능성을 최대한 생성합니다. Generator와 Discriminator는 동일한 입력 단어 임베드를 공유합니다. 사전 훈련 후 생성기가 내려지고, discriminator(ELECTRA 모델)는 다운 스트림 작업에서 미세 조정됩니다. 우리 모델은 모두 Transformer 신경망 아키텍처를 사용합니다.

[그림 3] 대체 토큰 감지(RTD) 작업에 대한 자세한 내용. 가짜 토큰은 ELECTRA와 공동으로 훈련된 작은 마스크 언어 모델에서 샘플링됩니다.

ELECTRA 결과

우리는 ELECTRA를 다른 최신 NLP 모델과 비교하고 동일한 컴퓨트 예산(compute budget)을 고려할 때 계산의 25% 미만을 사용하면서 RoBERTa 및 XLNet에 필적하는 성능을 제공함으로써 이전 방법에 비해 실질적으로 개선되었음을 발견했습니다.

[그림 4]

[그림 4] 상세 설명 - x축은 모델을 훈련시키는 데 사용된 계산량(FLOP으로 측정)을 나타내고 y 축은 dev GLUE 점수를 보여줍니다. ELECTRA는 기존의 사전 훈련된 NLP 모델보다 훨씬 효율적으로 학습합니다. T5(11B)와 같은 GLUE의 현재 최고의 모델은 다른 모델보다 훨씬 더 많은 계산을 사용하기 때문에 (RoBERTa보다 약 10 배 더 많음)이 플롯에 맞지 않습니다.


효율성의 한계를 한층 더 높이기 위해, 우리는 4일 안에 단일 GPU에서 우수한 정확도로 훈련할 수 있는 작은 ELECTRA 모델을 실험했습니다. 많은 TPU가 훈련을 필요로 하는 더 큰 모델과 동일한 정확성을 달성하지는 못했지만 ELECTRA-small은 여전히 1/30의 계산량을 요구하면서도 GPT를 능가하는 성능을 발휘합니다.


마지막으로, 강력한 결과가 대규모로 유지되는지 확인하기 위해 더 많은 계산을 사용하여 큰 ELECTRA 모델을 학습했습니다 (대략 RoBERTa와 거의 같은 양, 계산은 T5와 약 10 %). 이 모델은 SQuAD 2.0 질문 답변 데이터 세트 (아래 표 참조)에서 단일 모델에 대한 새로운 최첨단 기술을 달성하고 GLUE 리더 보드에서 RoBERTa, XLNet 및 ALBERT를 능가합니다. 대규모 T5-11b 모델은 GLUE에서 여전히 높은 점수를 얻지 만 ELECTRA는 1/30 크기이며 훈련에 10 % 의 컴퓨팅을 사용합니다.


[그림 5] ELECTRA-Large 및 기타 최신 모델의 SQuAD 2.0 점수 (비 앙상블 모델만 표시).

ELECTRA 출시

우리는 텍스트 분류, 질문 응답 및 시퀀스 태깅을 포함하여 현재 지원되는 작업을 통해 다운스트림 작업에서 ELECTRA 사전 훈련 및 세부 조정을 위한 코드를 릴리스합니다. 이 코드는 하나의 GPU에서 작은 ELECTRA 모델을 빠르게 훈련시키는 것을 지원합니다. 또한 ELECTRA-Large, ELECTRA-Base 및 ELECTRA-Small에 대해 사전 훈련된 가중치를 릴리스합니다. ELECTRA 모델은 현재 영어로만 제공되지만 앞으로 여러 언어로 사전 학습된 모델을 출시할 예정입니다.


원본 제목: ELECTRA를 통한 효율적인 NLP모델 사전 훈련(More Efficient NLP Model Pre-training with ELECTRA)
작성자: Kevin Clark, 학생 연구원 및 Thang Luong, Google Research의 수석 연구 과학자, 구글 브레인 팀
원본 링크: https://ai.googleblog.com/2020/03/more-efficient-nlp-model-pre-training.html
ELECTRA 오픈소스: https://github.com/google-research/electra
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 논문: https://arxiv.org/abs/1810.04805
RoBERTa: A Robustly Optimized BERT Pretraining Approach 논문: https://arxiv.org/abs/1907.11692
XLnet: Generalized Autoregressive Pretraining for Language Understanding 논문: https://arxiv.org/abs/1906.08237
ALBERT: A Lite BERT for Self-supervised Learning of Language Representations 논문: https://arxiv.org/abs/1909.11942
Improving Language Understanding by Generative Pre-Training 논문: https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf
ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators 논문: https://openreview.net/forum?id=r1xMH1BtvB
Language GANs Falling Short 논문: https://arxiv.org/abs/1811.02549
Attention Is All You Need 논문: https://arxiv.org/abs/1706.03762
Exploring the Limits of Transfer Learning with Unified Text-to-Text Transformer 논문: https://arxiv.org/abs/1910.10683
이 블로그는 2020년 3월 10일(화), Google AI Research Blog 기사를 영한 번역한 것입니다. 또한 이 번역 글은 정보 공유 목적으로만 작성했으므로 어떠한 상업용으로 사용할 수 없으며, 원본 저작물 모두 구글에게 저작권이 있음을 알려 드립니다. (First Draft Version)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari