또르르's 개발 Story

[Stage 2 - 이론] GPT 언어 모델 본문

[P Stage 2] KLUE/이론

[Stage 2 - 이론] GPT 언어 모델

또르르21 2021. 4. 21. 10:18

GPT 언어 모델은 BERT와 다르게 단방향 모델입니다.

또한, BERT는 Transformer의 Encoder를 사용했고, GPT는 Transforemer의 Decoder를 사용했습니다.

 

  https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf

 

GPT는 현재 token을 토대로 다음에 나올 token을 예측하고, 생성하는 방식을 사용합니다.

 

https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf

 

GPT 모델은 시기적으로 BERT보다 먼저 나왔습니다.

GPT는 기존 RNN 모델과 마찬가지로 text가 입력으로 들어갔을 때 입력에 대한 Context vector를 출력하고 그 Context vector 뒤에 linear layer를 붙임으로써 분류 task에 적용하기 위해 설계되었던 모델입니다.

 

https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf

 

 

1️⃣ GPT의 장점과 한계점

 

  • 장점

    - 자연어 문장을 분류하는데 성능이 아주 좋은 디코더인 GPT

    - 적은 양의 데이터에서도 높은 분류 성능을 나타냄

    - Pre-trained 언어 모델의 시작이었고, BERT로 발전의 밑거름

  • 한계점

    - 하지만 지도 학습을 필요로 하며, labeled data가 필수입니다.

    - 특정 task를 위해 fine-tuning된 모델은 다른 task에서 사용 불가능

 

하지만 "언어"의 특성 상, 지도학습의 목적함수는 비지도 학습의 목적함수는 같다는 것을 연구진들이 알게됩니다.

즉, Fine-tuning에서 만들어지는 목적함수와 pre-trained를 만드는 비지도 학습이 목적함수는 같다는 것입니다.

 

이말은 즉슨 Fine-tuning에서 사용되는 label 자체도 하나의 "언어"라는 것입니다.

 

 

2️⃣ Few-shot, One-shot, Zero-shot

 

기존에는 Fine-tuning 방법을 사용했습니다.

Input을 넣어주면 gradient를 미세조정해서 최종 label값을 예측하는 방식을 했습니다.

 

  https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf

 

 

하지만 GPT 연구진들이 연구했던 방법은 gradient update가 존재하지 않습니다.

Free, One, Zero의 차이점은 어떤 inference를 수행할 떄 원하는 task에 대한 힌트를 얼마나 주느냐의 차이에 있습니다.

 

  https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf

 

연구진들은 이 아이디어를 바탕으로 GPT-2를 개발하게 됩니다.

 

 

3️⃣ GPT-2

 

GPT-2는 GPT와 다른점이 몇가지 있습니다.

 

  • 기존 11GB 데이터 -> 40GB 데이터 사용

  • Decoder 구조 약간 변경

   https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf

 

 

4️⃣ GPT-3

 

GPT-3는 GPT-2와 다른점이 몇가지 있습니다.

 

  • 기존 40GB 데이터 -> 570GB 데이터 사용

  • Decoder 구조 약간 변경

https://arxiv.org/abs/2005.14165

 

 

Comments