LLM의 새로운 지평을 연 OpenAI사의 첫번째 GPT 모델
GPT-1은 OpenAI사에서 2018년 발표한 GPT 시리즈의 첫 모델입니다. 약 1.17억 개(117 million)의 매개변수를 갖는 GPT-1은 당시에는 상당히 큰 모델이었으나 GPT-2와 3을 비롯한 후속 모델에 비하면 매우 아담한 크기라고 할 수 있습니다. GPT-1은 지금의 챗GPT만큼 성능이 좋지도 못했습니다. GPT-1은 2019년 출시된 BERT(Bidirectional Encoder Representations from Transformers)-base와 비슷한 수의 매개변수를 가지고 있음에도 불구하고 BERT에 비해 성능이 떨어지는 것으로 알려져 있지요.
그러나 성능이 다는 아닙니다. GPT-1은 기존의 라벨링된 데이터(labeled data)에 의존하던 지도학습(supervised learning)에서 탈피하여 라벨링 되지 않은(unlabeled data) 데이터를 훈련에 적용하는 비지도학습(unsupervised learning) 방식을 적용하며 GPT 시리즈가 초거대언어모델(LLM)으로 나아가는 지평을 열었습니다. 이게 무슨 뜻일까요? 이번시간에는 OpenAI의 연구원들에 의해 발표된 Improving Language Understanding by Generative Pre-Training (2018)라는 논문을 리뷰하며 GPT-1을 해부해 보도록 하겠습니다.
자연어처리에서 주로 사용되는 모델 트레이닝 방식은 인공지능 모델에 사람이 정답지를 제공하는 지도학습(supervised learning)입니다. 그리고 지도학습에는 데이터 라벨링이라는 작업이 필요합니다. 라벨링이란 한마디로 텍스트 데이터에 사람이 직접 정답지를 달아 데이터셋(dataset)을 만드는 작업을 말합니다. 예를 들면 아래와 같이 '아 더빙... 진짜 짜증나네요 목소리' 라는 문장에 대해 '부정(0)', '사이몬페그의 익살스런 연기가 돋보였던 영화!'라는 문장은 '긍정(1)'로 사람이 일일히 분류해 줘야 합니다.
그런데 이런식으로 일일히 텍스트 데이터를 사람이 분류하는 일에는 엄청난 시간이 소모됩니다. 뿐만 아니라 인터넷상에 돌아다니는 거의 모든 데이터는 라벨링 되어있지 않습니다. 언어 모델의 성능을 높히기 위해서는 방대한 양의 데이터를 학습하는 것이 필수적이지만, 기존의 지도학습 방식으로는 라벨링 되어있지 않은 데이터를 그대로 사용할 수 없었습니다.
이러한 문제점을 개선하기 위해 논문의 저자들은 비지도학습(Unsupervised Learning)과 지도학습(Supervised Learning)이 결합된 Semi-supervised Learning 방식을 제안합니다. GPT-1은 데이터 학습을 위해 두 단계(Two-Stage)를 거치는데, 1. Unsupervised pre-training(비지도 사전학습)과 2. Supervised fine-tuning(지도 미세조정)으로 나뉩니다.
GPT-1의 훈련과정은 대략적으로 다음과 같이 설명할 수 있습니다. 우선 Transformer의 Decoder 구조만을 사용하여 방대한 양의 라벨링 되지 않은 텍스트 데이터 셋을 통해 사전학습(pre-training)을 진행합니다. 이를 통해 GPT-1은 기본적인 문장 및 문맥파악이 가능해집니다. 다음으로 비교적 소량의 데이터를 직접 라벨링 하여 그에 맞게 미세조정(fine-tuning)을 가하는 과정을 거치면 개발자가 원하는 테스크를 더욱 잘 수행할 수 있게 됩니다. 이를 통해 매우 적은양의 데이터만으로도 탁월한 성능을 낼 수 있게됩니다.
이처럼 GPT-1은 출시 후 다양한 자연어 처리 작업에서 뛰어난 성능을 보였지만 상대적으로 작은 모델 크기 때문인지 후속 모델들에 비해 상대적으로 성능이 떨어진다는 평가를 받아왔습니다. GPT-1는 충분히 거대한 모델임에도 불구하고, 모델의 크기나 학습 데이터의 양에 한계가 있어 다양한 주제나 상황에 대해 유연하게 대응하는 데 어려움이 있는 것도 사실이죠.
훈련 데이터의 양도 후속 모델에 비하면 상대적으로 적습니다. GPT-1은 학습 데이터로 BooksCorpus라는 데이터셋을 주요 훈련 자료로 사용했습니다. BooksCorpus 데이터셋은 다양한 분야의 책에서 추출한 문장들로 구성되어 있어, 일반적인 언어 구조와 패턴을 학습하여 사람처럼 자연스러운 문장을 구사하기에는 적합하지만 전문지식에는 다소 약한 면모를 보입니다.
또한 다른 모든 GPT 시리즈 기초모델이 그렇듯 GPT-1은 순방향(uni-directional) 트랜스포머 기반 아키텍처를 사용합니다. 순방향 학습 방식은 언어모델이 입력 문장의 단어들을 왼쪽에서 오른쪽으로 예측하면서 문맥을 학습하는 전형적인 방식입니다. BERT가 양방향(Bidirectional) 트랜스포머 기반 아키텍쳐를 사용하는 것과는 대조적이죠. 실제로 성능평가에서 BERT는 Large는 86.7로 GPT의 82.1에 비해 더 높은 점수를 얻었습니다.
흔히 GPT 시리즈 기초모델은 Transformer와 BERT와는 다르게 미세조정이 필요하지 않은 것으로 알려져 있지만 GPT-1은 여전히 사전학습(pre-training)과 미세조정(fine-tuning)이 필요하다는 것이 특징입니다. 이에 따라 GPT-1은 먼저 다양한 텍스트를 활용해 사전학습을 진행한 후 특정 작업(task)에 맞게 추가학습을 진행했습니다.
GPT-1은 그 자체로도 상당한 성과를 보여줬지만 후속 모델 개발의 토대가 되었다는 점에서도 의의가 있습니다. 위에서 살펴본대로 GPT-1은 인터넷상에 존재하는 방대한 양의 라벨링 되지 않은 텍스트 데이터를 그대로 훈련에 사용하게 하며 GPT 시리즈가 초거대언어모델(LLM)으로 나아가는 지평을 열었습니다. 덕분에 이후 출시된 GPT-2와 GPT-3, GPT-4와 같은 후속 모델들은 훨씬 더 큰 모델 크기와 더욱 다양하고 방대한 데이터를 활용한 학습으로 더욱 발전한 성능을 보여주게 됩니다.
GPT 시리즈의 후속 버전들은 모델의 크기를 크게 확장함으로써 보다 복잡한 문제 해결 능력을 보여주게 되었고, 다양한 데이터셋과 학습 방법론의 도입으로 인해 다양한 작업에서 인간 수준의 성능을 보이기 시작했습니다. 다음시간에는 대폭 개선된 성능으로 가짜정보 생성(Deepfake for Text)에 대한 우려를 불러일으킨 후속모델 GPT-2를 해부해보겠습니다.