ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • GPT & BERT
    NLP/2주차 2021. 9. 15. 12:05

    최근 트렌드

    • Transformer 모델과 self-attention block이 sequence encoder decoder로 주로 사용됨
    • 깊게 쌓은 transformer를 이용하여 NLP task를 많이 발전시킴
    • nlp뿐만 아니라 추천 시스템, 신약 개발, CV에도 사용되는 추세
    • 다만, 여전히 NLG를 위해서는 <sos> 토큰 부터 시작해서 순차적으로 단어를 하나씩 생성해야함 (greedy decoding)

    GPT-1

    • Special token을 이용해 transfer learning시 효율적으로 학습

    GPT-1의 구조

    • 성능이 아주 좋은 디코더
    • 적은 양의 데이터로도 높은 분류 성능
    • Task specific한 구조가 필요하지 않다 
      • Classification: extract token을 linear transformation 하여 감정 분류를 할 수 있다.
      • Entailment(논리 관계): 두 문장을 하나로 병합하고, 문장 사이에 delim token, 끝에 extract token 추가. Extract token을 이용하여 entailment 확인
    • Transfer Learning: encoder 부분은 사전학습된 파라미터를 이용하고(작은 lr), 새로운 Linear를 추가해준다(큰 lr).

    Task Specific 모델보다 더 좋은 성능

     

    • 인간은 새로운 task 학습을 위해 수많은 데이터를 필요로 하지 않는다
    • fine tuning 과정을 거치면서 모델이 하나의 task 만 수행 가능하게 되는 것은 비효율적이다 → Few-shot, One-shot, Zero-shot learning의 아이디어를 바탕으로 GPT-2 등장

     

    GPT-2

    • GPT-1과 구조가 다름

    • Few-shot, One-shot, Zero-shot learning의 새 지평을 제시

     

    GPT 계열 모델의 한계

    • weight update가 없다는 것은 새로운 지식 학습이 없다 → 시기에 따라 달라지는 문제에 대응 불가능
    • 인간은 여러 매체로 정보를 받아들이는 반면 GPT는 글로만 세상을 배운다 → 멀티모달 정보가 필요
    • 모델 사이즈만 키우는 것과 다른 방향 필요

     

    BERT

    • 기존의 모델들은 한쪽의 context만을 이용하는데 양쪽의 context를 이용하면 더 낫지 않을까? → MLM(Masked Language Model)
    • MLM은 input의 15%를 Mask 토큰으로 치환하고, 이를 예측하도록 함 → 실제 우리가 해결해야하는 task에서 mask token은 등장하지 않는다. Transfer Learning시 문제가 발생할 수 있다.
    • 따라서 15%의 80%는 mask로, 10%는 random한 단어로, 10%는 원래 단어 그대로 유지
    • NSM(Next Sentence Prediction) → 문장간의 관계를 학습하기 위해 주어진 두개의 문장이 연속되는 문장인지 학습한다. CLS 토큰을 분류

    • 모델 구조

    • Input Representation
      • WordPiece embedding(30,000 WordPiece) → Subword 이용
      • Learned Positional Embedding
      • [CLS] - Classification Embedding
      • Packed sentence embedding [SEP]
      • Segment Embedding - 어떤 문장에 속하는지 나타내기 위한 임베딩 벡터

    • Fine-Tuning

    • Evaluation
      • GLUE (General Language Understanding Evaluation)를 이용하여 평가했을때, BERT가 우수한 성능을 보임. https://gluebenchmark.com/
      • SQuAD(Stanford Question Answering Dataset)에서도 BER가 우수한 성능
     

    GLUE Benchmark

    The General Language Understanding Evaluation (GLUE) benchmark is a collection of resources for training, evaluating, and analyzing natural language understanding systems

    gluebenchmark.com

    • MRC 기반 QA 학습은 어떻게 진행되는가?
      • 정답 문구의 시작 위치와 끝 위치를 예측
      • 각 word를 임베딩하고, 이를 스칼라값으로 바꿔주는 FC layer를 학습 (이 값으로 Starting position을 예측)
      • 같은 방식으로 FC layer를 하나 더 학습하여 Ending position을 예측
      • 답이 없는 경우 CLS token을 이용
    • SWAG 데이터셋에서는 다음과 같은 방식으로 진행 
      • 첫 문장과 다음으로 나올 수 있는 문장들을 concat (예시에서는 총 4번의 concat). 
      • 각각의 concat된 문장들의 임베딩 벡터를 output layer를 통과시켜 스칼라 값으로 만들어주고, GT와 비교했을 때 정답의 스칼라값에 softmax를 취한 값이 최대가 되도록 softmax loss 이용.

    • 크기를 키울수록 성능이 증가

    GPT vs BERT

      GPT BERT
    Training Data Size BookCorpus(800M words) BookCorpus + Wikipedia(2,500M words)
    Training Special Tokens   [SEP], [CLS], sentence A/B embedding 
    Batch Size 32,000 words 128,000 words
    Task-specific fine-tuning 5e-5 lr for all fine tuning experiements task specific fine-tuning lr
    Direction Uni-directional Bi-Directional

    ※ 일반적으로 큰 batch를 사용하면 학습이 안정화되고, 성능이 좋아진다. 

     

    'NLP > 2주차' 카테고리의 다른 글

    Hugging Face Library  (0) 2021.09.17
    NLP 모델 정리  (0) 2021.09.16
    Pre-Tokenization  (0) 2021.09.15

    댓글

Designed by Tistory.