GPT-3는 인공지능의 자연어 처리 성능을 크게 향상시키기 위해 OpenAI가 개발한 언어 모델로, 2020년에 등장했다. GPT-3의 등장은 자연어 처리 분야에서의 거대한 도약으로 평가되며, 언어 모델의 규모가 성능에 미치는 영향을 보여주는 중요한 사례가 되었다.
오늘은 GPT-3 모델을 발표한 논문인 Language Models are Few-Shot Learners를 리뷰해보고자한다. 논문과 함께 다양한 블로그 정보들을 취합해서 나름의 논리로 정리한 글이라는 점을 먼저 밝힌다.
기존의 NLP 연구는 대규모 사전학습 후 특정 작업에 대해 fine-tuning하는 방법으로 상당한 성과를 달성했으나, 이런 방식은 태스크가 달라질 때마다 매번 데이터를 확보하고 fine-tuing 해야한다는 한계가 있다. 반면에 인간은 몇가지 예제나 간단한 지시만으로 새로운 언어 작업을 수행할 수 있다. 이렇게 몇 개의 예시만 보고 태스크에 적응하여 문제를 푸는 것을 'few-shot learning' 이라고 한다.
GPT-3 이전의 NLP 연구는 사전학습된 RNN 혹은 Transformer 언어 모델을 사용하는 등 작업에 구애받지 않는 아키텍처로 발전해왔다. 그러나 새로운 작업마다 작업별 데이터셋과 fine-tuning이 필요하다는 한계는 여전했다. 이러한 한계를 극복하는 것은 다음의 세 가지 관점에서 의미가 있다. 첫째, 새로운 작업마다 대규모 레이블링 예제 데이터셋을 확보하지 않아도 된다면 언어 모델의 적용 가능성이 넓어질 것이다. 둘째, 미세조정 과정에서 훈련 분포에 과도하게 특화될 위험성을 낮추고 일반화 성능을 높여준다. 셋째, 인간은 대부분의 언어 작업을 학습하기 위해 대규모의 지도 학습 데이터셋을 필요로하지 않는다. 한계 극복을 통해 NLP 시스템이 인간과 같은 유연성과 일반성을 갖추기를 기대할 수 있다.

Meta Learning
- Task-Agnostic: 다양한 작업에서 일반화할 수 있는 능력을 키움
- Fast Adaptation: 새로운 작업을 적은 양의 데이터로 빠르게 학습
- Few-shot learning: 메타 학습은 적은 양의 데이터로도 새로운 작업을 학습할 수 있는 모델을 만드는 데 중점
메타 학습은 초기에 어느 정도 가능성을 보였지만 여전히 fine-tuning에 비해 훨씬 성능이 뒤쳐졌다.
NLP 연구의 새로운 트렌드는 모델 크기를 키우는 것이다. 트랜스 포머 언어 모델의 용량이 크게 증가해왔고, 파라메터 수가 1억 개(GPT-1), 3억 개(BERT), 14억 개(GPT-2), 80억 개(Megatron), 110억 개(T5), 170억 개(Project Turing)까지 늘어나며 다운스트림 태스크에서의 성능은 점점 더 좋아졌다. in-context learning 방식은 최대한 다양한 스킬과 태스크를 모델의 파라미터에 저장해야 하고, 모델의 스케일이 증가할 때 성능이 증가할 가능성이 있다.
GPT-3는 1750억개의 파라미터를 학습하며 각 작업에 대해 아래 세 가지 조건에서 평가된다.

위 그림은 세 가지 조건에 따른 결과를 보여주고 있다.
태스크에 대한 자연어로 된 지시를 추가하면 모델 성능이 향상된다.
(Natural Language Prompt > No Prompt)
모델에 제공되는 예제가 많을수록 성능이 향상 (K에 비례하여 정확도 증가)
큰 모델일수록 in-context 정보를 잘 활용
(175B params > 13B params > 1.3B params)
위 과정에서는 그래디언트 업데이트나 미세조정을 포함하지 않는다.

파라미터 개수가 많을수록, 예제수가 많을수록 성능이 개선된다는 점을 위 그래프로 확인할 수 있다.
추가 논의
GPT-3의 한계:
데이터 오염 문제:
기본적인 사전학습 접근법(모델, 데이터, 훈련)은 GPT-2와 유사하다. 다만 모델 크기, 데이터셋 크기 및 다양성, 훈련 길이의 확장 작업이 추가되었다. In-context 학습법도 GPT-2와 비슷하다. 본 논문에서는 GPT-3을 평가하는 조건을 다음과 같이 네 가지로 세분화하여 제시한다.
1) Fine-Tuning(FT) : 다운스트림 작업에 특화된 지도 학습 데이터셋으로 사전 학습된 모델의 가중치를 업데이트하는 방법이다. 보통 수천~수만개의 라벨링 된 데이터를 사용한다. 이 방법은 성능 향상에 크게 도움되지만, 매 태스크마다 대규모 데이터셋이 필요하다는 단점이 있다.
2) Few-Shot(FS) : 모델은 추론 과정에서 예시 작업 몇가지를 제공 받지만, 가중치 업데이트는 허용되지 않는다. 예제는 예를들어, 영어->프랑스어 번역 작업이라고 가정할 때, 영어 문장과 번역된 프랑스어 문장 결과를 포함한다. 또한 모델이 완성할 것이라고 기대하는 마지막 예제를 제시해준다. 일반적으로 K개의 예제는 10에서 100사이로 설정하며 이는 모델의 context window에 맞는 크기이다. 하지만, 대부분의 모델에서 few-shot learning의 성능은 fine-tuning 결과를 따라가지 못한다.
3) One-Shot(1S) : FS 세팅과 같으나, 하나의 예제만을 예시로 준다.
4) Zero-Shot(0S) : 태스크에 대한 예제 없이, 태스크 지시어만 제공한다.


모델 아키텍처
GPT-2와 기본적으로 동일(modified initialization, pre-normalization, reversable tokenization)
트랜스포머 레이어의 attention 패턴에 대해 dense와 locally banded sparse attention을 번갈아 사용

모델 크기 스케일링:
연구 목적:
모델 배치:

학습의 주가 되는 데이터셋은 Common Crawl 데이터이다. 해당 데이터는 양적인 측면에서는 훌륭하지만 몇가지 정제 과정을 필요로 한다.
low-quality filtering
1) WebText를 high-quality document로 labeling
2) Common Crawl을 low-quality document로 labeling해 데이터셋을 구축
3) 이를 분류하는 classifier를 학습
4) classifier를 사용해 Common Crawl 중 high-quality로 분류되는 데이터만 필터링
fuzzy deduplication
n-gram 단위로, 다른 데이터와 겹치는 데이터는 삭제한다. 이를 통해 data contamination과 overfitting을 방지할 수 있다.
최종적으로, 45TB를 570GB(400B BPE Tokens) 정도로 줄였다.
다만, 이 데이터를 그대로 사용한 것이 아니라 crawling 데이터셋의 단점을 보완하기 위해 다른 고품질의 데이터셋을 섞어서 데이터셋을 구축한다. 이때, 가중치를 두어, 깔끔한 데이터셋이 실제 양에 비해 상대적으로 높은 빈도로 학습되도록 한다.
데이터 샘플링 방식:
데이터 오염 문제:

위 그림은 스케일에 따른 8개의 모델에 대한 훈련 곡선을 나타낸다. 그래프에 표시된 곡선들이 일정한 패턴을 따르고 있는데 이 패턴을 power-law라고 한다. power-law에 따르면 더 많은 컴퓨팅 파워를 사용하면 성능이 향상된다는 것을 알 수 있다.
그래프에서 보라색에서 노란색으로 이어지는 곡선들은 다양한 크기의 모델들을 나타내는데, 노란색으로 갈수록 더 큰 모델임을 나타낸다. 큰 모델일수록 더 많은 컴퓨팅 파워를 사용해도 계속해서 성능이 향상되는 것을 볼 수 있다.
평가 범위:
평가 방식:

이 섹션에서는 전통적인 언어 모델링 작업과 단어 예측, 문장이나 단락 완성, 또는 텍스트 조각의 가능한 완성 중 하나를 선택하는 작업에서 GPT-3의 성능을 테스트한다.
1) Language Modeling
2) LAMBADA


3) HellaSwag
4)StoryCloze
GPT-3가 폭넓은 사실 기반의 지식에 대한 질문에 답변할 수 있는지 측정
open-domain QA 형태의 태스크에 대해 closed-book 테스트를 진행
Natural Questions
WebQuestions
TriviaQA




훈련 데이터셋은 인터넷에서 수집되었기 때문에, 모델이 테스트 데이터셋 중 일부를 훈련 데이터로 사용했을 가능성이 있다. 사전 학습 데이터셋의 규모가 커짐에 따라 데이터 오염 감지의 중요성은 점점 더 중요해지고 있다. 그러나 GPT-3의 경우 데이터의 양이 매우 많아 훈련 데이터셋에 과적합되지 않았으며 이는 위 그림에서 확인할 수 있다. 따라서 오염이 빈번할 가능성은 있지만, 그 영향은 크지 않다고 예상된다.

위 그래프는 GPT-3 모델을 평가할 때 사용된 데이터셋 중 일부가 훈련 데이터와 중복되어 성능에 영향을 미쳤을 가능성을 조사한 결과를 보여준다. 각각의 벤치마크에 대해 사전학습 데이터와 13-gram(13개 단어) 중복이 있는 예제 데이터를 삭제하는 clean버전의 테스트 셋을 생성하여 benchmark로 두고 평가를 진행한 후 원래 점수와 비교한다. 위의 그림에서도 볼 수 있듯이 대부분의 데이터셋에서 cleansing 후 성능 변화는 미미하다. 즉, 일부 데이터에서 테스트 데이터셋이 훈련 과정에서도 사용되는 오염이 있을 수는 있으나 성능에 영향을 거의 미치지 않는 것으로 보아, 모델이 사전학습을 통해 테스트 데이터셋을 "외움"으로써 성능이 높아진 것은 아니라는 것이다.
양방향 태스크에서의 성능 저하
본질적 한계
학습 효율성 문제
few-shot 셋팅의 불확실성
비용 문제
해석 가능성
NLP 모델은 코드 작성, 검색 엔진 개선 등 유익한 응용 프로그램에 적용 가능하다. 하지만 모델이 발전한 만큼 잠재적으로 악용될 가능성이 있기에 잠재적 해악을 연구하고 완화하려는 노력이 필요하다.
1) Potential Misuse Applications
2) Threat Actor Analysis
3) External Incentive Structures
1) Gender

2) Race

3) Religion
GPT-3는 언어 모델의 한 종류에 그치지 않고 NLP의 새로운 패러다임을 제시했다고 해도 과언이 아니다. 연구 성과 뿐만 아니라 향후 연구 방향을 제시해주었고 GPT-4 등 현재 그 방향에 맞게 연구 성과들이 나오고 있다는 점도 주목할만하다. 또한 연구 성과에도 불구하고 모델의 편향 문제와 추론 과정의 복잡성 등 해결해야 할 문제들을 명확히 보여준다는 점도 인상 깊었다.
https://littlefoxdiary.tistory.com/44
https://velog.io/@tobigs-nlp/
https://ffighting.net/