상세 컨텐츠

본문 제목

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 논문 한글 번역 - Additional Details for BERT

논문분석

by [성운] 2020. 2. 11. 20:32

본문

BERT논문을 직역 및 의역으로 작성한 내용입니다.

5 Ablation Studies는 다음 컨텐츠를 이용바랍니다.

https://ynebula.tistory.com/59

Appendix for "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding"
세개의 섹션으로 구성하였습니다.

  • Appendix A. BERT  추가 구현법을 작성함.
  • Appendix B. 우리의 경험.
  • Appendix C. ablation 연구
     : Training Steps의 Number의 효과.
     : 여러 Masking Procedures 의 Ablation

A Additional Details for BERT

A.1 Illustration of the Pre-training Tasks

우리는 다음 pre-training tasks의 예를 제공합니다.
Masked LM and the Masking Procedure
my dog is hairy라는 unlabed 문장을 가정해 보자. 그리고 random masking 절차 동안, hariy에 대응하는 4-th token을 선택합니다. masking 절차는 다음과 같이 설명할 수 있습니다.

  • 80% of the time: [MASK] token으로 단어를 대체: e.g., my dog is hairy -> my dog is [MASK]
  • 10% of the time: random word로 대체: e.g., my dog is hairy -> my dog is apple
  • 10% of the time: 변경하지 않음: e.g., my dog is hairy -> my dog is hairy

이 procedure의 이점은 Transformer encoder는 어떤게 random word로 대체되었는지 알지 못합니다. 그래서 모든 input token distributional contextual representation을 유지시킵니다. 게다가, random replacement는 모든 token에서 겨우 1.5%로 발생합니다. 이건 model's language understanding capability에 나쁜 영향을 주지 않을걸로 보입니다.
Section C.2어서, 이 procedure의 영햐을 평가합니다. 표준 language model training과 비교하여, masked LM은 Batch 마다 15%만 예측합니다. 모델에 적용하려면 더 많은 pre-training 단계가 필요할 수 있습니다. Section C.1에서 우리는 MLM이 left-to-right model보다 약간 느리게 수렴되는걸 보여줍니다.

Next Sentence Prediction
next sentence prediction task는 다음 예로 설명할 수 있습니다.

Input = [CLS] the man went to [MASK] store [SEP] he bought a gallon [MASK] milk [SEP]
Label = IsNext
Input = [CLS] the man [MASK] to the store [SEP] penguin [MASK] are flight ##less birds [SEP]
Label = NotNext


A.2 Pre-training Procedure
trainin input sequence를 만들기 위해, 우리는 corpus에서 two spans를 샘플링 했습니다. 첫 sentence A embedding과 두 번째  sentence B embedding. B의 50%는 A의 실제 다음 문장이고 50%sms random sentence입니다. 결합된 길이는 512token보다 작게 샘플링 했습니다. 15% 비율로 masking된 WordPiece tokenization 후 LM masking이 적용됩니다.
그리고 partial word piece에 특별한 고려는 없습니다. 1,000,000 steps 동안 batch size 256 sequences (256 sequences * 512 tokens = 128,000 tokens/batch) 3.3 billion word corpus로 약 40 epoch 훈련을 했습니다. learning rage 1e-4로 Adam과 B1 = 0.9, B2=0.999, L2 weight decay=0.01, 첫 10,000 steps동안  learning rage warmup과 learning rate의 linear decay 사용했습니다. 모든 layer의 dropout의 확률은 0.1입니다.  OpenAI GPT에서 사용한 relu보다 gelu activation을 사용했습니다. training loss는 mean masked LM likelihood와 mean next sentence prediction likelihood의 sum 입니다.

BERTBASE Training은 Pod configuration에서 4 Cloud TPU로 수행했습니다(16 TPU chips totals). BERTLARGE Training은 16 Cloud TPUs에서 수행했습니다(64 TPU chips totals). 각 pre-training이 완료되는데는 4일 걸렸습니다. attention은 sentence 길이의 quadratic(이차의) 이므로 긴 문장은 더 많은 시간이 소요됩니다. pre-training의 속도를 올리기 위해서, 우리는 corpus의 90%를 128길이로 pre-train 했습니다. 그런 다음, positional embeddings을 학습하기 위해 나머지 10%를 512길이로 학습했습니다.

A.3 Fine-tunning Produre

fine-tunning 동안, 대부분 model hyperparameters는 pre-training과 같습니다(batch size, learning rate, epoch 수 예외).
dropout의 확률은 항상 0.1로 유자합니다. 최상의 hyperparameter값은 task-specifc이지만, 우리는 다음과 같이 모든 task에 잘 작동하는 value의 범위를 발견했습니다.

  • Batch size: 16, 32
  • Learning rate(Adam): 5e-e, 3e-5, 2e-5
  • Number of epochs: 2, 4

우리는 또한 관찰했습니다. large data sets(e.g., 100k+ labeled training examples)은 hyperparameter 선택에 덜 민감합니다. Fine-tunning은 대체로 빠릅니다. 그래서 위 parameters를 모두 수행하고 개발셋에서 가장 좋은 Model을 선택하는것에 합리적입니다.

A.4 Comparison of BERT, ELMo and OpenAI GPT

최근 인기있는 representation learning models를 연구합니다(ELMo, OpenAI GPT, BERT). Figure 3에서 model architecture간 비교를 보여줍니다. BERT와 OpenAI GPT는 fine-tuning 방식입니다. 반면 ELMo는 feature-based 방식입니다. BERT와 가장 유사한 기존 pre-training 방법은  OpenAI GPT입니다. OpenAI GPT는 large text corpus에서 left-to-right Transformer LM으로 훈련합니다. ERT의 많은 설계는 두 방법이 비교할 수 있게 GPT와 유사하게 만들어 졌습니다.
이 작업의 core argument는 bi-directionality와 two pre-training tasks
그리고 Section 3.1에서 보여주는 두 pre-training tasks는 empirical improvements의 대부분을 설명합니다.
그러나 BERT와 GPT train 방법 차이는 몇가지만 있습니다.

  • GPT는 BooksCorpus(800M words)로 훈련하였습니다. BERT는 BooksCorpus(800M words )와 Wikipedia(2,500M words)로 훈련하였습니다.
  • GPT는 오직 fine-tuning에서만 문자 구분자(sentence separator)로 ([SEP])와 classifier token으로 ([CLS]) 를 사용하였습니다. BERT는 pre-training동안 [SEP], [CLS]와 sentence A/B embedding을 학습합니다.
  • GPT 32,000단어의 batch size를 1M step동안 학습합니다. BERT는 128,000단어의 batch size를 1M step동안 학습합니다.
  • GPT는 fine-tuning동안 같은 learning rage를 사용합니다(5e-5). BERT는 development set에서 가장 좋은 성능을 나타내는 learning rate를 선택합니다(task-specific fine-tuning).

이런 다른점의 효과를 구분하기 위해, 우리는 Section 5.1에서 ablation 실험을 수행했습니다. 성능향상의 대부분은 pre-training과 bidirectionality에서 비롯되었다고 설명합니다.


A.5 Illustration of Fine-tuning on Different Tasks
여러 tasks에서 BERT의 fine-tuning의 설명은 Figure4에서 보여준다. 우리의 task-specific model들은 통합 BERT에 하나의 추가 output layer를 추가해서 만들었습니다. 그래서 최소한의 parameters를 처음부터 배워야 합니다. tasks중 (a)와 (b)는 sequence-level task입니다. 반면, (c)와 (d)는 token-level tasks입니다. 그림에서 E는 input embedding을 나타냅니다. Ti token에서 i번째 tokendml contextual representation 나타냅니다. [CLS]은 output을 구분하기 위한 특수문자입니다. 그리고 [SEP]는 non-consecutive token sequences을 분리하는 특수 문자입니다.

C Additional Ablation Studies 는 다음 컨텐츠를 이용바랍니다.

https://ynebula.tistory.com/61

관련글 더보기

댓글 영역