티스토리 뷰

Study/NLP

NLP with DeepLearning (9) - PLMs

johanjun 2021. 12. 14. 21:39

준지도 학습 (SSL; Self-supervised Learning)

비지도(Unsupervised), 지도(supervised) 학습은 많이 들어봤어도, 준지도(self-supervised) 학습은 입문자에게 낯설다. 단어 뜻을 토대로 유추해보면, 자기가 스스로 label을 생성하는 것이라고 유추해 볼 수 있겠다. 사람이 레이블링을 하는 것은 많은 리소스가 들어간다(그래서 따로 외주를 주는 것). 준지도 학습에서 레이블들은 입력으로 넣지 않은 나머지 데이터들이 y 삼아서 예측하도록 학습한다.

"I love ___ go to school."

위 문장의 예시에서 빈 칸을 예측하는 태스크를 준지도 학습으로 해결하고자 한다면, 빈 칸을 제외한 나머지 단어들을(토큰) 다른 단어(토큰)들로 예측하도록 학습시키는 것이고, 이게 일종의 pre-trained이 되는 과정이다. 

 

PLM(Pre-trained Language Model)의 최종 목표는 이렇게 pre-trained된 weights를 활용해서 다른 태스크들에 적용(fine tuning)하는 transfer learning이다.

 

Why PLM?

PLM을 만드는 것은 워낙 리소스가 많이 들어가기 때문에 일반인이나 작은 기업들은 상상도 할 수 없다. 왜 PLM은 특히 자연어처리 분야에서 인기를 끌고 있고 대세가 되었을까? 그 첫 시작은 아래의 질문에서 시작되었다.

대규모 general representation을 전이 학습에 활용할 수 없을까?

PLM을 통해서는 아래의 세 가지 성능 향상을 기대할 수 있다.

  1. 더 좋은 입력 representation
  2. 더 좋은 weight parameter seed
  3. 큰 모델을 다시 학습할 필요 없이 추론

PLM sizes(출처 : https://smilegate.ai/2021/10/24/deep-learning-optimized-learning/)

위 그래프를 보면, PLM 모델들의 사이즈를 나타내는 데, y축이 log-scale이다. 따라서 사실은 지수증가를 보이며, GPT-3의 경우 175 billion의 weights를 학습했다.

GPT(Generative Pre-Training)

OpenAI에서 Transformer의 디코더를 활용해서 언어 모델을 사전학습을 하여 각 task에 맞게 tranfer learning을 한다. input으로는 특수 토큰(e.g. BOS, EOS, Dilimeter)이 포함된 문장을 넣고, GPT를 통과시켜서 학습시킨다. 이 단순한 모델이 엄청난 성능을 보이면서, 이 PLM이 자연어처리에서는 말그대로 대세가 되었다.

BERT(Bidirectional  Encoder Representations form Transformer)

이전에 다뤘던 PLM 이전의 자연어처리 모델은 feature-based 였다. 즉 좋은 사전학습 embedding을 넣기 위한 모델이었다. 하지만 PLM의 목표는 random seed에서 학습을 하지 않기 위해 좋은 weight seed를 만들어 놓는 것이 목표다. GPT는 uni-directional을 통한 사전학습이었다면, 즉 앞에서 오는 단어들의 구성으로 뒤에 오게 될 단어를 예측하는 단방향 모델이었다. 하지만 BERT는 이름에서 알 수 있듯이 양방향 모델이다.

  1. Transformer의 encoder만을 활용한다.
    1. MLM(Masked Language Model)
      : 다음 토큰을 예측하는 것이 아니라 문장의 중간의 특정 단어를 masked하여 예측하게 학습한다. 이는 현재 time-step기준으로 앞, 뒤를 학습하게 만들어 문장 전체의 context를 정보로 활용할 수 있게 된다.
      MLM은 학습과 추론의 괴리를 없애기 위해서 15%의 토큰만 추론으로 선정하고, 그 중 80%는 masked로 바꾸고 10%는 랜덤 토큰, 10%는 원래 토큰으로 만들어서 노이즈를 섞는다.
    2. NSP(Next Sentence Prediction)
      : Question Answering이나 Text Entailment같이 단어가 아닌 문장과 문장의 관계를 이해하도록 하는 objective 설정이 가능하다. 두 문서를 임의로 선택하여 50%는 연결된 문서, 50%는 연결되지 않은 문서로 학습시킨다. 또한 seperator라는 토큰을 넣어서 문서와 문서 사이를 구분짓는다.
  2. Positional 인코딩 대신 다양한 embedding을 결합할 수 있다.
    : Transformer에서 positional encoding을 하듯 BERT에서는 Position Embedding(위치)과, Segment Embedding(문장)을 같이 넣어준다.
  3. Task-specific layer를 추가해서 fine-tuning한다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함