본문 바로가기
ML, DL Basic

GPT 이해하기, GPT-2까지

by mjk0618 2023. 11. 7.

이 글은 Instruct GPT를 구체적으로 리뷰하기에 앞서 GPT의 발전 과정에 대해 간단하게 정리한 내용입니다. 일부 딥러닝과 자연어 처리에 대한 배경지식을 전제로 작성한 글이므로, 언어 모델링이나 트랜스포머 등에 대한 개념이 생소하다면 이해하는 데 어려움이 있을 수 있습니다. 추후 이 부분에 대해서도 자세히 풀이하여 GPT-1과 GPT-2 논문을 모두 리뷰할 예정입니다. GPT는 Improving Language Understanding by Generative Pre-Training 논문을 시작으로 2018년에 등장하여 현재는 GPT-4까지 발전했습니다. 이 게시글에서는 GPT-4까지의 내용을 모두 다루지는 않고, 앞서 언급한 논문과 Language Models are Unsupervised Multitask Learners, 즉 GPT-2에 대한 내용만을 다룹니다.

 


 

GPT-1: Generative Pre-Training

레이블이 있는 데이터로 지도 학습된 모델은 여러 NLP 태스크에서 뛰어난 성능을 보였습니다. 하지만 레이블이 있는 데이터를 만드는 데는 많은 비용이 필요합니다. 그래서 자연스럽게 레이블이 없는 데이터를 통해 텍스트에 대한 표현을 학습하려는 시도가 이루어졌습니다. 그 중 가장 대표적인 예시가 단어 임베딩입니다. 하지만 단어 임베딩은 말 그대로 단어 수준의 정보만을 학습할 수 있다는 문제가 있습니다. 단어 수준을 넘어선 정보를 학습하는 것은 상당히 어려운 일입니다. 우선 사전 학습된 표현의 전이가 잘 이루어지도록 훈련 목표를 최적화하기가 어렵습니다. 또한 현재 그러한 전이 자체가 어떤 방식으로 이루어져야 효과적인지에 대한 마땅한 합의점도 마련되지 않았습니다.

 

이런 문제를 해소하기 위해서 GPT-1 논문에서는 비지도 사전 학습과 지도 학습을 통한 파인 튜닝, 즉 준지도 학습 방법론(semi-supervised approach)에 대한 연구가 이루어졌습니다. 연구의 목표는 많은 변형이 가해지지 않고 다양한 태스크에 잘 적응할 수 있는 Universal Representation을 학습하는 것이었습니다.

 

ULMFiT과 같은 기존의 연구에서 사전 학습 단계에서 언어 모델링 태스크를 사용하면, 학습된 표현이 다운스트림 태스크에 잘 전이된다는 것이 밝혀졌습니다. 또한 GPT-1이 제안되기 전 트랜스포머가 발표되며 시퀀스의 global dependency를 학습할 수 있게 되었습니다. GPT-1의 사전 학습 목표는 다음과 같이 공식화할 수 있습니다.

 

 

사실 이 훈련 목표는 새로운 게 아니며, 논문에서도 ‘we use a standard language modeling objective to maximize the following likelihood’ 라고 명시되어 있습니다. 어떻게 보면 최초의 GPT는 새로운 novel approach를 제안했다기보다는 그동안 파편화된 연구를 절묘하게 집대성한 것에 가깝다고 볼 수 있습니다. 트랜스포머라는 획기적인 아키텍처를 사용해서, 기존의 언어 모델링이 $n$-gram과 같이 특정 context window에 포함되는 정보만을 활용하며, 단어 임베딩이 단어 수준 이상의 정보는 학습하지 못한다는 점을 깔끔하게 해결했습니다.

 

ELMo 덕분에 contextualized embedding의 학습이 가능해졌지만, 기존의 방식은 태스크마다 그에 특화된 모델이 필요하다는 단점이 있었습니다. 하지만 GPT는 그렇지 않습니다. 어떻게 보면 이 점이 바로 GPT의 진가라고 생각됩니다. 파인 튜닝 과정에서 GPT의 학습 목표는 다음과 같이 공식화 될 수 있습니다.

 

 

공식을 보면 사전 학습 목표와 크게 다르지 않습니다. 실제로 하나의 샘플에 대해서 각 학습 단계에서 확률이 어떻게 모델링 되는지를 보면 조금 더 이해가 잘 될 것입니다.

 

 

수식 (1)이 사전 학습에서 다음 토큰에 대한 확률이고, 수식 (2)는 파인 튜닝 과정 단계에 대한 것입니다. $h_n$과 $h_l^m$은 모두 트랜스포머 블럭의 마지막 은닉 상태를 의미하기 때문에 차이는 $W_e$와 $W_y$ 뿐입니다. 결국 GPT는 다운스트림 태스크가 무엇이든 모델 아키텍처를 변형하지 않고 파인튜닝이 가능하다는 것입니다. 태스크에 따라 달라지는 것은 레이블 개수에 따른 $W_y$의 차원 뿐입니다.

 

 


 

GPT-2: Unsupervised Multitask Learners

GPT-1은 나쁘지 않은 zero-shot performance를 보이지만, 실제로 사용하기에는 그 성능이 터무니 없이 부족합니다. 즉, 여전히 다운스트림 태스크에 따라 파인튜닝이 필요하다는 문제가 있었습니다. 이는 사전 훈련 없이 설계된 모델보다는 그 수가 적겠지만, 결국 레이블이 있는 데이터가 필요하다는 문제를 아직 해결하지 못한 것입니다.

 

같은 맥락에서, 기존의 AI 시스템은 특정 분야에 한정해서 뛰어난 성능을 보이는 narrow expert이지 competent generalist가 되지는 못했습니다. GPT-2 저자는 궁극적으로 레이블이 없는 데이터만을 통해 학습한 모델을 통해 이런 문제를 해결하고 싶었습니다.

 

문제는 특정 태스크를 학습하기 위해서는 해당 분야의 문제를 해결하는 것과 같은 형태의 데이터셋을 사용하면 되었지만, 어떤 문제든 잘 풀 수 있는 일반적인 능력을 갖기 위해서는 어떤 데이터가 필요한지 정의하기 어려웠습니다. Multitask learning은 일반적인 성능을 높이기 위한 좋은 방법입니다. 하지만 이 기법은 수백 개 이상의 학습 샘플이 필요하다는 다른 방법을 모색해야 했습니다.

 

여기서 저자는 다시 한번 언어 모델링 태스크를 활용합니다. The Natural Language Decathlon: Multitask Learning as Question Answering 논문은 자연어는 태스크, 입력, 출력 형식을 유연하게 표현할 수 있는 성질을 내재하고 있음을 보였습니다. 예를 들어 번역 예제는 원본 문장과 번역 문장을 입력과 출력으로 명시하는 대신, $\texttt{(translate}$ $\texttt{to french},$ $\texttt{english text,}$ $\texttt{french text)}$와 같이 하나의 시퀀스로 표현할 수 있습니다. 텍스트 데이터가 이런 형식을 갖는다면 자연스럽게 모델은 태스크가 명시되지 않아도 입력된 상황에 맞는 문제를 풀 것입니다.

 

그리고 저자는 언어 모델이 충분히 큰 규모를 갖춘 상태에서 대규모 데이터를 학습하면 다양한 태스크를 수행하는 일반화된 능력을 갖출 것이라고 생각했습니다. 약 1.5B의 파라미터를 갖는 GPT-2는 실제로 그러했고, zero-shot 환경에서 unsupervised multitask learner로써의 역할을 잘 수행했습니다.

 

 

Our speculation is that a language model with sufficient capacity will begin to learn to infer and perform the tasks demonstrated in natural language sequences in order to better predict them, regardless of their method of procurement. If a language model is able to do this it will be, in effect, performing unsupervised multitask learning.

 


 

정리한 내용에는 이해한 내용을 바탕으로 자의적으로 해석한 내용이 포함되어 있습니다. 최대한 사실에 가깝게 정리하려 했으나, 잘못 이해한 부분이 발견된다면 수정하겠습니다. 생성 AI가 전세계적인 트렌드가 되면서 자연스럽게 관심은 그 출발점이라고 할 수 있는 GPT에 몰리고 있습니다. GPT에 대해서 곰곰히 생각하던 중, 결국 Generative Pre-Train이라는 학습 방법론이 기존의 언어 모델링과 어떤 차이를 갖는지 궁금해졌습니다. 분명히 GPT-1 논문에서 대놓고 같다고 명시하곤 있지만, 그 뿐이라면 이렇게까지 전 세계적인 조명을 받는 모델로 성장할 수 없었을 것이라고 생각합니다.

 

모델 규모를 제외하고, 흔히 GPT의 차별점으로 소개되는 내용은 바로 아키텍처인데, 사실 이것도 트랜스포머라는 기존의 연구에 기반한 것이기 때문에 완전히 새로운 차별점이라는 생각이 잘 들지 않습니다. 과연 GPT만이 새롭게 갖는 강점이 무엇인가라고 생각해봤을 때 저는 오히려 아키텍처를 변형하지 않고 다양한 다운스트림 태스크에 적용할 수 있다는 점이 떠올랐습니다. 사전 학습된 가중치, 또는 임베딩을 사용하여 다운스트림 태스크에서 성능을 높이려는 시도는 이미 여러차례 연구되었고, 특히 GPT가 등장하기 전 제안된 ELMo의 주요 연구이기도 했습니다. 그런데 ELMo는 특정 태스크를 수행하기 위해서는 모델의 일부를 새롭게 설계해야 하며, 새롭게 추가된 부분에 대해서는 사전에 학습된 내용이 전이되지 못한다는 한계를 가집니다. 반면 GPT는 이런 문제를 겪지 않아도 됩니다. 저는 이런 점이 바로 GPT만의 차별점이라고 생각했고, 이후 BERT에서도 이 점에 착안하여 모델을 개선했다고 생각하였습니다.

 

GPT가 자신만의 novel architecture를 갖고, multitask learner의 역할을 수행할 수 있게 된 시점에서, 앞으로는 어떻게 발전해나갈지 계속해서 알아보고 어떻게 현재의 GPT가 되었는지에 대해서 공부해볼 생각입니다. 단순히 모델 규모만 거대해진 것이 아니라, 그 과정에서 새롭게 추가된 기법이 분명 존재할텐데, 이들은 어떻게 GPT의 성능을 획기적으로 끌어올렸을지에 대해 별도의 게시글에서 이어서 정리해보겠습니다.

댓글