Loading...
2022. 10. 24. 17:10

현대 NLP 모델의 근간이 되는 BERT의 기본적인 특징

1. pre-trained model은 왜 의미있을까? pre-training과정에서 수행한 up-stream task의 data는 별도의 label이 필요하지 않은 데이터라는 것이 하나의 강점이다. ------------------------------------------------------------------------------------------------------------------------------- 다음 단어를 맞추는 것이 label이 없다고? GPT-1이 수행한 다음 단어를 예측하는 pre-training task는 input sequence와 output sequence가 동일한 task이다. 쉽게 말해 input sequence를 차례대로 읽어들여 input sequenc..

2022. 6. 28. 01:58

NLP의 최신 트렌드 - GPT-1 파헤치기

1. NLP의 최신 트렌드 transformer와 self-attention block은 NLP분야에서 범용적인 encoder,decoder로 역할을 수행하며 좋은 성능을 보였다. 처음 제안된 transformer의 self-attention block은 6개였는데 이제는 12개,24개,... 그 이상으로 더욱 쌓아올려 model을 구성한다. 이렇게 쌓은 모델을 self-supervised learning라는 framework하에 대규모의 train data로 pre-train하여 다양한 NLP task등에 transfer learning로 fine-tuning하는 형태로 활용하는 거대한 모형 BERT,GPT,ELECTRA,ALBERT 등이 등장했다. 이런 거대한 모형의 self-supervised le..

2022. 5. 18. 02:09

transformer decoder에 사용된 masked self attention에 대해 알아보고 구현하기

decoder는 특이하게 masked multi head attention을 먼저 수행한다. 이것은 decoder 내부에서 이루어지는 self attention 과정으로 decoder의 input sequence끼리만 이루어진다. 언어모형을 학습시킬때 이미 정답을 아는 상태에서 학습을 시킨다. i go home을 번역하라고 할때 decoder에는 ' 나는 집에 간다'를 넣고 '나는 집에 간다 '를 순차적으로 뱉게 학습을 시킨다는 것이다. decoder에 input으로 ''를 넣어주면 output이 '나는'이 나오길 바라고 '나는'을 input으로 넣어주면 '집에'가 나오길 바란다. 그런식으로 학습을 시킨다. 하지만 이런 학습이 inference에는 어울리지 않는다는 점이다. test과정에서는 정답을 모른..

2022. 5. 13. 01:28

transformer에 사용된 positional encoding에 대하여

1. block based model encoding의 마지막 단계로 residual connection, layer normalization 결과를 feed forward network라는 신경망에 넣어 다시 한번 변환을 거친다. 근데 특별히 왜 했다는 이유는 없는듯?? feed forward network후에도 residual connection을 수행하고 layer normalization을 수행하여 최종적인 encoder의 output인 hidden vector를 얻는다. 2. positional encoding 지금까지 연산의 결과는 사실 sequence의 순서 정보를 전혀 고려하지않았다. 직관적으로 당연하다. x1,x2,x3의 q,k,v를 한번에 만들어서 이것으로 attention을 수행하면서..

2022. 5. 5. 19:03

transformer에 사용된 residual connection과 layer normalization

1. residual connection self attention 구조하에 당시 좋은 성능 향상 기법인 residual add connection, layer normalization을 채택했다. input $X_{t}$의 encoding 결과로 $h_{t}$라는 hidden vector를 얻고 싶은데 multi head attention이 학습하는 결과는$h_{t}-X_{t}$라고 하는 것이며 이 결과에 input $X_{t}$를 그대로 더하여 $h_{t}$라는 목표하는 hidden vector를 얻는다. input의 (1,4)의 multi head attention 결과로 얻은 (2,3)에 단순히 더하여 (3,7)이라는 벡터를 얻는 과정이 residual connection이다. 입력 input과 ..

2022. 5. 3. 18:55

transformer의 메모리 사용량 알아보기

1. layer의 계산적인 측면 self attention의 layer의 계산적인 측면에서 본다면 input sequence의 길이가 n이고 hidden vector의 차원이 d일때 Q는 n*d차원이고 $K^{T}$ 는 d*n차원이므로 $O(n^{2}d)$ RNN은 d차원의 $h_{t-1}$이 $h_{t}$로 변환되기위해서는 $W_{hh}$라는 d*d행렬을 곱하여 계산되는데 input sequence의 길이 n에 대하여 $O(nd^{2})$ input sequence의 길이 n과 hidden vector의 차원 d는 의미적으로 큰 차이가 있는데 hidden vector의 차원은 hyperparameter로 선택할수있는 값이다. 그러나 input sequence는 선택할수 없는 값으로 데이터의 길이에 따라..