본문 바로가기

Upstage AI Lab 2기

Upstage AI Lab 2기 [Day101] NLP - Decoder Model (GPT) (이론)

Upstage AI Lab 2기
2024년 5월 8일 (수) Day_101

더보기

- [ ]  이론 강의 수강
    - [ ]  NLP Advanced (05/14 (화), 05/15 (수), 05/16 (목) 절반 )
        - [ o ]  Encoder Model (BERT)
            - [ o ]  Tokenizer 이해하기
        - [ ]  Decoder Model (GPT)
            - [ o ]  Decoder Model (GPT1) 이해하기
            - [ o ]  Decoder Model (GPT2,3) 이해하기

         - [ ]  Encoder - Decoder Model
             - [ ]  Encoder-Decoder Model (BART) 이해하기
         - [ ]  Next Encoder Model
             - [ ]  BERT 이후의 모델 이해하기
         - [ ]  대회 안내
             - [ ]  대회 소개
             - [ ]  베이스라인 코드 소개


- [ ]  수강한 강의 내용 정리하기
    - [ ]  Encoder Model (BERT)
    - [ ]  Decoder Model (GPT)
- [ ]  코드 필사
- [ ]  산책

CH4. Decoder Model (GPT)

Part1. Decoder Model (GPT1) 이해하기

GPT(Generative Pre-Training)

Transformer의 decoder 구조만 활용 → 생성에 강함.

다음 단어를 생성하는 방식으로 pre-training (Causal Language Model)

단방향(Unidirectional)

 

GPT1 : 12 decoders + BPE + Positional Embeddings

input sequence Masked Multi-Headed Self-Attention → Position-Wise Feed Forward Layer 반복 수

[NLP Advanced] (4-1) Decoder Model (GPT1) 이해하기 강의자료 중

 

Self-Attention : encoder, [MASK] 앞 뒤 단어 반영해 예측

vs.

Masked Multi-Headed Self-Attention : [MASK] 앞 단어만 반영해 예측

 

Pretraining GPT

: N개의 단어로 구성된 문장 N+1개 사전학습데이터 생성

special tokens : <sos>, <eos>

[NLP Advanced] (4-1) Decoder Model (GPT1) 이해하기 강의자료 중

 

Fine-tuning GPT

input : <s> text $ text <e>

$ : delimiter

<s>, <e> : 장황한 응답 생성 방지

Radford, Alec and Karthik Narasimhan. “Improving Language Understanding by Generative Pre-Training.” (2018).

1. Single Sentence Classification

    : <s> 문장 <e>

2. Textual Entailment

    : 두 문장의 관계. <s> 전제 $ 가설 <e> 

3. Similarity

    : 두 문장의 유사성. <s> 문장1 $ 문장2 <e><s> 문장2 $ 문장1 <e> (가능한 모든 순서 조합)을 각각 입력 및 학습

4. Question Answering and Commonsense Reasoning

    : <s> z q $ ak <e> 들을 각각 independently processed in the model, and the results are normalized with softmax

      z = context document, q = a question, {ak} = a set of possible answers

 

참고자료 :

https://d2l.ai/chapter_computer-vision/fine-tuning.html

https://jalammar.github.io/illustrated-gpt2/

 

 

Part2. Decoder Model (GPT2,3) 이해하기

GPT2 & GPT 3 : GPT1의 일반화 향상 for 하나의 모델로 여러 task 수행

(∵ Fine-tuning도 labeled data 필요 → zero-shot 성능의 중요성 강조)

GPT1과 동일한 구조 + layers ↑ + data size ↑ + max length

(Scaling Laws : Model Scale의 증가가 zero-shot 성능에 중요한 영향)

[NLP Advanced] (4-2) Decoder Model (GPT2,3) 이해하기 강의자료 중

 

GPT2 : Language Models are Unsupervised Multitask Learners

이전 : 학습하지 않은 task → 성능 NG

(1) 일반화 안됨 → 데이터 분포 변화에 취약

(2) labeled data 필요하다는 제약

해결책 : 일반화 성능 향상 + 모델 크기 증가

 

Multitask, One Model

1. 통일된 입출력 형식

    |- 입력 : 지시문 + Context

    |- 출력 : 정답

2. 지시문으로 task 구분

 

 

GPT 3 : Language Models are Few-Shot Learners

In-Context Learning Few-Shot 만으로 성능 향상

 

이전 : pre-training + fine-tuning (데이터셋 구축 pretrained model 학습 gradient update fine-tuned model)

GPT 3 부터 : pre-training. 끝. => 입력만 바꿔 하나의 모델로 여러 task 수행. 새로 학습 필요 x.

Few-Shot, One-Shot, Zero-shot

 

Zero-Shot 혹은 Few-Shot 만으로 fine-tuning과 비슷하거나 더 높은 성능을 보임

 

but 한계점 :

(1) 단어 반복 생성 / 일관성 저하 / 모순 발생 / 비교 작업 성능 저하

(2) 비용 문제 + 불편 : 원하는 task에 대해서만 학습하는 것이 어려움