이번엔 OpenAI의 GPT1 논문을 리뷰해보고자 한다.
NLP 분야의 중심인 transformer에 대한 기본적인 논문들을 모두 읽어 본 후, transformer를 기반으로 한 첫 model paper 리뷰이다. 본 논문 리뷰 이후, GPT1 모델을 이용하여 엣지 디바이스에서 딥러닝 연산의 수행을 프로파일링하여 분석하고자 한다. 따라서, 논문에 대해 확실하게 이해를 하고, 코드 리뷰까지 진행하고자 한다.
Abstract
NLP는 텍스트 추론, 질문 응답, 의미적 유사성 평가, 문서 분류와 같은 다양한 분야에서 쓰이고 있다. 특정 작업을 학습하기 위한 라벨링 데이터는 부족하지만 라벨링 되지 않은 텍스트 데이터는 풍부하다. 따라서 본 논문은 대규모의 라벨링 되지 않은 텍스트 말뭉치들을 생성적 사전 학습과 fine tuning을 통해 성능 향상을 이루는 것을 입증한다.
I. Introduction
raw text에서 효과적으로 학습하는 능력은 NLP에서 지도 학습에 대한 의존도를 줄이는 역할을 한다. 그러나, 앞서 말했듯 labeled data의 양은 현저히 부족하기 때문에 여러 도메인에서 그 적용 가능성을 제한받는다. 이러한 상황에서 라벨이 없는 데이터를 활용하는 방식이 귀중한 제안이 된다. 즉, 비지도 방식으로 좋은 표현을 학습함을 통해 성능 향상을 이루어야 한다.
그러나, 라벨이 없는 텍스트에서 단어 수준 이상의 정보를 활용하는 것은 두 가지 주요 이유로 어려운 과제로 평가된다.
① 어떤 종류의 최적화 목표가 전이에 유용한 텍스트 표현을 학습하는데 가장 효과적인지 불분명함
② 학습된 표현을 목표 작업으로 전이하는 가장 효과적인 방법에 대한 합의가 없음
이러한 불확실성은 언어 처리를 위한 효과적인 반지도 학습 접근 방식을 개발하는 데 어려움을 초래했다.
따라서 본 논문은 다음과 같은 방식을 탐구한다.
- 비지도 사전 학습과 지도 미세 조정을 결합한 언어 이해 작업을 위한 반지도 접근 방식
- 목표 : 다양한 작업에 적은 적응으로 전이할 수 있는 범용 표현 학습
[학습 절차]
1) 라벨이 없는 데이터에 대해 언어 모델링 목표를 사용하여 신경망 모델의 초기 파라미터 학습
2) 이러한 파라미터를 해당하는 지도 목표를 사용하여 목표 작업에 적응시킴
Transformer의 구조를 통해 기존 RNN보다 텍스트에서 long-term dependency를 핸들링 할 수 있는 보다 구조화된 메모리를 제공하여 다양한 작업에 걸쳐 강력한 전이 성능을 제공한다.
II. Related Work
Semi-supervised learning for NLP
semi-supervised learning은 sequence labeling이나 text classification등 많은 관심을 끌고 있다. 이 패러다임의 초기 특징은 unlabeled data를 사용해서 word level이나 phrase-level을 계산하고 이를 feature로 사용하여 지도학습에 적응시키는 것이다. 그러나, 본 논문은 이러한 수준을 넘어서 sentence level의 더 높은 수준을 정보를 transfer하는 것이 목표이다.
Unsupervised pre-training
Unsupervised pre-training이란 semi-supervised learning의 special case로 볼 수 있다. 지도학습에서의 objective(최적화)를 찾는 대신 good initialization(좋은 시작점)을 구하는 것이 목표이다. 초기의 연구에서는 이미지 분류나 회귀와 같은 문제에서 이 기법을 사용하였고, 이후에는 정규화 체계로 작용해서 DNN의 더 나은 일반화를 가능하게 한다는 것을 입증했다. 최근에는 image classification, speech recognition, entity disambiguation, machine translation과 같은 다양한 작업에서 심층 신경망을 훈련시키는데 사용되었다.
- 본 논문과 비슷한 연구에서는 언어모델 objective를 사용하여 사전 학습을 진행하고 이를 목표 작업을 위해 미세조정한다. 그러나 이 연구에서는 LSTM을 사용하였는데, 짧은 범위의 데이터에서만 모델이 유효하였다. 반면, 본 논문에서는 transformer를 사용하여 긴 범위의 데이터에서도 유효하게 만든다. (transformer 논문에 대해 최소한의 변화만 요구)
Auxiliary training objective
Auxiliary training objective이란, 준지도 학습의 대안으로 생각하면 된다. 이는 supervised fine-tuning에서 비지도 pre-training의 목적함수를 추가하는 방식을 의미한다.
III. Framework
<두 단계의 훈련 절차>
- 대규모 텍스트 말뭉치에서 고용량의 언어 모델 학습
- fine-tuning을 통해 라벨링된 데이터를 사용해서 모델을 discriminative task에 적응시킴
- Unsupervised pre-training
비지도 말뭉치의 토큰들 u={u_1, u_2, ... ,u_n}가 주어졌을 때, 아래 likelihood를 maximize하는 방향으로 표준 언어 모델링 목적함수를 사용한다.
본 논문에서는 Transformer의 Decoder 부분을 사용했다. (Transforemr의 변형인 multi-layer Transformer decoder를 언어 모델로 사용) 이 모델은 multi-headed self-attention을 input context token들에 적용하며, 이후 position-wise feedforward layer를 거쳐 목표 토큰에 대한 출력 분포를 얻는 방식이다.
- Supervised fine-tuning
Unsupervised pre-training으로 모델을 훈련시킨 후에, 사용된 파라미터들을 목표 작업에 맞게 fine-tuning 하는 과정이다. 본 과정은 supervised이기 때문에 labeled data(앞으로 dataset을 T라고 가정)를 사용해야 한다.
C의 각 요소는 x^1, x^2, ..., x^m으로 이루어진 input token의 시퀀스와 label인 y로 구성된다.
위 그림처럼 pretrain된 모델의 Position-wise layer와 softmax layer 사이에 linear layer 하나를 추가하여 각 task마다 label y를 예측한다.(3) 이 식을 모든 dataset의 log likelihood를 최대화 하는 식으로 바꾸면 (4)와 같이 된다.
추가적으로 아까 위 Related Work 에서 auxiliary objective를 추가하면, 2가지의 성능 향상 효과를 이룰 수 있다.
1. supervised model에 일반화 성능 향상
2. 수렴 속도 가속
- Task-specific input transformations
앞서 언급했던 바와 같이 본 구조는 최소한의 변화로 여러 task를 다룬다. 기존 연구들은 전송된 representation 위에 새로운 아키테처를 하나 더 달아서 복잡한 구조였다. 이는 상당한 양의 task-specific의 customization이 필요하여 전이 학습을 사용하지 않았다. GPT1의 traversal-style은 구조화된 input으로 전이 학습을 최소한의 변화로 가능하게 하였다.
- Classification : 기존 분류 문제와 동일
- Textual entailment : 전체와 가정 두 가지의 시퀀스 토큰들을 중간 구분 문자($)를 사용하여 한 번에 네트워크에 forward
- Similarity : 두 문장의 유사성을 비교할 때는 어느 전제와 가정처럼 순서가 존재하지 않음. 따라서, 문장 순서를 반영하기 위해 (text1, text2), (text2, text1) 두 가지를 각각 모델에 forward 하여 마지막 linear layer에 들어가기 전 element-wise로 합하여 출력
- Question Answering and Commonsense Reasoning : ontext document z, 질문 q, 가능한 답변들 {a_k}가 주어진다면, 여기서 [z; q; $; a_k] 식으로 연결해줌. $ : 구분자 토큰) 이렇게 완성된 시퀀스들은 각각 독립적으로 모델에 입력되며, softmax를 통해 정규화(normalize)되고 가능한 답변들에 대한 출력 분포를 생산
IV. Experiments
[1] Set up
Unsupervised pre-training
언어 모델 학습을 위해서 BooksCorpus 데이터셋을 사용하였다.
- 다양한 장르에 속한 7,000권 이상의 출판되지 도서들로 구성 / 특히 이는 긴 범위의 연속된 text를 포함하는데, 이로 인해 생성 모델이 넓은 범위의 언어적 정보를 학습할 수 있음
또 다른 데이터셋인 1B Word Benchmark는 ELMo에서도 사용되었는데, 사이즈가 비슷하지만 문장 수준에서 섞여 있어서 넓은 범위의 정보가 파괴되어 있음
Model Specifications
전반적으로 original transformer work를 따른다.
Fine-tuning details
특별히 명시되지 않은 것들은 미지도 사전학습에 사용된 하이퍼파라미터들을 재사용했다.
drop out : 0.1 batch size : 32 epochs : 3 learning rate : 최대 6.25e-5 (linear learning rate decay schedule을 사용) |
[2] Supervised fine-tuning
① Natural Language inference(자연어 추론)
- 짝지어진 두 문장이 모순인지 중립인지를 판단하는 문제이다. Image captions(SNLI), 음성 기록, 유명 소설, 정부 보고서(MNLI), 위키피디아 문서(QNLI), 과학 시험(SciTail)과 뉴스 기사(RTE)등의 데이터셋으로 검증을 한 결과 RTE를 제외한 나머지 데이서테셋에서 유의미한 성능 향상을 보여줬다.
② Question answering and commonsense reasoning
- QA 문제로, 중학교와 고등학교 시험 문제들로 이루어진 RACE 데이터셋, 이야기에서 올바른 엔딩을 선택하는 문제를 다루는 Story Cloze Test 데이터셋을 사용하였다. Story Cloze에서는 약 8.9%, RACE 데이터셋에서는 전반적으로 약 5.7%의 성능 향상을 보여주었다.
③ Semantic Similarity
- 이는 두 문장이 의미적으로 같은지 다른지를 판단하는 문제이다. 사용한 데이터셋은 Microsoft Paraphrase corpus, the Auora Question Paris, Semantic Textual Similarity benchmark가 있다. 이 중 STSB와 QQP에서 SOTA의 성능을 끌어냈다.
④ Classification
텍스트 분류로 사용한 데이터셋으로는 문법적으로 맞는지를 판단하는 Corpus of Linguistic Acceptability(CoLA)와 단순히 이진분로 사용되는 Stanford Sentiment Treebank(SST-2)가 있다. CoLA에서는 기존 성능과 비교했을 때 큰 성능 향상을 이루었으며, SST2는 SOTA와 맞먹는 성능을 발휘했다.
V. Analysis
Impact of number of layers transferred
사용되는 transferred layer 개수에 따른 효과를 분석해보았다. MultiNLI와 RACE데이터셋에서 실험을 진행했으며, 좌측 그래프를 보면 transferring embedding들이 layer마다 최대 9%의 성능 향상을 일으킨다는 것을 알 수 있다. 이는 사전학습 모델의 각 layer가 유용한 기능을 포함한다는 것을 의미한다.
Zero-shot Behaviros
저자들은 왜 transformer를 사용한 language model 사전학습이 효과적인지를 밝히고자 했다. 이에 대한 가정은 근본적인 generative model이 language modeling의 capability를 향상시키고자 많은 작업들을 배울 수 있고, LSTM과 비교했을 때 transformer의 구조화된 attentional memory가 transfer시에 도움이 된다는 점이다. 이를 위해 저자들은 몇 가지의 휴리스틱한 solution들을 고안했는데, 이는 지도학습을 통한 미세조정 없이 generative model 그 자체로 작업에 사용해보는 것이다. 이 휴리스틱 solution의 결과가 우측 그래프에 나타나있다. 그래프를 보면 학습 횟수에 따라 안정적으로 꾸준히 성능이 증가하는데, 이는 생성적 사전학습(generative pretraining)이 광범위한 종류의 작업들을 배우는 것에 도움을 준다는 것을 의미한다. 또한 LSTM이 더 높은 편차를 보여주는데, 이는 transformer 구조의 귀납적 편향이 transfer를 돕는다는 것을 의미한다.
CoLA(linguistic acceptability) 데이터셋에서는, 생성 모델이 사용하는 token log-probability의 평균을 score로 사용했고, thresholding으로 예측을 만들었다. SST-2(감성 분석)는, 각 토큰에 "very"라는 토큰을 붙였고 language model의 출력 분포를 "positive"와 "negative"로 제한하여 더 높은 probability를 prediction으로 사용해서 측정하였다. RACE(QA)데이터셋에서는, generative model이 가장 높은 평균 token log-probability로 뽑아내는 것을 정답으로 측정하였고, DPRD(winograd schemas)에서는 확실한 대명사들을 가능한 지시대상 중 두 개로 교체하여 예측을 진행하였다.
Ablation studies
세 가지 ablation study를 진행하였다. 첫 번째는, 미세조정 시 보저 LM 목적함수를 사용하지 않고 성능을 관찰하엿다. 그 결과 보조 목적함수가 NLI task와 QQP에서 도움을 준다는 것을 확인했다. 또한 전반적으로 큰 데이터셋은 보조 목적함수로부터 도움을 받는 반면, 작은 데이터셋에서는 도움을 받지 못한다는 것도 확인했다. 두 번째는, 같은 framework를 사용하면서 2048 unit의 LSTM과 비교하며 Transformer의 효과를 분석했다. 결과는 LSTM을 Transformer 대신 사용할 때의 성능이 평균 약 5.6점 정도가 떨어졌다. LSTM은 오직 MRPC데이터셋에서만 Transformer보다 더 나은 성능을 보였다. 마지막으로, 논문에서 제시한 transformer구조를 사전학습을 거치지 않고 바로 작업에 맞춘 지도학습을 진행했을 때의 결과를 분석했다. 사전학습을 거치지 않는 것은 모든 작업에서의 성능 저하를 나타냈다.
Ref - 공부할 때 참고한 사이트들
[2] https://mountain96.tistory.com/40