데이터

GPT, 그게 도대체 뭔데?

Yuniverse. 2023. 5. 4. 16:55

 요새 챗GPT가 이슈이다. 아니, ‘아직까지 이슈이다라는 말이 정확하겠다. 핫토픽으로 등장한지 꽤 되었는데도 아직도 뜨거운 감자로 IT 관련 뉴스기사 랭킹을 독차지하고 있으니 말이다. IT 관련 업종이 아닌 내 친구들도 모두 챗GPT에 대해 알고 있고, 대다수가 한 번 이상 써봤을 정도니 말 다했다. 나도 업무에서 막히는 부분이 나올 때마다 이제는 구글링을 하는 게 아니라 챗GPT한테 물어보는 경우가 더 많아졌다. 하루에도 몇 번씩 챗GPT에 접속하고 질문을 던지다보니 궁금증이 생겼다. 왜 "챗-GPT"일까? '챗'은 서로 채팅(Chat)하며 사용자의 궁금증을 해결하는 방식이니까 이해가 되는데, 'GPT'는 왜 붙어진 이름일까? 챗GPT 이후 등장한 비슷한 형식의 AI인 트루스GPT, 오토GPT도 앞의 단어는 달라져도 'GPT'라는 용어는 빼놓지 않았는데, 도대체 이게 뭐길래 빼놓지 않고 붙어지는걸까?

 

왜 이름이 Chat-GPT일까?

 

GPT: Generative Pretrained Transformer

GPT는 "Generative Pre-trained Transformer"의 약어로, OpenAI에서 개발한 대규모 언어 모델이다. 대규모의 텍스트 데이터를 학습하여 생성 모델링, 기계 번역, 질의응답 등 다양한 자연어 처리(Natural Language Processing, NLP) 작업에서 좋은 성능을 보이고 있다. 결국 GPT는 ‘트랜스포머(Transformer)’라는 이야기인데, 그렇다면 이 트랜스포머라는 건 무엇일까?

 

트랜스포머 (Transformer)

트랜스포머(Transformer)는 딥러닝 모델 중 하나로, 자연어 처리 분야에서 널리 사용되는 모델이다. 이 모델은 "Attention is all you need" 라는 논문에서 처음 제안되었다.

 

트랜스포머 모델은 RNN(순환 신경망)이나 CNN(합성곱 신경망)과 같은 기존의 모델과는 다른 방식으로 자연어 처리를 수행한다. 트랜스포머 모델은 입력 시퀀스와 출력 시퀀스를 동시에 처리할 수 있으며, 입력 시퀀스와 출력 시퀀스 간의 관계를 별도의 매커니즘 없이 직접 모델링한다는 게 특징이다.

 

트랜스포머 모델은 셀프 어텐션(self-attention) 메커니즘을 사용하여 입력 시퀀스의 모든 단어들 간의 상호작용을 고려한다. 

셀프 어텐션은 입력 시퀀스 내에서 각 단어의 중요도를 계산하고, 이를 활용하여 다음 단어를 생성하거나 입력 시퀀스 내에서 중요한 부분을 추출하는 등 다양한 자연어 처리 작업을 수행한다. 셀프 어텐션은 Query, Key, Value라는 세 가지 요소를 사용하여 계산을 수행하는 메커니즘인데, 과정은 다음과 같다.

  1. 입력 시퀀스 내의 모든 단어에 대해 Query, Key, Value를 생성한다.
  2. Query와 Key 간의 유사도를 계산한다. 유사도 계산시에는 일반적으로 dot product를 사용하게 된다.
  3. 유사도를 정규화하여 어텐션(Attention) 가중치를 계산한다.
  4. Attention 가중치를 Value에 곱하여 출력값을 계산한다.

Self-Attention mechanism

이러한 과정을 모든 입력 단어에 대해 반복하여 출력 시퀀스를 생성한다. 이때 Query, Key, Value의 차원은 모두 같아야 하며, 이 차원을 하이퍼파라미터로 조정할 수 있다. 또한, 입력 시퀀스의 모든 단어 간의 상호작용을 고려하기 때문에 셀프 어텐션은 입력 시퀀스 내의 어떤 위치에서든 효과적으로 작동할 수 있다.

 

트랜스포머 모델의 주요 유형은 인코더(Encoder), 디코더(Decoder), 인코더-디코더(Encoder-Decoder) 세 가지이다. 물론 모델의 종류가 빠르게 늘고 있긴 하지만, 아직까지는 여전히 이 3가지 유형으로 나눌 수 있다. 이중 GPT는 대표적인 디코더 유형으로, OpenAI는 트랜스포머 디코더 모델의 발전을 주도했다고 볼 수 있다.

*대표적인 인코더 유형으로는 NLP를 조금이라도 공부했던 사람이라면 들어봤을 BERT(Bidirectional Encoder Representations from Transformers)가 있다.

 

 

GPT 모델의 역사

GPT 모델은 GPT-1부터 GPT-3까지 여러 버전이 존재한다. 각 버전별 특징은 다음과 같다.

버전 파라미터 연도 설명
GPT-1 1.17억 개 2018년 대규모의 텍스트 데이터셋을 학습하여 언어 모델링, 문장 생성, 기계 번역 등 다양한 NLP 작업에서 좋은 성능을 보였다.
GPT-2 15억 개 2019년 GPT-1보다 더 큰 모델로서, 대용량 텍스트 데이터셋을 학습하여 기존 NLP 모델들보다 더 높은 성능을 보였다. 다만, 이후 공개된 GPT-3와 비교하면 성능은 약간 낮다.
GPT-3 175억 개 2020년 현재까지 가장 큰 언어 모델 중 하나이다. GPT-2와 마찬가지로 대규모 데이터셋을 학습하여 NLP 작업에서 높은 성능을 보인다. 특히, 대용량 파라미터를 가지고 있어서 새로운 데이터에 대해서도 일반화 성능이 높다.

이처럼 각 버전의 모델 크기와 학습 데이터셋의 크기, 학습 방법 등이 다르기 때문에, 각 버전마다 성능 차이가 있다. 이에 따라서, 각 버전의 특징을 이해하고 적절하게 사용해야 한다.

 

 

GPT 모델의 한계와 발전 방향

요새 GPT 워낙 인기를 끌면서, GPT 모델도 완벽한 것처럼 여겨지고 있지만 여전히 발전해야 부분이 많이 남아있다. 기본적으로 GPT 모델은 대규모 데이터셋과 파라미터 , 학습 방법 등이 요구되기 때문에, 모델 학습과 사용에 대한 컴퓨팅 리소스와 비용이 많이 들어갈 수밖에 없는 구조이다. 또한, 자연어 처리 분야에서는 아직도 해결되지 않은 다양한 문제들이 존재하기 때문에, 이러한 문제들을 해결하기 위해서 GPT 모델이 더욱 발전될 필요가 있다. 예를 들면 지식 그래프를 활용한 추론이라던지 특정 언어에 특화된 모델(현재는 각각의 언어의 특징을 고려하지 않은 일반적인 모델에 불과하다.), 문장의 상황을 인식하는 능력, 개개인 맞춤 특화된 대화 능력은 아직 미미한 수준이다. 앞으로 GPT 모델이 발전하여 이러한 문제들을 해결할 있기를, 발전의 과정에 나도 작게나마 기여할 있기를 기대하며 글을 마친다.