현재 이 시점에서 아무래도 가장 유명한 NLP 모델은 GPT 모델이라고 할 수 있다. 하지만 자연어 처리를 이제 막 공부하기 시작한 나는 이렇게 유명한 초대형 모델들을 잘 소화시키기 위해 NLP 모델의 기념비라고 할 수 있는 Transformer를 논문을 읽고 사용해보며 곱씹을 필요성이 있다고 생각하였다. 내가 가장 먼저 배웠던 자연어 처리 모델은 RNN이다. 의미를 간단하게 정의 하자면 단어의 풀이 그대로 회귀하는(recurrent) 인공신경망(nn)이다. 자연어 처리에서 가장 지배적인 모델이 었던 RNN에서 Transformer가 SOTA로 지정된 이유는 Recurrent 기법을 일절 사용하지 않아 병렬 처리로 인한 속도가 많이 향상 되었고, 그와 동시에 PPL(perplexity), BLEU의 값들을 근거로 볼 수 있는 모델의 성능 또한 매우 향상되었다는 것을 알 수 있다. 내가 RNN을 먼저 익히고 Transformer를 처음 들었을 때 처음 들었던 생각은 'Recurrent 기법을 사용하지 않았다고? 이건 이미지가 아닌걸? 그럼 글자들의 순서에 상관없이 학습된다는 건가?' 였다. 물론 다른 사람들도 이 부분에서 해당 모델에 대하여 흥미가 갔을 것 같다. 과연 텍스트하나하나의 자리를 유지하면서 희미해지는 상황을 방지할 수 있을 것인가(gradient vanishing을 의미 → RNN가 해결하기 힘들었던 문제)에 대하여 집중을 하고 봤다. 논문을 보며 신기했던 점은 함수들이 꽤나 직관적이고, 쉽게 해석 가능하다는 부분이었다. 예를 들어, 내가 논문을 읽기 전 독학을 했을 때는 아래의 함수 식에 대하여 각 수식에 대한 궁금증을 가지고 있었다.

하지만 논문을 하나하나 뜯어 보면서 이를 어렵지 않게 이해할 수 있었다.
< 논문의 일부 >
" We also experimented with using learned positional embeddings [9] instead, and found that the two
versions produced nearly identical results. We chose the sinusoidal version because it may allow the model to extrapolate to sequence lengths longer than the ones encountered
during training. "
이 부분을 내 방식으로 해석한 내용은 아래와 같다.
" sin과 cosine 함수를 이용한 이유는 상대적인 값을 효율적으로 파악하기 위해 주기함수를 이용한 것이라고 한다. 실제로 다른 방법을 이용하여 sin/cosine 함수 대신 positional embedding을 시행해 보았을 떄 PPL값과 BLEU 값의 차이는 거의 없다고 한다. 그러므로 상대 위치를 계산할 수 있는 함수만 있다면 대체할 수도 있다고 해석할 수 있다. 그럼에도 선형적인 버전 대신 사인파 버전을 선택한 이유는 모델이 훈련 중에 만난 시퀀스 길이보다 더 긴 시퀀스에 대해 외삽(extrapolate)할 수 있을 것으로 기대되기 때문이다. 이로 인한 장점은 훈련 데이터에 없는 길이의 시퀀스에 대해서도 모델이 높은 일반화 능력을 갖게 될 수 있다는 것으로 보인다. "
'MAD Learning > NLP' 카테고리의 다른 글
| [논문 리뷰] ELMo : Deep contextualized word representations (0) | 2024.02.24 |
|---|---|
| [ 논문 리뷰 ] BERT : Pre-training of Deep Bidirectional Transformers for Language Understanding (0) | 2024.02.18 |
| [논문 리뷰] GPT-1 : Improving Language Understandingby Generative Pre-Training (1) | 2024.02.11 |
| Encoding VS Embedding (0) | 2024.01.31 |
| Subword Segmetation Algorithm(BPE, Wordpiece, Unigram) (0) | 2024.01.27 |