Improving Language Understanding by Generative Pre-Training (GPT1) 논문 읽기

아우아우·2023년 7월 26일
0

논문 읽으며 정리

목록 보기
8/12

논문 링크 : 논문 링크

AI 붐을 일으킨 GPT-3의 초기 모델인 GPT 모델에 대한 논문 입니다. OpenAI에서 출간한 논문입니다.

Abstract

자연어 이해 : textual entailment, QA, semantic similarity 등을 포함한 다양한 task로 구성
-> 이것들을 위해서 unlabeled text data는 풍부하지만 labeled data는 부족하다. --> 우리는 unlabeled text data를 사용할 것이다.
이러한 데이터셋을 이용하여 학습한 model을 fine-tuning하여 큰 이득을 볼 수 있음을 보여주고, 12개의 task중 9개의 task에서 SOTA를 달성 하였다.

Introduction

raw text에서 효과적으로 학습을 하는 것은 NLP에서 지도 학습에 대한 의존성 완화에 중요하다.
대부분의 딥러닝 방법에서는 상당한 양의 labeled data가 필요하다.
-> unlabeled data를 사용할 수 있으면 labeled data를 만드는데 드는 비용을 비롯한 많은 자원을 줄일 수 있지 않을까? 그리고 더 많은 데이터로 학습을 하니 성능이 더 좋지 않을까?

unlabeled data로 학습을 하게 되면 가지는 문제점
1. 단어 수준 이상의 정보를 활용하는 것이 어렵다
2. 어떤 유형의 optimization objectives가 전달에 유용한 text 표현을 학습하는데 가장 효과적인지 불분명
3. unlabeled data로 학습된 표현을 다른 objective task로 전달하는 가장 효과적인 방법이 안정해졌다.
-> 이러한 불확실성들은 semi-supervised learning을 어렵게 하는 존재다.

모델 아키텍처 : Transformer
-> 반복 네트워크와 같은 대안에 비해 text의 장기 의존성 처리를 위한 구조화된 메모리로 성능을 증가
-> pretrain model에 대한 최소한의 변경으로 효과적인 fine-tuning이 가능

NLU, QA, Semantic similarity and text classification을 통하여 평가 하였으며, 12개의 task 중 9개의 task에서 SOTA를 달성 하였다.

Related Work

  • Semi-supervised learning for NLP
    논문은 semi-supervised learning(준지도학습)의 범주에 광범위하게 속한다.
    최근의 방식은 labeled data로 부터 단어 수준 이상의 의미론을 학습하고 활용하는 방향이였다. label이 지정되지 않은 corpus를 사용하여 구문, 문장수준 embedding은 텍스트를 다양한 대상 작업에 적합한 벡터 표현으로 encoding 하는데 사용 되었다.

  • Unsupervised pre-training
    비지도 학습은 지도학습 목표를 수정하는것보다 초기화 지점을 찾는것이 준지도 학습의 경우다
    -> 준지도학습을 통해 나중에 지도학습을 할 때 잘 되는 부분을 찾는다.(어느정도 일반화 된 부분)
    -> 논문에서 하고자 하는 바는 언어 모델링 목표를 사용하여 신경망을 pre-train 한 다음 지도학습을 통해 fine-tuning을 포함한다.
    하지만 pre-train 단계가 일부 언어 정보를 캡처하는데 도움이 된다
    LSTM을 사용시 : predict 영역이 짧다
    Transformer를 사용시 : 더 긴 범위의 언어 구조를 캡쳐 가능 뿐 아니라 좋은 성능을 입증
    --> 각 개별 task에 대해 상당한 양의 새로운 parameter를 포함하지만 transfer 하는 동안 model 아키텍처에 대한 최소한의 변경을 해야한다.

  • Auxiliary training objectives

Auxiliary training objectives 를 추가하는 것은 준지도학습의 대안적인 형태이다. 의미론적 역할 label을 개선하기 위해 다양한 보조 NLP 작업을 사용하였다.
더 최근에는 보조 언어 모델링 목표를 목표 작업 목표에 추가하고 sequence labeling 작업에 대한 성능 향상을 보였다.
-> 논문에서 실험도 보조 objectives를 사용하며, 비지도 학습은 목표 작업과 관련된 몇 가지 언어적 측면을 학습했다.

Framework

Train은 두가지 단계로 이루어진다.
1. 대규모 corpus를 이용하여 high-capacity language model을 얻는것
2. labeled data로 fine-tuning을 하는것

Unsupervised pre-training

token U=u1,...,unU = {u_1, ..., u_n}이 비지도 corpus가 주어지면 아래의 likelihood를 최대화 하기 위해 표준 언어 모델링 목표를 사용한다.

L1(U)=ilogP(uiuik,...,ui1;θ)L_1(\mathcal{U}) = \sum_{i}logP(u_i|u_{i-k},...,u_{i-1};\theta)

위의 식에서 k는 context window 크기이며, p는 parameter i를 가지는 신경망을 사용하여 모델링 된다.

논문은 Transformer의 decoder 계층을 샇아서 사용하며, context token에 대해 multi-head attention을 적용한 뒤 position-wise feedforward layer를 적용하여 output distribution을 만든다.

h0=UWe+Wph_0 = UW_e + W_p
hl=transformerblock(hl1i[1,n])h_l = transformer_{block}(h_{l-1}\forall i \in [1,n])
P(u)=softmax(hnWeT)P(u) = softmax(h_nW_e^T)

위의 식에서 U는 token의 context vector, n은 layer의 개수, WeW_e는 token embedding 행렬, WpW_p 는 position embedding 행렬이다.

Supervised fine-tuning

L1(U=ilogP(uiuik,...,ui1;θ))L_1(\mathcal{U} = \sum_{i}logP(u_i|u_{i-k},...,u_{i-1};\theta)) 이식을 object로 훈련을 한 후 label이 있는데이터 셋 C에서 각 instance는 label y와 함께 input token x1,...,xm{x_1,...,x_m}으로 구성.
input은 pretrain model을 통해 전달되어 final transformer block의 활성화 hlmh_l^m을 얻은 다음 parameter WyW_y와 함께 linear layer로 input 되어 y를 예측한다.

P(yx1,...,xm)=softmax(hlmWy)P(y|x^1, ... , x^m) = softmax(h_l^mW_y)

아래의 함수를 최대화 하는것이 목표이다.

L2(C)=(x,y)logP(yx1,...xm)L_2(C) = \sum_{(x,y)}logP(y|x^1,...x^m)

fine-tuning의 보조목표로 언어모델링을 포함하는것이 supervised model의 일반화를 개선하고 수렴을 가속화 함으로써 학습에 도움이 된다
-> 보조 목표로 성능이 향상되는걸 발견
아래와 같은 목적함수를 최적화 한다

L3(C)=L2(C)+λL1(C)L_3(C) = L_2(C) + \lambda * L_1(C)

Task-specific input transformations

기존 task에서는 전달된 표현 위에 task 별 아키텍처를 학습하게끔 하였다.
-> 추가적인 구성요소에 대해 전이 학습을 사용하지 않는다는 문제

논문은 pretrain model이 처리 할 수 있게끔 struted input을 변환하는 방식을 사용
모든 변환에는 랜덤으로 초기화된 시작 및 종료 토큰을 추가하는것이 추가된다.

  • Textual entailment
    entailment 작업의 경우 전제 p와 가설 token sequence 사이에 구분자 $로 연결한다.

  • Similarity
    비교 중인 두 문장의 고유한 순서가 없기에 이를 반영하기 위해 가능한 문장 순서를 모두 포함하고 각각 독립적으로 처리하여 linear layer에 입력되기전 요소 단위로 추가되는 두 sequence 표현을 생성

  • QA 및 commonsense Reasoning
    context 문서 z, 질문 q, 답변 세트 ak가 제공된다.
    각 context와 질문을 가능한 답변에 연결하고, 그 사이에 구분자를 추가하여 [z; q; $; ak]를 얻는다. 이러한 sequence는 각 모델과 독립적으로 처리되어 softmax를 통해 정규화 되어 출력 분포를 생성한다.

Experiments

Setup

  • Unsupervised pre-training
    학습을 위해 books corpus dataset을 사용하였으며, long sentence가 포함되어 생성모델이 장거리 정보를 조건화 하는 것을 배울 수 있다.

  • Model specifications
    masked multihead attention 768차원 및 12개의 attention head를 가진 12layer decoder로 훈련을 진행

  • Fine-tuning details
    대부분에 작업에 대해 논문에서는 6.25e-5의 학습률과 32의 배치크기를 사용했으며, 3epoch를 사용하였다.

Supervised fine-tuning

  • Natural Language Inference

    -> biLSTM 모델보다 성능이 낮으며, 큰 데이터 셋에 대해서는 좋은 성능을 보인다.

  • Question answering and commonsense reasoning
    Story Cloze test를 평가할때 장거리 context를 효과적으로 처리하는 모델의 능력을 보여주었다.

  • Semantic Similarity
    의미적으로 동일한지 여부를 예측하는것이 포함되어 있다.

  • Classification
    SOTA 결과를 얻어 내었다.

Analysis

  • Impact of number of layers transferred

    layer 수가 증가할 수록 성능이 좋더라...

  • Zero-shot Behaviors
    Transformer의 더 구조화된 메모리가 LSTM에 비해 transfer에 도움을 준다. Figure2의 right 참고

  • Ablation studies

  1. fine-tuning 동안 보조 LM없는 GPT 방식의 성능 조사
  2. 동일 framework를 사용하여 단일 layer 2048 unit LSTM과 비교하였을때 성능
  3. pre train 없이 지도 학습 방법에 대해 직접 훈련된 Transformer와 비교

Conclusion

  1. 단일 작업에 구애 받지 않는 모델이다.
  2. 상당한 지식과 장거리 의존성을 처리 할 수 있어 여러 자연어 문제를 해결 할 수 있다.
  3. Unlabeled data를 훈련에 사용하여 성능 향상이 가능함을 보였다.

1개의 댓글

comment-user-thumbnail
2023년 7월 26일

유익한 글이었습니다.

답글 달기