[논문 full 번역 + 이해를 위한 추가설명] GTP-1, Improving Language Understanding by Generative Pre-Training

+ 이나스AI에는 인공지능 관련 다양한 강의가 있습니다.

- Object detection, Text To Speech, Reinforcement learning, OCR, Chatbot, Time series prediction,

- Meta learning, eXplainable AI, Transformer/BERT/GPT, Graph-based ML, etc

- 소스코드, 다이어그램 및 중간데이터에 기반하여 인공지능 알고리즘들의 작동원리와 구조를 이해하기 쉽고 정확하게 설명합니다.


+ 작업할 때 켜놓는 라이브 스트리밍 study with me 채널도 운영하고 있습니다.



Abstract

자연어 [natural language] 이해는, 텍스트의 함의 [textual entailment], 질문에 대한 답변, 의미론적 유사성 [semantic similarity] 평가, 문서 분류와 같이 넓고 다양한 작업과 관련된다. 레이블링 되지 않은 텍스트 말뭉치 데이터는 많이 존재하는 반면, 학습을 위한 레이블링된 텍스트 데이터는 부족하다. 이러한 상황은 위와 같은 다양한 작업을 위해 모형을 훈련하는 것을 어렵게 한다. 위와 같은 작업에 대하여, 먼저 텍스트를 생성할 수 있는 언어 모델을 레이블링 되지 않은 다양한 텍스트 말뭉치 데이터로 사전학습하고, 이 사전 학습된 모형을 특정 작업에 상응하도록 레이블링된 텍스트 데이터로 fine tuning 함으로써 큰 성능향상을 달성할 수 있다는 점을 입증했다. 이전의 접근법과 다르게, 우리는, fine-tuning 시에, 특정 작업에 적합하도록 입력을 변환하는 방법을 사용했으며, 이러한 접근법은 모형의 구조를 최소한으로 변경하면서 사전학습된 모형의 언어이해를 특정작업에 효율적으로 전달할 수 있게 했다. 자연어 이해에 관한 다양한 benchmark 데이터를 사용하여 우리 방법이 효율적임을 입증했다. 우리가 개발한 특정작업에 의존적이지 않은 일반적인 모형 (사전학습된 GPT) 조차, 특정 작업을 위해 설계되고 훈련된 방식의 모형보다 높은 성능을 보였고, 12개의 작업 종류 중 9개의 작업에서 현존 최고 성능 [SOTA, State Of The Art]를 달성하였다. 구체적으로, 상식 추론[common reasoning] (Stories Cloze Test) 에서 8.9%, 질문답변 (RACE)에서 5.7%, 텍스트 함의 (MultiNLI)에서 1.5%의 향상을 달성하였다.


1 Introduction

자연어처리 분야에서 supervised learning 방법 사용 시 레이블링된 데이터에 의존하게 되는데, 이러한 의존성에서 탈피하려면, 레이블링이 없는 텍스트로부터 효과적으로 학습하는 능력을 갖는것이 중요하다. 대부분의 딥러닝 방법들은 상당량의 레이블링된 데이터를 요구하는데, 이러한 상황은 레이블링된 데이터를 얻기 힘든 다양한 분야에서 딥러닝이 사용되는 것을 어렵게 한다. 이러한 상황에서, 레이블링 되지 않은 데이터에서 언어학적 정보를 최대한 활용할 수 있는 모형은 시간과 비용을 많이 소모하는 레이블링 데이터를 사용하는 방식을 대체하는 방법이 될 수 있다. 나아가, 레이블링 없이 텍스트 데이터를 숫자로 잘 표현하는 방법을 학습할 수 있다면, 이러한 텍스트에 대한 좋은 representation을 활용하여, supervised learning 모형의 성능을 향상시킬 수도 있다. 위 내용과 관련하여 현재까지 가장 설득력있는 근거는 사전학습된 word embedding 을 사용하는 것이다. 이 방법을 통해 다양한 자연어 처리 작업에서 성능향상이 있었다. 

하지만, 레이블링되지 않은 텍스트로부터, 단어 단위의 정보 보다 더 많은 정보를 활용하는 방법은 두 가지 이유로 인해 어렵다. 첫째로, 사전 학습된 지식을 전달할 때 사용되는 텍스트 표현 [text representation]을 unlabeled 텍스트에 기반하여 학습할 때, 어떤 종류의 최적화 목적을 사용하는 것이 가장 효율적인지 명확하지 않다. 최근의 연구는 언어 모델링, 기계 번역, 담화 응집성 [discourse coherence] 과 같은 다양한 훈련 목적을 시도하였는데, 각 방법은 다른 작업들에 있어서 타 방법들보다 성능이 높았다. 둘째로, 학습된 텍스트 표현 [representation] 을 특정 목표 작업에 전달하기 위한 가장 효과적인 방법에 대한 합의가 아직 없다는 점이다. 이를 위해 현재 존재하는 기술들은 특정 목표 작업을 위한 모델 구조의 변경, 복잡한 학습 전략, 보조적인 학습 목표 (loss function 같은) 와 같은 것들이 조합된 방법을 사용한다. 위에서 언급된 불확실성들은 언어 처리를 위한 효과적인 semi-supervised learning 접근법이 개발되는데 어려움을 주었다.

이 연구에서, 우리는 언어 이해 작업을 위한 semi-supervised 접근법을 제안한다. 이 semi-supervised 접근법은 unsupervised 방식의 사전학습과 supervised 방식의 fine-tuning 으로 이루어 진다. 우리의 목표는 모형이 언어에 대한 좋은 표현 [representation]을 학습하도록 하는 것과, 이러한 언어 표현이 다양한 작업에 적용될 수 있도록 하는 것이다. 레이블링 되지 않은 텍스트 데이터는 방대하게 존재하고, 손수 레이블링한 텍스트 데이터는 적은양으로 존재한다고 생각한다. 우리의 방식은 레이블링된 텍스트 데이터의 도메인과 레이블링 되지 않은 텍스트 데이터의 도메인이 동일하지 않아도 사용 가능하도록 개발되었다. 우리가 개발한 GPT 모델은 두 단계의 훈련 절차를 사용한다. 먼저, unlabeled 데이터에 기반하여 언어 모델을 훈련하여 사전학습된 모형 (파라미터)를 얻는다. 그 이후, 앞서 훈련한 파라미터를 supervised learning 방식으로 학습하는 목표 작업에 사용한다.

GPT 모형 개발을 위해, 우리는 Google의 Transformer를 사용했다. Transformer는 기계 번역, 문서 생성, 구문 분석 [syntactic parsing] 과 같은 다양한 작업을 잘 수행할 수 있다. Transformer 모형은 RNN과 다르게 문장이 길어질 때, 단어들 사이의 의존성을 잘 고려할 수 있기 때문에, transformer 의 구조를 차용한 GPT 모형도 사전학습 이후 다양한 작업에 적용될 때 좋은 성능을 달성할 수 있었다. GPT 모형 사전학습 이후, fine tuning 할 때, traversal-style 접근법에서 착안하여, 각 작업에 맞는 입력 형태로 데이터를 구성하여 진행했다. 그 방법으로는 입력 텍스트를 하나의 연속된 토큰으로 변환해 주는 것이다. 이러한 입력 데이터에서의 구조 변환은 사전 학습 모델의 구조를 최소한으로 변경하게 도와주었고, 해당 내용에 관해서는 experiment 섹션에서 보다 자세하게 다룰 것이다.

우리는 우리의 접근법을 4종류의 언어 이해 작업으로 평가했으며, 그 종류는 다음과 같다 : 자연어 추론 [natural language inference], 질문 답변, 의미론적 유사성 [semantic similarit], 텍스트 분류. 특정 작업을 위해 훈련되지 않은 우리의 사전학습 모델은 특정 작업을 우해 설계되고 훈련된 다른 모델들 보다 12개의 작업 종류 중 9개의 작업 종류에서 최고의 성능 [State Of The Art] 를 달성하였다. 예를 들어, 상식 추론[common reasoning] (Stories Cloze Test) 에서 8.9%, 질문답변 (RACE)에서 5.7%, 텍스트 함의 (MultiNLI)에서 1.5%, 그리고 최근에 도입된 GLUE multi-task benchmark에서는 5.5% 의 성능 향상을 달성하였다. 우리는 사전학습모형에 대해 네가지의 세팅으로 zero-shot 방법을 적용했고, 그 결과 사전학습모형은 추가적인 작업 (downstream tasks)을 시행 할 때, 유용한 언어학적 지식을 획득함을 알 수 있었다.


2 Related Work

Semi-supervised learning for NLP 

우리의 GPT 모형은 자연어를 위한 semi-supervised learning 방식으로 분류될 수 있다. 이러한 paradigm은 다음과 같은 작업들에 적용이 됨으로써 많은 주목을 끌었다 : sequence labeling, 텍스트 분류. Semi-supervised의 첫 시도는 unlabeled 데이터에서 단어 단위 또는 구 단위의 통계를 계산할 때 사용된 것이며, 이러한 통계값은 supervised 모형에서 feature들로 사용되었다. 최근 몇년 동안, 연구자들은 unlabeled 텍스트 데이터로 훈련되어 산출된 word embedding 사용의 장점을 입증했다. 이러한 word embedding 을 사용함으로써 다양한 작업들에서 성능이 향상되었다. 그러나, 사전 학습된 word embedding은 주로 단어 단위의 정보를 훈련 목표 모형에 전달한다. 반면에, 사전학습된 GPT 모형을 활용하여 더 고차원의 의미를 훈련 목표 모형에 전달하는 것이 목표이다.

최근에는 단어 단위의 의미 이상의 정보를 학습하고 활용하는 방법에 대한 연구가 진행되고 있다. 다양한 목표 작업을 할 때,  텍스트를 적합한 벡터 표현으로 인코딩하기위해서 unlabeled 텍스트 데이터로 훈련함으로써 얻을 수 있는 구-단위 또는 문장-단위의 embedding가 사용되었다. 


Unsupervised pre-training 

Unsupervised 방식의 사전학습 [pre-training]은 semi-supervised learning 방식의 특수 케이스라고 볼 수 있다. 사전학습된 파라미터는, supervised learning 의 학습 목표 <예를 들어, loss function>를 변경하지 않고 탐색된 일종의 supervised 모형을 위한 최적의 초기값이라고 볼 수 있다. 이러한 사전학습 모형 방법은 이미지 분류와 회귀 작업에서 사용되었다. 이후 연구에서, 사전 학습된 모형은 딥러닝 방법에서 더 높은 일반화를 위한 규제 [regularization] 전략으로도 사용될 수 있음을 밝혔다. 최신의 연구에서는, 사전 학습 모형은 이미지 분류, 음성 인식, entity disambiguation, 그리고 기계 번역과 같이 다양한 작업들에 있어 딥러닝 모형 훈련을 도와주는데 사용되었다.

우리의 방법과 가장 유사한 연구는 언어 모델링의 목표를 가지고 모형을 사전 훈련하고, 이렇게 사전 훈련된 언어 모델을 레이블된 데이터와 함께 목표 작업 시나리오로 fine-tuning 하는 방식이다. Dai, Howard, Ruder 는 텍스트 분류 성능을 향상시키기 위하여 이러한 방식을 사용했다. 하지만, 사전 훈련 단계를 거침으로써 어느정도의 언어학적 정보를 학습할 수 있지만, 그들의 방법은 LSTM 모형에 기반한 것이기 때문에, 그 방법에서의 예측 능력은 짧은 범위로 제한된다. 반면에, 우리의 GPT 모형은 transformer 를 사용하기때문에, 더 긴 범위의 언어학적 구조를 학습할 수 있다. 이 결과는 experiments 섹션에 기술되어있다. 나아가, 우리의 GPT 모델은 자연어 추론, 의역 감지 [paraphrase detection], 이야기 완성 [story completion] 과 같은 다양한 종류의 작업에 효과적임이 입증되었다. 다른 접근법들은 사전 훈련된 언어 모형 또는 기계 번역 모델로 부터의 hidden representation를 목표 작업에 있어 supervised 방식으로 모형을 훈련할 때 보조적인 feature로서 사용한다. 이러한 접근법은 각각의 목표 작업마다 상당량의 새로운 파라미터를 도입해야하지만 <fine-tuning 할 때 기존 사전 학습된 모형에서 많은 변경이 필요하다는 의미>, 우리의 GPT 방식은 fine-tuning 시에 GPT 모형에 최소한의 변경만을 요구한다. 


Auxiliary training objectives

보조적인 unsupervised training objectives 를 추가하는 것은 semi-supervised 학습의 변형적 방법이다. Collobert와 Weston의 이전연구는 semantic role labeling 에서의 성능향상을 위하여, POS 태깅, chunking, named entity recognition, 언어 모델링과 같은 다양한 종류의 보조적인 자연어 처리 작업을 사용했다. Rei는 훈련 목표 작업에 보조적인 언어 모델링 학습을 추가했고, 훈련 목표 작업인 sequence labeling 작업에서 성능향상이 있었음을 보고했다. GPT를 사용한 우리의 실험에서도 보조적인 훈련 목표를 사용한다. 하지만, 우리가 입증했듯이, unsupervised 사전학습은 훈련 목표 작업과 관련된 언어학적 측면을 추가된 보조적 학습과는 별개로 이미 잘 학습하는 편이다.


3 Framework

GPT에서 훈련 절차는 두 단계로 구성된다. 첫째로, 레이블되지 않은 빅 텍스트 데이터로 사이즈가 큰 언어모델을 학습한다. 둘째로, 이렇게 사전 학습된 GPT를 레이블된 데이터로 fine-tuning 훈련한다.


3.1 Unsupervised pre-training

레이블되지 않은 token $$$ U = \{u_1,\cdots, u_n\} $$$ 이 있다고 하자. <예를 들어, U={나는, 학교에, 일찍, 갔다}> 우리는 표준적인 언어 모델링 목적식을 사용했고, 이 목적식은 다음과 같은 likelihood로 표현되며, 최대화되어야한다.

$$$$L_1(u) = \sum\limits_{i} \log{P(u_i|u_{i-k},\cdots,u_{i-1};\theta)} \;\;\;\;\; (1)$$$$

k는 context window의 크기이며, 조건부 확률 P는 parameter $$$\theta$$$를 갖는 neural network로 모델링 된다. <(1)식으로 예를 들면, $$$$L_1(u) = \log{P(\text{학교에}|\text{나는};\theta)}+ \log{P(\text{일찍}|\text{학교에, 나는};\theta)}+ \log{P(\text{갔다}|\text{일찍, 학교에, 나는};\theta)}$$$$ 와 같이 될 것 이다> 사전 훈련 단계에서, GPT의 parameter $$$\theta$$$는 stochastic gradient descent 방법으로 업데이트 되었다.

우리는 transformer의 decoder를 여러개 쌓아 GPT 언어 모델을 구축했다. 구축된 GPT 모델에, input token 데이터가 주어지면, multi-headed self-attention 연산이 수행되었다. 이후 예측해야하는 목표 token에 대한 출력 분포를 산출하기 위하여 position-wise feedforward layer 를 사용했다. <만약 출력해야하는 token이 {나는, 학교에, 일찍, 갔다} 라고 한다면, 각 token에서 아래와 같이 softmax를 거친 확률분포가 되어야한다는 뜻이다, 사전에 정의된 token의 총개수는 8000개라고 가정하였다.>


$$$$h_0 = UW_e + W_p$$$$

$$$$h_l = \text{transformer_block}(h_{l-1}), \; \forall{i} \in [1,n] \;\;\;\;\; (2) $$$$

$$$$P(u) = \text{softmax}(h_nW_e^T)$$$$

$$$U=(u_{-k},\cdots,u_{-1})$$$는 token의 context vector이고, n은 layer 수, $$$W_e$$$ 는 token embedding matrix, $$$W_p$$$는 position embedding matrix이다. <$$$U=(2, 5, 33, 44)$$$ 와 같은 벡터이고 각 숫자는 2=나는, 5=학교에, 33=일찍, 44=갔다 를 의미한다>


3.2 Supervised fine-tuning

목적식 (1)를 통해 GPT를 사전 학습 했다면, 이 사전 학습된 GPT의 parameter들을 supervised 목적 작업에 적용할 수 있다. 레이블링된 데이터셋을 C라고 하겠다. C의 각 샘플은 입력 token sequence $$$x_1,\cdots,x_m$$$와 레이블 y를 가진다. <아래 처럼 표현 할 수 있다>



Input token은 사전학습된 GPT에 들어가고, 마지막 transformer block에서 activation $$$h_l^m$$$을 

얻는다. $$$h_l^m$$$은 parameter $$$W_y$$$를 갖는 추가된 linear output layer에 입력되고, 최종 예측 $$$y$$$를 얻는다.

$$$$P(y|x^1,\cdots,x^m) = \text{softmax}(h_l^m W_y) \;\;\;\;\; (3)$$$$

이러한 방식의 훈련 시나리오는 다음과 같은 최대화해야하는 목적식으로 모델링된다.

$$$$L_2(C) = \sum\limits_{(x,y)} \log{P(y|x^1,\cdots,x^m)} \;\;\;\;\; (4)$$$$

<위 식을 예시로 표현하면, $$$$L_2(\text{movie_review_dataset}) = \log{P(positive|\text{this, movie, is, interesting})} + \log{P(negative|\text{this, movie, is, boring})} + \cdots$$$$>
사전 학습된 GPT 언어모델에 대한 loss를 fine-tuning loss에 보조적으로 추가하는 것은 두 측면에서 학습에 도움이 되었다. 첫째로, supervised 모형의 일반화 [generalizaton]을 향상시켰고, 둘째로, 수렴을 더 빠르게 하였다. 과거의 연구에서도 이러한 방식으로 보조적인 목적식을 타겟 목적식에 추가하는 것이 성능을 향상시켰다고 보고한바있다. 구체적으로, GPT를 fine-tuning 할 때, 목적식은 다음과 같이 된다. $$$\lambda$$$는 hyperparameter로 가중치이다.

$$$$L_3(C) = L_2(C) + \lambda*L_1(C) \;\;\;\;\; (5) $$$$
<GPT 사전훈련에 사용된 목적식 $$$L_1$$$에 데이터셋 C가 들어간점을 확인한다> Fine-tuning 과정에서 훈련되는 parameter는 새로 추가한 layer에 있는 $$$W_y$$$ 와 구분자 [delimiter] token 을 위한 embedding 이다 (이 내용은 Section 3.3에서 설명된다)




Figure 1: (left) 이 연구에서 사용된 Transformer 구조와 훈련 목적을 보여준다. <Transformer의 decoder를 사용하는 것이다. 단, encoder가 없으므로 transformer decoder의 encoder-decoder self-attention 부분은 제외되었다> (right) 각기 다른 작업을 위한 fine-tuning을 할 때, 입력값 구조의 변경을 보여준다. 입력값의 구조가 각 작업에 따라 다르기는 하지만, 전체적으로 보면 token sequence에 불과하고, 따라서, 사전 훈련된 GPT에 들어가서 처리될 수 있다. 이후에, 각 작업에 맞는 linear+softmax layer를 통과시킨다.


3.3 Task-specific input transformations

텍스트 분류와 같은 몇몇 작업에 대해서, 우리는 위의 기술된 방법에 따라 사전 학습된 GPT를 fine-tune 했다. 질문 답변, textual entailment 와 같은 몇몇의 다른 작업들에서는 정렬된 문장 쌍, 세개의 문서 [triplets of document], 질문, 답변과 같은 구조화된 입력 데이터를 갖는다. 우리의 사전 학습된 GPT는 unlabeled된 텍스트로 훈련되었기때문에, 사전 학습 GPT를 fine-tuning에 적용하기 위해 입력 데이터의 구조에서 약간의 변경이 필요하다. 이전의 연구는 사전학습 모델로 부터 전달된 representaton 위에서 목표 작업에 맞게 설계된 모델 구조를 통해 학습하는 방식을 제안했다. 그러한 접근법은 작업에 맞게 모델 구조를 설계해야하는 많은 변경을 발생시킬뿐더러, 이렇게 변경된 구조의 모델은 원래의 모델과 그 구조가 다르므로 transfer learning 방식을 사용할 수 없다. 대신에, 우리는 순회 접근법 [traversal-style approach]을 사용하였다. 이 방법에서 우리는 구조화된 input을 사전 학습된 GPT가 처리할 수 있는 형태인 정렬된 sequence로 변경했다. 이러한 input 변환은 여러 작업들에 대해 fine-tuning을 수행할 때, GPT 모델에 큰 변경을 요구하지않게 한다. 우리는 아래 내용에서 이러한 input 변환에 대한 간략한 설명을 제공하며, Figure 1에서는 관련하여 시각적 묘사를 제공한다. 모든 변환은 무작위로 초기화된 시작과 종료 token인 (<s>, <e>) 를 추가하는 것을 포함한다.


Textual entailment

텍스트 함의 작업에 대해서, 우리는 전체 문장의 token sequence p와 가설 문장의 token sequence h를 연결하며, 두 token sequence 사이에 구분자 token $를 사용하여 구분한다.


Similarity

유사성 판단 작업에 대해 생각해보면, 두 문장이 비교될 때, 타고난 순서는 존재하지 않는다. 이러한 특성을 반영하기 위해, 우리는 input sequence를 변경했다. 문장1-문장2, 문장2-문장1와 같이 두개의 가능한 순서를 포함하도록 구분자를 사용하여 input 데이터를 구축하였다. 이렇게, 구성된 두개의 데이터를 사전학습된 GPT에 넣고 두개의 예측된 sequence representation $$$h_l^m$$$을 생성한다. 그런 뒤, 두 representation들을 element-wise 방식으로 합산한 뒤, linear output layer에 전달한다. 


Question Answering and Commonsense Reasoning

이러한 작업을 위해, context document z, 질문 q, 가능한 답변 k개 $$$\{ a_k \}$$$ 가 주어져야한다. 그런 뒤, document context z와 question q를 연결하고, 구분 token을 삽입한 뒤, 답변 $$$a_k$$$를 연결하여, $$$[z;q;$;a_k]$$$를 생성한다. 구성된 각 sequence는 독립적으로 사전 학습된 GPT 및 추가된 linear layer에서 처리되고, 결과값들은 softmax로 normalization 하여, 가능한 답변에 대하여 output distrbution을 구한다.


4 Experiments

4.1 Setup

Unsupervised pre-training

GPT 언어 모델을 unsupervised 사전 학습 하기위하여 BooksCorpus dataset을 사용하였다. 이 dataset은 7000개의 미출판된 책들로 구성되어있으며, Adventure, Fantasy, Romance와 같은 다양한 장르를 포함한다. 중요한점은 이 dataset은 긴 문장을 포함한다는 것이다. 이 점은 생성모델인 GPT가 긴 범위에 포함된 정보를 기반으로 학습될 수 있도록 한다. 대체가능한 dataset은 1B Word Benchmark이며, 앞에 언급된 방식과 비슷하게 ELMo에 의해 활용되었다. 1B Word Benchmark은 거의 동일한 크기를 지니지만, 문장 단위에서 무작위로 섞여있고, 이러한 점은 긴 범위의 구조를 파괴한다. 우리의 언어 모델 GPT는 이러한 데이터에 대하여 token 단위로 적용되었을 때, 아주 낮은 18.4의 perplexity 를 달성하였다


Table 1 : 이 연구의 실험에서 사용된 다양한 작업 및 dataset들


Model specifications

우리의 GPT 모형은 전체적으로 transformer 연구 방법을 따른다. 우리는 masked self-attetion head를 갖는 12-layer decoder로 이루어진 transformer를 훈련했다 (768 차원의 states와 12개의 attenton heads가 사용되었다). Position-wise feed-forward networks에서, 우리는 3072 차원의 states를 사용했다. Parameter 업데이트를 위해 Adam optimization 방법을 사용하였고, learning rate 최대값은 2.5e-4로 하였다. Learning rate는 0에서 시작해 첫 2000번의 업데이트 동안 선형적으로 증가되었고, cosine schedule을 통해 0으로 annealed 되었다. 512개의 입력 token을 갖는 데이터에 대하여, 무작위로 샘플링된 64개의 mini-batch로 100 epoch 만큼 훈련하였다. Transformer 모형이 그렇듯 GPT 모형에서도 layer normalization 이 모델 전반에 걸쳐 적용 되었다. Parameter 초기화는 N(0, 0.02) 로 시행되었다. Tokenizaion을 우해 BytePair Encoding (BPE) 방법을 사용하였다. 추가적으로 residual, embedding, regularization을 위해 0.1 비율의 attention dropout 을 사용하였다. GPT 모형에서 bias가 아닌 모든 parameter들에 대해, 변형된 L2 regularization을 w=0.01과 함께 사용하였다. Activation function은 Gaussian Error Linear Unit (GELU)를 사용하였다. 우리는 sinusoidal 기반의 positional embedding 대신에 학습되는 position embedding을 사용하였다. <Transformer 에서는 sine 및 cosine 함수 기반으로 positional embeding 을 생성하였음> BooksCorpus dataset의 raw text를 cleansing 하기위하여 ftfy library를 사용하였고, tokenizer는 spaCy library 를 사용하였다.


Fine-tuning details

Fine-tuning에서 특정 hyperparameter를 지정하지 않는 한, 우리는 unsupervised pre-training에서 사용된 hyperparameter를 재사용했다. 사전 학습된 GPT에 붙인 classifier에 dropout을 0.1 비율로 추가하였다. 대부분의 작업들에서 learning rate는 6.25e-5로 설정되었고, mini-batch 크기는 32로 사용되었다. GPT는 빠르게 fine-tuninig 되었다. 3 epoch 정도의 훈련이면 대부분의 케이스에서 충분했다. 훈련 데이터의 0.2% 이상으로 warmup을 하면서, 선형적인 learning rate decay schedule 을 사용했다. $$$\lambda$$$는 0.5로 설정되었다.


4.2 Supervised fine-tuning

우리는 다양한 supervised 작업들에 대해 실험을 진행했다. 작업의 종류는 자연어 추론, 질문 답변, 의미론적 유사성, 문서 분류였다. 이러한 작업들 중 일부는 최근 출시된 GLUE multi-task benchmark에서 사용 가능하며, 이 연구 또한 이 benchmark를 사용하였다. Figure 1은 시행된 작업들과 dataset들에 대해 소개한다.


Natural Language Inference

자연어 추론 [natural language inferencec, NLI]은 텍스트의 함의를 인식하는 작업으로 알려져 있다. 자연어 추론은 문장 쌍을 읽은 두, 두 문장의 관계 (함의 [entailment], 모순 [contradiction], 중립) 을 판단하는 것이다. 


Although there has been a lot of

최근 자연어 추론에 대한 관심이 많아지고 있지만, 이 작업은 lexical entailment, coreference, 그리고 lexical 및 syntactic 모호성과 같은 다양한 현상의 발생으로 인해 수행되기 어렵다고 알려져 있다. 우리는 다양한 source를 가지는 5개의 datasets 으로 평가했으며, 이 평가 dataset들은 image captions (SNLI), 번역된 연설, 인기있는 소설, 정부의 보고 (MNLI), Wikipedia 기사 (QNLI), 과학 문제 (SciTail) 그리고 신문 기사 (RTE) 들을 포함한다.

Table 2는 각기 다른 NLI 작업들에 있어서 우리의 GPT 모델에서 수행한 다양한 결과들과 이전의 SOTA 접근법들에 대해 상세하게 보고한다. 우리의 방법은 5개의 dataset들 중 4개의 dataset에서 baseline보다 높은 성능을 보여주었다. 이전의 최고 결과와 비교하여 MNLI에서 1.5%, SciTail에서 5%, QNLI에서 5.8%, SNLI에서 0.6%의 향상을 보여주었다. 이러한 결과는 우리의 GPT 모형이 여러 문장들에서 더 나은 추론 능력과 언어학적 모호성을 다루는 면에서 우수성이 있음을 입증한다. 우리가 평가했던 dataset들 중에서 가장 작은 dataset중 하나인 RTE에서 (2490 examples), 우리의 GPT는 56%의 accuracy를 달성했고, 이것은 multi-task biLSTM 모형에서 보고한 61.%보다 낮은 수치이다. 더 큰 NLI dataset에서 우리의 접근법은 높은 성능을 보여주었는데, 이것은 우리의 GPT 모델이 multi-task 훈련에서 이점이 있음을 시사하지만, 아직 실험적으로 탐색되지는 않았다.


Table 2 : 자연어 추론 작업에서 실험 결과. 우리의 GPT 모형의 결과를 현재의 SOTA 방법과 비교하였다. 5x는 5개의 모형을 ensemble한 것을 가리킨다. 모든 dataset들은 성능 지표로써 accuracy를 사용하였다.


Table 3 : 질문 답변 및 상식 추론 작업에서의 결과이다. 우리 GPT 모형의 결과를 현재의 SOTA 방법과 비교하였다. 9x는 9개 모형을 ensemble한 것을 가리킨다.


Question answering and commonsense reasoning

Single 그리고 multi-sentence 에서 추론을 요구하는 또다른 작업은 질문 답변이다. 중학교 및 고등학교 영어 시험과 관련있는 영어 텍스트로 구성되었으며 최근에 등장한 RACE dataset을 사용하였다. 이 dataset은 CNN이나 SQuaD dataset들 보다 더 많은 추론이 필요한 질문이 포함되어있으며, 이러한점은 넓은 범위의 context를 다룰 수 있도록 훈련된 우리 GPT 모델에 대한 더 좋은 평가를 가능하게 했다. 또한, 여러 문장으로 이루어진 스토리를 마무리하는 올바른 문장을 두개의 선택지에서 선택하는 작업으로 구성된 Story Cloze Test로 GPT를 평가했다. 이러한 작업들에서 우리 GPT 모형은 Story Cloze에서는 8.9%, RACE에서는 5.7%의 향상을 보이며 이전의 최고 성능 결과를 큰 차이로 앞질렀다. 이러한 결과는 우리 GPT 모형은 넓은 범위의 context를 효과적으로 다룰 수 있음을 보여준다.


Semantic Similarity

의미론적 유사성 (또는 paraphrase 감지) 작업은 두 문장이 의미적으로 동일한지 다른지 예측하는 것이다. 이 작업의 어려운 점은 concept을 바꾸어 말하는 것을 인지하는 것, 부정을 이해하는 것, 의미적 모호성 등에 있다. 우리는 이 작업을 위해, 다음의 세개의 dataset들을 사용했다 : Microsoft Paraphrase corpus (MRPC) (뉴스 소스로부터 수집됨), Quora Question Pairs (QQP) dataset, Semantic Textual Similarity benchmark (STS-B). 우리의 GPT 모형은 세 개의 의미론적 유사성 작업 중 두 개에서 SOTA를 달성하였다 (Table 4). STS-B에서는 1 point의 향상이 있었고, QQP에서는 Single-task BiLSTM + ELMo + Attn 이 달성한 결과와 비교하여 4.2% 라는 유의미한 성능 차이는 보여주었다.


Classification

Finally, we also evaluate on two different text classification tasks. The Corpus

of Linguistic Acceptability (CoLA) [65] contains expert judgements on whether a sentence is

grammatical or not, and tests the innate linguistic bias of trained models. The Stanford Sentiment

Treebank (SST-2) [54], on the other hand, is a standard binary classification task. Our model obtains

an score of 45.4 on CoLA, which is an especially big jump over the previous best result of 35.0,

showcasing the innate linguistic bias learned by our model. The model also achieves 91.3% accuracy

on SST-2, which is competitive with the state-of-the-art results. We also achieve an overall score of

72.8 on the GLUE benchmark, which is significantly better than the previous best of 68.9.




+ 이나스AI에는 인공지능 관련 다양한 강의가 있습니다.

- Object detection, Text To Speech, Reinforcement learning, OCR, Chatbot, Time series prediction,

- Meta learning, eXplainable AI, Transformer/BERT/GPT, Graph-based ML, etc

- 소스코드, 다이어그램 및 중간데이터에 기반하여 인공지능 알고리즘들의 작동원리와 구조를 이해하기 쉽고 정확하게 설명합니다.


+ 작업할 때 켜놓는 라이브 스트리밍 study with me 채널도 운영하고 있습니다.

댓글

이 블로그의 인기 게시물

[논문 full 번역 + 이해를 위한 추가설명] CRNN, An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition

[논문 full 번역 + 이해를 위한 추가설명] DQN, Playing Atari with Deep Reinforcement Learning

CUDA 와 CuDNN 의 설치, 삭제 및 버전 변경