BERT & T5

BERT & T5


Models

CBOW : 고정된 길이의 context window를 사용하고 , FFNN를 사용한다.

ELMo : Bi-directional context를 사용해 Full sentence를 참조하는 RNN구조를 사용한다.

GTP : Transformer decoder stack을 사용하며 Bi-direction에서 longer-term sentence를 capture할때의 issue로인해 uni-direction 사용한다.

BERT : Transformer encoder를 사용하며 Bi-directional Context를 사용한다. Multi mask, Next sentence prediction으로 pre-train을 한다.

T5 : Transformer Encoder-decoder를 사용하며 Bi-directional Context를 사용한다. 하나의 모델로 Multi-Task 수행이 가능하다.

BERT에 대해서 알아본다.


BERT

bert

기본적으로 BERT는 pre-training , fine-tuning의 Basic step을 가지고 있다.

처음엔 Unlabeled data로 pre-training하고 이 과정을 통해 생성된 파라미터들을 downstream task의 labeled data를 사용하여 fine-tuning한다.

BERT는 Pre-training 과정에서 Masked language modelingNext sentence prediction을 사용한다.

Masked Language Modeling은 전체 토큰에서 15%를 랜덤하게 선택한 뒤, 그것들 중 80%센트는 Mask하고, 10%는 random한 다른 단어로 교체, 나머지 10%는 그대로 유지하는 방식을 사용한다. 따라서 한 문장에서 여러개의 mask된 단어들이 존재할 수 있다.

nextsen

Next Sentence Prediction은 주어진 문장에 대해서 A, B다음 문장일 확률이 높은 문장을 예측하는 과정이다.


BERT Objective

bertinput

BERT model 에 input을 넣을때는 위와 같은 과정을 거친다.

우선 Position Embedding을 한다. (앞의 Positional encoding이랑은 다르다.) 이를 통해 각 토큰이 문장에서의 위치관계를 갖는다.

두번째로는 Segment Embedding을 한다. 이는 여러개의 문장이 연속적으로 들어올 때 각각의 토큰이 어느 문장에 속하는지 구별해준다.

마지막으로는 Token Embedding을 해주어 [CLS], [SEP] 등 문장의 시작과 구분 등을 추가해준다.

output

Embedding된 토큰들이 BERT모델을 거치면 나오는 T_i embedding token을 사용하여 softmax를 통해 masked word를 예측하거나, C를 통해 다음 문장을 예측하는데 쓸 수 있다.

lossf

Multi masked language model은 Cross Entropy Loss를 사용하여 masked word를 predict하고, Next Sentence Prediction은 Binary Loss를 사용한다.

Fine tuning BERT

transfer

Transfer Learning은 아주 다양한 장점을 갖고 있다. (Transfer Learning)

BERT는 매우 큰 Dataset(약 33억 단어) 를 pre-train했기 때문에 Transfer Learning의 장점을 그대로 활용할 수 있다.

finetune

미리 잘 조율되어있는 Parameter들을 이용하여, Sentence A/B 대신 필요한 Data를 넣어 Fine tuning 을 하여 Train time의 단축, 적인 Data로 효율높은 학습, 보다 우수한 성능을 기대할 수 있다.


T5

T5는 BERT와 유사한 Training strategy를 가지고 있다.

T5 는 Text-to-Text transformer이며 QA, Classification, Translation 등 많은 기능을 수행할 수 있다.

t5input

T5 모델의 Masked Input은 <>로 구분된다. <>안의 값은 Increasing하게 계속 바뀌는 값이다. 그에 대한 Target은 input에서 썻던 <>값으로 split되어있다.

encdec

기본적인 모델의 구조는 Encoder-Decoder 모델으로 구성되어 있다. Ecoder 안에서는 Fully-visible-attention이 일어나고, Decoder 안에서는 Causal-attention (self attention)이 일어난다.

lm

그리고 Transformer로 구성된 Language model이 존재한다. 여기서는 Input과 Out이 concatenate된 상태를 입력으로 받고, Causal attention이 일어난다.

preflm

그다음으로는 fully-visible-attention을 하는 Prefix-language model이 존재한다.


Multi-Task Training Strategy

BERT, T5와 같은 multi task 수행이 가능한 모델을 Train할 때, 각각의 분야 별로 얼만큼의 Data를 학습시켜야할까?

Data Training Strategy 중의 첫번째로 Proportional Mixing을 생각할 수 있다.

각각의 Data마다 일정한 퍼센트만큼의 Data를 취하는 것이다. 예를들어

data

위와 같은 Data1과 Data2가 있다면, 각각의 Data로부터 같은 퍼센트(ex:10%)를 취한다. 당연히 Data2의 원래 규모가 컸으므로 Sample또한 Data1에 비해서 더 많을것이다.

두번째 방법은 Equal Mixing이다. Data의 크기에 관계없이, 일정한 개수의 Sample을 취하는것이다.

그리고 이 두가지 방법은 중간지점인 Temperature-scaled Mixing이 있다. temperature라는 parameter를 사용해서, 두 가지 방법중 어느 중간지점 정도를 채택한다.

Gradual unfreezing & Adapter Layers

연관글