GPT-1부터 ChatGPT까지… 그리고 GPT-4에 대한 전망
가트너는 22년 8월 발표한 2022년 이머징 테크놀로지 하이프 사이클 보고서(2022 Gartner Hype Cycle for Emerging Technologies)에서 가속화된 AI 자동화를 지원하는 기술로서 Generatvie Design AI와 Foundation Model을 선정하였다.
Foundation Model의 예는 GPT-3와 같은 대규모 언어모델이며, Generative Design AI (또는 Generative AI)는 최근 화제의 중심이 되고 있는 ChatGPT가 그 예이다. 가트너의 Hype Cycle 상에서 Generative Design AI는 아직도 주류가 되기엔 5~10년이 걸릴 것으로 나왔으나 현재 기세로는 지금 당장 상용화가 가능할 정도의 기세이다. (물론 개인적인 의견은 정확도와 신뢰성 문제를 얼마나 빨리 해결하느냐에 따라 앞당겨지거나, 그 반대로 유망 기술만으로 그칠 수 있다.)
Generative AI이란?
Generative AI는 사용자의 요구사항에 따라 새로운 컨텐츠를 생성해주는 AI를 의미한다. 사람들이 ChatGPT의 등장에 주목하는 것은 그동안 창조는 인간만이 가능한 것이라고 생각했던 인식을 파괴하였기 때문이다.
즉 이전의 traditional AI는 이미 존재하는 것들을 분석하고 반복적으로 인지하는 영역에 제한적으로 사용되었다면, generative AI는 학습된 추론 및 의사결정 능력으로 새로운 결론 및 컨텐츠를 생성해낼 수 있다.
Generative AI는 ChatGPT와 같은 text-to-text 형태외 다음과 같이 다양한 형태가 존재한다. (Generative AI의 종류에 대해서는 다음 기회에 세부적인 특징에 대해서 다루도록 하겠다.)
- Image Generation
- Image-to-Image Translation
- Text-to-Image Translation
- Text-to-Speech
- Audio Generation
- Video Generation
- Image/Video Resolution Enhancement
Generative AI의 발전은 Generative AI가 더 이상 연구 주제가 아니라 실제 문제를 해결하고 모든 산업에서 가치를 창출하는데 사용할 수 있는 실용적인 도구를 제공하는 시대를 열었다. 앞으로 관련 AI startup이 탄생하고 유니콘 기업으로 성장하는 “제2의 Gold Rush” 시대가 도래할 가능성이 크다.
위와 같은 Generative AI가 가능하게 된 것은 바로 Foundation 모델인 LLM(Large Language Model)이 등장하면서 부터이다.
루드비히 비트겐슈타인의 명언을 떠 올려보자.
내 언어의 한계는 내 세계의 한계를 의미한다.
생각도 일종의 언어이다.
즉, 인간은 보고 경험하는 것들 외 언어를 매개로 세계를 인식한다. 곧 언어의 한계는 세계를 인식하는 범주를 결정하고 더 많은 어휘력을 갖는 사람이 더 디테일하게 세상을 분석할 수 있고 이해할 수 있다.
LLM은 인간의 사고를 모방하여 traditional AI가 불가능했던 세계를 이해하기 시작하였다. (물론 AI And The Limits Of Language에서 Jacob Browning과 Yann Lecun의 지적한대로 LLM은 아직까지 한계성을 가지고 있다.)
나중에 Generatvie AI의 발명보다 Foundation 모델의 발명이 더 중요한 사건으로 기억되지 모른다.
Generatvie AI 발전의 동인
Alexnet을 탄생시킨 CNN은 Vision 처리에 엄청난 성공을 거두었지만 NLP와 같은 인간의 언어를 이해하는데는 한계가 있었다. 그 이유는 인간의 언어는 Vision과 달리 순서가 있는 단어로 구성되어 있기 때문이다.
아래 그림을 보자. CNN이 인식하기에는 이미지에서 개체의 표현은 위치에 관계없이 동일하므로 CNN은 왼쪽 그림이나 오른쪽 그림 모두를 얼굴로 인식한다.
2017년 구글은 “Attention is All You Need”라는 미래의 AI 연구에 중대한 영향을 미치는 논문을 발표하였다. 이 논문에서 구글은 Transformer라는 새로운 뉴럴 네트워크 모델을 제안하였다. Transformer는 문장의 단어와 같은 순차적 데이터의 관계를 추적하여 컨텍스트를 학습하는 뉴럴 네트워크이다.
Transformer는 이전 NLP 처리에 사용되던 RNN/LSTM에 비해 병렬처리가 가능하고 계산 효율이 높고 학습 속도가 빠르며 뛰어난 모델 성능을 제공한다. 그리고 결정적으로 Transformer는 다른 모델이 불가능했던 두가지 중요한 작업을 수행할 수 있다.
- 첫번째, 레이블이 지정된 데이터 없이도 모델을 학습할 수 있다.
- 두번째, 책이나 온라인 기사와 같은 방대한 양의 구조화되지 않은 데이터를 모델에 공급할 수 있다.
2017년도 Transformer 발표 이후, Transformer의 구조를 기반으로 한 수많은 NLP 모델이 개발되기 시작하였다. Transformer 이후 등장하는 다양한 NLP 모델들은 마치 캄브리아기 대폭발(Cambrian explosion)을 연상시킨다.
캄브리아 대폭발은 약 5억 4천만년 전 비교적 짧은 기간 동안 다양한 종류의 동물들이 처음 출현한 지질학적 사건을 일컫는다. 캄브리아기 대폭발 이후 지구의 생명체들은 단세포에 움직이지도 못하는 단순한 형태의 미생물로부터 오늘날 볼 수 있는 다양하고 복잡하며 활동적인 생명체로 발전했다. 많은 연구들은 캄브리아기 대폭발의 동인을 대기 중 산소 농도의 변화와 연관을 찾고 있다.
즉,
대기의 산소 농도 증가가 캄브리아기 대폭발를 촉발시킨 것처럼 transformer가 Generative AI를 촉발시켰다.
왜 GPT(Generative Pre-trained Transformer)인가?
OpenAI는 GPT를 통해 Transformer를 더욱 발전시켰다. GPT는 “Generative Pre-trained Transformer”의 약자이며 각 단어들은 GPT의 중요한 속성을 의미한다.
- “Generative”는 모델이 단어 입력을 기반으로 새로운 텍스트를 생성할 수 있음을 의미한다.
- “Pre-trained Transformer”는 transformer 모델을 구조화되지 않은 방대한 데이터셋에 대해 훈련되었음을 의미한다.
GPT-1 이전에는 대부분의 NLP 모델은 classification, translation과 같이 특정 task에 대해 학습되었다. 이 때 지도학습(Supervised Learning)이 사용되었다. 이러한 형태의 NLP 학습은 1) 레이블이 달린 데이터 부족, 2) Task를 일반화하기 위한 능력이 없는 문제가 있었다.
하지만 GPT는 supervised training이 필요없이 Q&A, Textual entailment, text summarization을 수행할 수 있다.
GPT의 연대기
2017년 Transformer가 발표된 이후, OpenAI는 GPT 시리즈: GPT-1(2018), GPT-2(2019), GPT-3(2020) 등을 차례로 발표하였다. GPT가 대중들에게 널리 알려진 계기는 OpenAI가 175B 파라미터의 LLM인 GPT-3를 발표한 이후부터이다.
다음은 GPT 모델별 특징을 설명한다.
GPT-1 (2018)
OpenAPI은 Transformer에 자극받아 GPT-1 논문 (Improving Language Understanding by Generative Pre-Training)을 2018년에 발표하였다
특징
GPT-1 이전에 대부분의 SOTA LM은 supervised training을 통해 특정한 task를 학습하였다. 하지만 supervised training에 의해 만들어진 모델은 다음과 같은 주요 제한사항을 가지고 있다.
- 특정한 task를 학습하기 위해 많은 양의 label이 달린 데이터가 필요함
- 이 모델들은 훈련받은 것 이외 task에 대해 일반화할 수 없음
GPT-1 논문은 label이 없는 데이터를 사용하여 Generative 언어모델을 학습한 후, 특정 다운스트림 task(e.g. classification, sentiment analysis, text entailment) 데이터셋으로 모델을 fine-tuning하는 것을 제안하였다.
- Unsupervised Learning(Pre-training) + Supervised Learning(Fine-tuning) = Semi-supervised
Supervised fine-tuned 모델의 Pre-training을 목적으로 Unsupervised 학습이 사용되었기 때문에 Generative Pre-training란 이름이 붙었다.
구조
GPT-1은 Transformer의 디코더 12개를 쌓아올린 구조이다. (Transformer의 인코더는 사용하지 않는다.) 또한 GPT-1는 Transformer의 디코더 중에서도 Multi-head attention을 제외한 Masked Self-attention과 Feed Forward 네트워크만으로 구성되어 있다.
- Param: 117 M
- 구현 Details: 12 decoders, 512 tokens (seq. length)
데이터셋
- BookCorpus: 4.6 GB. 1.3 Billion Tokens
11K 권 이상의 미출판된 책들을 포함한 데이터셋 (Romance, Fantasy, SF 장르)인 BookCorpus 데이터셋을 사용하였다. 이 데이터는 downstream task의 테스트 셋에서 발견될 가능성이 낮다. 또한 이 corpus(말뭉치)는 연속된 텍스트가 많이 있어서 모델이 광범위한 종속성을 학습하는데 도움이 되었다.
성능
12개 task 중 9 task에서 Supervised SOTA 모델보다 더 좋은 성능을 보였다.
또한 Pre-training 덕분에 Q&A , Schema Resolution, Sentiment Analysis와 같은 NLP task의 zero-shot 성능이 향상됨을 확인시켜 줬다.
GPT-2 (2019)
2019년도에 발표된 GPT-2 논문의 제목은 “Language Models are unsupervised multitask learners”로 GPT-1보다 더 강력한 언어모델을 학습하기 위해 큰 데이터셋과 더 많은 파라미터를 추가한 것이 특징이다.
그리고 GPT-2의 가장 큰 목적은 GPT-1에서 존재하는 fine-tuning 없이 unsupervised pre-training 만을 통해 zero-shot으로 down-stream task를 수행할 수 있는 범용 언어모델을 개발하는 것이다.
특징
GPT-2는 모델 성능을 개선하기 위해 task conditioning, Zero-Shot Learning, Zero Shot Task Transfer를 사용하였다.
- task conditioning: Single task를 수행하기 위한 언어 모델의 학습 목표는 P(output|input)이다. 하지만 GPT-2는 동일한 unsupervised 모델을 사용하여 multi-task을 학습하기 위해 학습 목표를 P(output|input, task)로 수정했다.
- zero-shot learning: zero-shot learning은 예제가 전혀 제공되지 않고 모델이 주어진 instruction을 기반으로 task를 이해하는 zero-shot task transfer의 특별한 경우이다. GPT-1이 수행하는 것처럼 시퀀스를 재정렬하는 대신 모델이 task의 특성을 이해하고 답변을 제공할 것으로 예상되는 형식으로 GPT-2에 대한 입력이 제공된다.
구조
GPT-2는 GPT-1에 비해 Layer Normalization 위치가 변경되었다. GPT-1은 Transformer의 디코더와 같이 LayerNorm(sublayer(x) + x) 형태였는데, x+sub-layer(LayerNorm(x)) 형태로 바뀌었다.
- Params(4개 version): 117M (GPT-1과 동일), 345M, 762M, 1.5B (GPT-2)
- 구현 Details: 48 decoders, 1024 tokens
데이터셋
- WebText (from Reddit links): 40 GB, 15 Billion Tokens
WebText 데이터셋은 Reddit 플랫폼(Social Media Platform)을 스크랩하여 높은 찬성표(min. 3 karma)를 얻은 기사의 모든 아웃바운드 링크(45M 개)에서 수집한 데이터를 정리한 약 8M 건이 약간 넘는 문서를 포함한 데이터(40GB)이다. 이는 사람들의 휴리스틱 지표를 사용하여 의미있는 데이터셋을 수집한 것이다.
성능
“GPT-2는 Zero-Shot 세팅에서 8개 언어 모델링 테스트 데이터셋 중 7개 테스트에서 SOTA 결과 기록하였다.”
총 4개의 다른 파라미터(117M, 345M, 762M, 1.5B)를 가진 모델을 학습하였을 때 파라미터가 커질수록 perplexity가 낮아지는 것을 확인할 수 있었다. 이것은 같은 데이터셋을 사용하였을 때 파라미터 개수가 증가할수록 언어 모델의 perplexity가 낮아지며 가장 많은 파라미터를 갖는 모델이 모든 downstream task에 대해서 더 좋은 성능을 갖는다.
GPT-2 논문은 모델의 용량이 증가할수록 모델 성능이 로그 선형 방식으로 증가하며, 모델의 파라미터 개수가 증가할수록 perplexity가 포화되지 않고 지속적으로 감소함을 밝혔다. 이 결과는 더 큰 언어 모델일수록 perplexity가 줄어들고, 자연어를 잘 이해할 수 있음을 시사하고 있다. 이와 같은 GPT-2 논문의 결과는 GPT-3 175B이라는 LLM의 정량적인 실험적 기초가 되었다.
GPT-3(2020)
GPT-2에서 모델 파라미터와 모델 성능간의 관계를 실험적인 확인한 OpenAI는 LLM의 필요성을 증명한 “Scaling laws for neural language models” 논문을 2020년 1월에 발표하였다. 직후 OpenAI는 2020년 4월 “Language models are few shot learners” 이란 논문 이름으로 GPT-3를 발표되었다.
특징
OpenAI는 fine-tuning이 필요하지 않고 약간의 데모만 필요한 매우 강력한 언어모델을 구현하기 위해 175B의 파라미터를 가진 GPT-3 모델을 만들었다. GPT-3는 175B라는 큰 파라미터 개수와 확장된 데이터셋으로 학습되었기 때문에 zero-shot 및 few-shot 세팅에서 downstream NLP tasks를 잘 수행한다.
위 그림은 “단어에 섞인 랜덤한 기호 제거하기” 에 대한 GPT-3 모델의 성능을 보여준다. 위 그림은 다음 2가지 사실을 알려준다.
- 모델 파라미터 크기가 클수록 정확도가 향상된다.
- Few-shot에 따른 성능은 예시가 많을수록 정확도가 향상된다.
아래 그림은 zero-shot, one-shot, few-shot, traditional fine-tuning에 대한 예시를 보여준다.
구조
2020년 OpenAI가 GPT-3 175B을 발표하였을 때 GPT-2 1.5B보다 100배 이상 모델 파라미터 사이즈가 커져 사람들을 충격에 빠트렸다. GPT-3는 GPT-2와 동일한 모델 구조를 사용하며 GPT-2와 몇가지 주요 차이점을 설명한다.
- Params: GPT-3는 125M과 같은 small 버전부터 175B 버전까지 존재함
- 구현 Details: 96 decoders, 2048 tokens
데이터셋
GPT-3는 특정 가중치가 할당된 5개의 서로 다른 말뭉치의 혼합에 대해 학습되었다. 고품질 데이터셋이 더 많이 샘플링되었으며 1회 이상의 epoch로 학습되었다. 사용된 데이터셋은 Common Crawl, WebText2, Books1, Books2 및 Wikipedia 등이며 데이터셋의 용량은 총 753GB이다.
성능
GPT-3는 다양한 언어 모델링 및 NLP 데이터 세트에서 평가되었다. GPT-3는 few-shot 또는 zero-shot 설정에서 LAMBADA 및 Penn Tree Bank와 같은 언어 모델링 데이터 세트에 대해 SOTA 모델보다 우수한 성능을 보였다.
다른 데이터셋의 경우, SOTA 모델을 이길 수 없었지만 zero-shot SOTA 성능을 향상시켰습니다. GPT-3는 또한 비공개 책 질문 답변, 스키마 해결, 번역 등과 같은 NLP 작업을 합리적으로 잘 수행되었으며 종종 SOTA 성능을 능가하거나 미세 조정 모델에 필적하는 성능을 보였다.
GPT3.5 (or InstructGPT)
GPT-3.5라고 불리우는 InstructGPT는 2022년 1월에 발표되었다. GPT-3 기반이지만 정책을 준수하도록 강제함으로써 AI가 인간의 가치와 일치하는 가이드라인 내에서 동작하도록 학습되었다.
GPT-3을 기본 모델로 GPT-3와 동일한 pre-trained 데이터셋에 추가 fine-tuning이 함께 사용되었다. 이 fine-tuning 단계는 GPT-3 모델에 RLHF (Reinforcement Learning from Human Feedback) 개념을 도입하였다.
GPT-3.5의 최신 버전인 text-davinci-003는 다음과 같은 이점을 갖는다.
- 더 높은 품질의 글기가 가능
- 더 복잡한 명령을 처리
- 더 긴 형식의 컨텐츠 생성이 더 좋음
ChatGPT
ChatGPT는 Azure 슈퍼컴퓨터에서 학습된 GPT3.5 모델을 fine-tuning한 모델로 훨씬 더 엄격한 가이드 라인에서 작동하며, 많은 규칙을 강제하고 있다.
(GPT3.5와 ChatGPT는 새로운 블로그 페이지에서 좀더 자세히 설명할까 한다.)
GPT-4에 대한 전망
ChatGPT까지 진화와 LLM의 최신 연구결과를 통해서 GPT-4에 대해 전망해본다.
GPT-4의 구조
GPT-2부터 Layer Normalization 위치가 변경되고 Transformer의 decoder의 개수와 context size가 변화되는 것 외 큰 모델 구조의 변경은 없었다. GPT-4 또한 모델 구조 변경을 통한 최적화보다는 1) 학습 데이터셋 증가, 2) 학습 하이퍼 파라미터 최적화, 3) RLHF 등을 통해 모델 성능을 개선시킬 것으로 예상된다.
GPT-4의 파라미터 크기
Microsoft와 NVIDIA가 만든 MT-NLG는 500B 이상 파라미터를 가진 LLM이지만 SOTA 성능을 발휘하지 못한다. 모델이 커질수록 fine-tuning이 더 많은 비용이 들며 최신 연구 결과에 의하면 더 작은 모델도 더 높은 성능에 도달할 수 있다.
OpenAI의 CEO 샘 알트만은 일부에서 GPT-4가 100T 모델이 될 것이라는 예상하였는데 이는 터무니 없는 이야기라고 일축하였다. 100T를 학습시키기 위한 컴퓨팅 리소스를 누가 감당할 수 있을까? 따라서 실제로 GPT-4는 GPT-2에서 GPT-3로 발전할 때처럼 100배가 넘는 파라미터 사이즈의 거대한 도약은 없을 것으로 예상된다.
그리고 아래 데이터셋 전망 부분에서 설명하겠지만 모델 파라미터가 2배가 늘어나면 데이터셋 역시 2배가 증가하여 하므로 GPT-4가 100T 파라미터가 되더라도 그에 상응하는 학습 데이터가 없다면 극적인 성능 개선을 이루기 어렵다.
샘 알트만은 작은 모델의 성능을 개선하는데 집중하고 있다고 언급하여 GPT-4는 GPT-3과 비슷하거나 조금 더 커지는 수준일 것으로 예상된다.
GPT-3 개발 당시, OpenAI는 모델 학습에 비용이 많이 들어갔기 때문에 accuracy와 cost 중에서 하나를 선택하여야 했다. 그래서 GPT-3는 오직 한번 학습되었다. GPT-3의 학습 cost가 너무 높고, 이전 어떠한 언어모델보다 오랜 학습 시간이 필요하였기 때문에 하이퍼파라미터 튜닝을 할 수 없었다고 한다.
OpenAI는 여러 연구를 통해 6.7B GPT-3 모델에 최적의 하이퍼파라미터를 적용하여 튜닝된 모델이 13B GPT-3 모델보다 더 좋은 성능을 얻을 수 있었다고 한다.
GPT-4의 데이터셋
필자는 작년에 Compute Budget 제한을 고려한 Google의 최신 Language Model 연구 동향을 작성하였다.
Deepmind는 “Training Compute-Optimal Large Language Model (2022)” 논문에서 Chinchilla(70B)를 소개하면서 동일한 compute budget을 사용하여 Chinchilla를 4배 이상의 데이터셋으로 학습시켰을 때 Gopher(280B)보다 더 우수한 모델 성능을 거두었다. 이 논문에서 LLM 학습에 시사하는 사실은 다음과 같다.
- Compute budget을 제한하면서 LLM 성능을 높이고자 할 때 지금까지 모델 크기를 늘리는데 집중하였지만, 학습 tokens 수를 늘리는 중요하다.
- 파라미터가 2배 증가하면 학습해야 할 tokens 또한 2배 증가해야 모델을 최적화할 수있다.
- LLM을 학습시키는 비용이 많이 들어가기 때문에 최적의 모델 크기와 학습 tokens를 미리 선택하는 것이 필수적이다.
2020년 당시 최초의 GPT-3는 컴퓨팅 리소스 문제로 단 한번 학습되어 모델 최적화가 되지 않았다. 따라서 GPT-3와 비슷한 파라미터를 유지한다고 하였을 때, 최소 GPT-3를 포화시킬 정도의 데이터셋이 필요하다.
GPT-3(175B) 학습에 사용된 300B 개 tokens이 사용되었다. GPT-3의 파라미터 사이즈가 작아질지 커질지는 모르지만 Google Deepmind의 Chinchilla(70B)가 사용한 1.4T tokens보다는 많아야 될 것으로 예측된다.
GPT-4의 멀티모달 지원여부
우리가 사는 세계는 멀티 모달이므로 AI의 미래는 멀티 모달일 것이다. 하지만 기대와 달리 샘 알트만은 GPT-4가 DALL-E와 같이 text-to-image와 같은 멀티 모달을 지원하기 어렵고 GPT-3와 같은 텍스트만을 지원하는 싱글 모달만을 지원할 것이라 밝혔다.
이는 아직까지 텍스트 정보와 시각 정보를 결합하여 학습한 멀티 모달 LLM을 만드는 것이 아직까지는 어려운 과제임을 시사하고 있다.
레퍼런스
[1] ChatGPT, GPT-4, and More Generative AI News
[2] Language Model Scaling Laws and GPT-3
[3] InstructGPT is One of the Models Behind the Magic of ChatGPT
[4] GPT And Other LLMs That Internet Influencers Won’t Tell You About
[5] GPT3.5 +ChatGPT:An illustrated overview
[6] GPT-4 Is Coming Soon. Here’s What We Know So Far (GPT, GPT-2, GPT-3)
[7] Illustrating Reinforcement Learning from Human Feedback (RLHF)
[8] OpenAI CEO Sam Altman on GPT-4: ‘people are begging to be disappointed and they will be’
[9] ChatGPT, LLMs and Foundation models — a closer look into the hype and implications for startups
[10] Improving Language Understanding by Generative Pre-training
[11] Language Models are unsupervised multitask learners
[12] Language models are few shot learners
[13] GPT-3.5 + ChatGPT: An illustrated overview
[14] Why lanuguage is everything
[15] How chatgpt actually works
[16] Language Model Scaling Laws and GPT-3