괴물 언어모델 GPT-1에서 더 강력해진 GPT-2 파헤치기

1. 기본적인 특징

 

GPT-1에서 발전된 형태

 

‘Just a really big transformer’

 

특별한 구조 변경없이 transformer self attention block을 더욱 쌓아올려 모델 크기를 키웠다

 

pre-train task로 주어진 text의 다음 단어를 맞추는 language modeling

 

“language model은 model의 구조나 parameter를 변경하지 않고도 zero shot setting에서 downstream task를 수행할 수 있다.”

 

정확히 말하면 훈련 시 다양한 스킬이나 패턴을 인식하는 방법을 학습함으로써 추론 시 downstream task에 빠르게 적응하도록 하는 방법이다.

 

GPT-2에서는 이러한 방법을 "in-context learning" 방식으로 진행했는데, 사전학습 모델에 풀고자 하는 task를 text input으로 넣는 방식이다.

 

하나의 문단이 주어지면 다음 단락도 써내려가는 놀라운 능력을 보여줬다.

 

나도 읽어봤는데 괜찮은데?

 

사람이 읽어도 이상함을 못느낄 정도로 글을 잘씀

 

 

2. motivation

 

일반적으로 주어진 문장 I love this movie가 긍정인지 부정인지 예측하려면 <CLS> token을 이용해 binary classification을 했다.

 

How are you?에 대응하는 대화 시스템을 만들 때는 질문을 모두 읽어 이해한 뒤에 다음 단어를 차례대로 생성하는 language modeling을 활용

 

기본적으로 NLP task들은 task에 따라 모델 구조들이 위와 같이 상이했다.

 

‘The Natural Language Decathlon: Multitask Learning as Question Answering’에서 “모든 종류의 자연어 처리 task들은 질의응답 형태로 바꿀 수 있다” 는 가능성을 제시하고 다양한 NLP task를 QnA형태로 학습 연구한 사례들을 제시했다

 

예를 들어 i love this movie. 가 긍정인지 부정인지 예측하는 task는

 

저 문장을 준 뒤에 what do you think about this document in terms of positive or negative sentiment? 질문 혹은 do you think whether this sentence is positive or negative?에 대한 대답을 생성하라는 task와 같다.

 

문단에 대한 요약 문제도 문단을 준 뒤에 what is the summarization of the paragraph?라는 질문에 대한 대답을 생성하라는 task로 바꿀 수 있다.

 

번역 문제도 마찬가지다. ‘i love you’라는 문장을 주고 what is the translation in korean?이라고 물어보고 답을 생성하라고 시키는 문제와 같다.

 

모든 NLP task들은 QnA 형태로 바꿀 수 있다

 

3. dataset의 선정

 

train data로 40GB의 대용량 데이터

 

train dataset의 quality를 높여 효과적으로 지식을 학습하고자 했다.

 

reddit에 질문을 하면 각종 답이 나올텐데 그 중 외부링크가 포함된 답이 있을 수 있다.

 

특히 대답이 높은 득표(high karma)를 받았다면 주어진 외부 링크가 잘 쓰여진 글이라고 생각하여 투표를 했을 것이기 때문에 그런 데이터를 위주로 모았다.

 

3 karma로 기준을 잡았다는데 3 karma는 받기 힘든가???

 

reddit뿐만아니라 wikipedia, sns 등에서 잘 쓰여진 글이라고 생각되는 글은 다 모았다고 보면 된다

 

 

4. preprocessing

 

BERT의 word piece embedding처럼 Byte pair encoding 알고리즘을 이용하여 subword 수준에서 vocabulary를 구축하여 전처리를 수행

 

5. model의 구조적 특징

 

layer normalization의 위치를 옮겼다. 각 block의 input으로 옮기고, 마지막 self attention block 이후에 layer normalization을 추가했다.

 

residual layer의 수 N에 따라 layer의 가중치를 $\frac{1}{\sqrt{N}}$로 scaling한 weight initialization을 했다?

 

layer의 index에 반비례하여 layer가 위층으로 갈수록 layer weight initialization을 작게하여 영향력을 감소시켰다고????

 

A modified initialization which accounts for the accumulation on the residual path with model depth is used. We scale the weights of residual layers at initialization by a factor of 1/ √ N where N is the number of residual layers

 

모델의 깊이에 따라 residual path에 누적하여 사용할 수 있는 변형된 가중치 초기화방법을 사용했다.

 

어떤 특정 layer까지 도달할때 거쳐간 layer의 수가 N인것 같고 그러한 N에 반비례해서 각 layer의 가중치를 초기화하겠다.

 

그러니까 상단 layer의 초기화 가중치는 적게 주어 영향력을 줄이겠다는 것이다.

 

 

 

5. Conversation Question Answering dataset

 

7개의 주제를 가지는 document에 대한 질의응답 데이터

 

모든 NLP task를 QnA로 바꿀 수 있다는 점에 착안하여 CoQA로부터 task를 수행

 

그러나 특이한 점은 대용량의 데이터로 pre-train후 해당 데이터로 fine-tune하는 과정을 거쳐 수행하는 것이 일반적인데 GPT-2는 Zero shot setting으로도 실험을 해보았다.

 

pre-train을 한 GPT-2를 supervised training없이 바로 task에 실험해보았다는 의미다.

 

Fine tune BERT가 89 F1 score를 받은 것에 비해 Zero shot setting GPT-2는 59 F1 score를 받았다. 물론 성능이 떨어지지만 어느정도 기대이상의 가능성을 보여주었다.

 

 

6. summarization

 

CNN and Daily mail dataset을 이용하여 GPT-2로 summarization 성능을 실험해보았다.

 

너무 길어서 읽어보진 않았는데 잘 했겠지

 

논문에서 나온 CNN and Daily mail dataset과 GPT-2가 요약한 글

 

주어진 text 뒤에 TL;DR이라는 token으로 summarization을 유도했다.

 

text를 읽어가고  TL;DR이라는 token을 만나면 그 뒤부터 100 token summarization을 시도하는 것이다.

 

no hint가 뭔지 궁금했는데 TL;DR로 task hint를 주지 않았을 때를 의미하는 것 같다.

 

task hint를 주냐 안주냐가 성능에 의미있게 차이를 주는 모양

 

GPT-2’s performance drops by 6.4 points on the aggregate metric when the task hint is removed which demonstrates the ability to invoke task specific behavior in a language model with natural language.

 

 

generation과정에서 Top-k random sampling(beam search말하는 듯?)을 사용했다고 한다. k=2에서 greedy decoding보다 더욱 추상적인 요약을 잘했다고 한다.

 

 

7. translation

 

이번엔 주어진 언어에서 다른 언어로의 번역 성능을 알아보고 싶은 것이다.

 

In order to help it infer that this is the desired task, we condition the language model on a context of example pairs of the format english sentence = french sentence and then after a final prompt of english sentence = we sample from the model with greedy decoding and use the first generated sentence as the translation.

 

(영어문장)~(프랑스어 문장)으로 학습을하고나서 test과정에서 (영어문장)만 주고 in French 뒤부터 생성하는 문장을 번역문장으로 보겠다는 것이다.

 

translation 예시

 

 

여러가지 실험에서 기존 모형에 비해 떨어지는 성능을 보였지만 기대이상이었다???라고 논문에서 말하는 것같은데 zero shot setting도 아닌것 같은데 왜지?

 

 

정확히는 학습 데이터에 task description을 주냐 안주냐에 따른 in-context learning이라고 언급했다.

 

 

참조

 

https://littlefoxdiary.tistory.com/44

 

[논문리뷰] GPT3 - Language Models are Few-Shot Learners

오픈 AI GPT 시리즈의 세 번째 논문이 공개되었씁니다!!!! GPT1 - Improving Language Understanding by Generative Pre-Training GPT2 - Language Models are Unsupervised Multitask Learners GPT3 - Language ..

littlefoxdiary.tistory.com

 

https://paperswithcode.com/method/gpt-2

 

Papers with Code - GPT-2 Explained

GPT-2 is a Transformer architecture that was notable for its size (1.5 billion parameters) on its release. The model is pretrained on a WebText dataset - text from 45 million website links. It largely follows the previous GPT architecture with some modific

paperswithcode.com

 

 

https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf

 

 

 

 

TAGS.

Comments