데이터과학/자연어처리

[자연어처리][paper review] GPT-3 : Language Models are Few-Shot Learners

섭구
반응형

Attention Mechanism과 Transformer의 등장,

그리고 대용량 corpus에서의 pre-trainingtask-specific Fine-tuning으로 학습하는 언어모델은 근래에 대부분의 NLP task 성능을 몰라보게 끌어올렸습니다.

이러한 모델들을 대부분의 테스크에 잘 작동하는 task-agnostic 모델이라고 표현합니다. 그렇다면 task-agnostic한 Pretrained language model은 만능일까요? 역시 아직은 해결해야 할 한계점이 존재합니다.

바로, Fine-tuning 과정에서 아직은 적게는 수천, 많게는 수만의 labeled supervision dataset을 필요로 한다는 것 입니다.

이러한 한계점의 해결은 다음의 세가지 관점에서 매우 중요합니다.

 

1) 매번 새로운 target task에 대하여 대용량의 labeled dataset을 확보하는 것은 실용적인 관점에서 매우 비 효율적입니다. 특히 몇몇 고 수준 NLP task는 labeling의 비용이 매우 높습니다.

2) 매우 큰 모델에서 좁은 분포의 데이터를 학습하는 것은 가짜 상관관계(spurious correlations)를 만들 가능성을 키웁니다.

Pretraining을 위해 크게 설계된 모델을 좁은 task distribution에 Fine-tuning하는 과정은 매우 큰 모델에 좁은 분포의 데이터를 학습하는 것과 같습니다.

더 큰 모델이라고 해서 작은 모델에 비해 Out-of-distribution에 대한 generalization 성능이 높은 것은 아니라는 연구가 존재합니다. 따라서 사전학습에 적합되어있는 모델을 다른 분포의 데이터에서 Fine-tuning한 이전의 결과들은 과장되어 있을 가능성이 큽니다.

3) 인간은 실제로 새로운 language task를 배우는데 많은 예시가 필요하지 않습니다. 즉 실제 인간의 언어능력은 adaptability, fluidity, generality를 갖추고 있어 여러가지 작업을 자유자제로 합치며 바꿀 수도 있습니다. 

 

이러한 이슈들을 다룰 수 있는 한가지 방법은 바로 'Meta-learning' 입니다.

Meta-Learning은 학습 과정에서 다양한 스킬과 패턴인식 능력을 동시에 키워, Inference 단계에서 원하는 task에 빠르게 적응할 수 있도록 모델을 학습시키는 방법입니다.

GPT-2는 Metra-learning의 한가지 방법인 'in-context learning'을 통하여 학습되었습니다.

in-context learning은 원하는 task에 대한 간단한 설명을 함께 Input하여 주는 방법 입니다.

 

하지만 GPT-2가 모든 task에서 항상 잘 작동하는 것은 아니였습니다.

in-context learning 기반의 GPT-2는 QA와 Reading Comprehension 등의 Task에서 기존의 SOTA 모델에 비해 큰 차이로 한계점을 보이며 fine-tuning 방법에 비해 아직 갈 길이 멀다는 것을 보여주었습니다.

 

최근 언어 모델의 트랜드는 Transformer를 기반으로 하여 모델의 크기를 매우 크게 늘리는 것 입니다.

모델 크기의 증가가 down-stream task의 성능을 증가시킨다는 것은 어느정도 검증된 사실입니다.

다양한 저자들은 기술과 패턴인식 능력을 포함하는 in-context learning 또한, 모델의 크기의 증가에 따라 비슷한 일반화 능력을 갖게 될 것이라고 생각하였습니다.

따라서 그들은 1750억개 파라미터로 만들어진 autoregressive language model GPT-3를 제안하고 있습니다.

이는 기존 15억개의 파라미터를 갖는 GPT-2의 100배를 넘어가는 파라미터 개수 입니다.

 

in-context learning은 모델의 context window에 주어지는 예시의 개수에 따라 One-shot, Zero-shot, Few-shot 환경으로 구별 될 수 있습니다.

본 논문에서는 Meta-learner로서의 성능을 검증하기 위하여 24개 이상의 데이터셋 환경에서 GPT-3를 앞선 세가지 조건(Zero, One, Few)으로 검증하였습니다.

다음의 그래프는 크기가 다른 3개의 GPT 모델을 예시의 수에 따라 비교한 결과입니다.

Fine-tuning없이 pretraining만으로 진행된 다음의 실험은 모델의 크기와 예시의 수(K)에 따른 성능변화가 명확히 존재함을 보여줍니다.

GPT-3는 zero-shot, few-shot 환경에서도 매우 우수한 성능을 보였습니다.

Few-shot 환경에서는 fine-tuning을 진행하는 기존의 SOTA 모델들 보다도 우수한 성능을 보이는 경우가 있었습니다.

반대로, GPT-3의 크기에도 불구하고 Few-shot 환경에서 마저 매우 고전하는 Task 또한 존재하였습니다.

본 논문은 2020년 OpenAI 팀에 의해 발표된 논문으로, GPT-3의 강점, 약점 그리고 한계에 집중하는 동시에 언어모델의 few-shot learning에 대한 전반적인 연구를 포함하고 있습니다.

 

 

1. GPT-3

GPT-3 는 AR(auto-regressive) 방법으로 학습하는 unsupervised pretrained language model 입니다.

GPT-3의 모델 구조, 데이터, 학습과정을 포함하는 Pre-training 과정은 사실상 앞선 논문인 GPT-2와 거의 유사합니다.

먼저, GPT-2에 대한 자세한 설명은 아래의 리뷰를 참고 부탁드립니다.

 

[paper review] GPT-2 : Language Models are Unsupervised Multitask Learners

머신러닝 시스템은 Task에 특화된 대규모의 데이터셋과 대용량의 모델, 그리고 지도학습을 통해 빠르게 발전해왔습니다. 머신러닝 시스템을 개발하기 위한 가장 일반적인 방법은 다음과 같습니

supkoon.tistory.com

 

 

Model Architecture

Decoder block

GPT-3는 앞서 말씀드린 대로 GPT-2에서 모델의 크기, 데이터셋의 크기, 다양성, 학습 횟수를 전반적으로 늘린 모델에 불과합니다.

GPT-1에서 GPT-2로 오며 적용된 작은 변화들(modified initialization, pre-layer normalization) 역시 GPT-3에 그대로 적용됩니다.

한가지 다른점이 있다면 일정한 패턴을 두고 Attention을 적용하는 sparse transformer를 사용했다는 것 입니다.

sparse transformer

저자들은 모델 크기에 따른 ML 성능의 의존성을 확인하기 위해 1억 2,500만에서 1,750억 개의 파라미터에 이르기까지 3000배에 이르는 8가지 크기의 모델을 훈련하였습니다. 마지막 1750억개의 파라미터를 갖는 모델이 최종적인 GPT-3입니다.

 

Approach

in-context learning의 방법 역시 GPT-2와 비슷하지만, GPT-3는 Zero-shot, One-shot, Few-shot의 조건으로 in-context learning을 세분화 합니다.

일반적인 언어모델이 거치는 Fine-tuning에 대한 설명과 함께, in-context learning의 Zero-shot, One-shot, Few-shot 환경에 대한 자세한 설명을 드리도록 하겠습니다.

 

1)Fine-tuning

Fine-tuning은 최근 가장 많이 사용되는 방법으로, 이미 학습된 pretrained language model에 labeled dataset을 사용하여 특정 task에 잘 맞도록 추가적으로 가중치를 조정하는 방법입니다.

이 과정에서 수천개 이상의 task-specific한 labeled 데이터셋이 요구됩니다. 

따라서 앞서 말씀드렸던 아래의 세가지 문제점이 발생할 수 있습니다.

1) 매번 새로운 target task에 대하여 대용량의 labeled dataset을 확보하는 것은 실용적인 관점에서 매우 비 효율적입니다. 특히 몇몇 고 수준 NLP task는 labeling의 비용이 매우 높습니다.

2) 매우 큰 모델에서 좁은 분포의 데이터를 학습하는 것은 가짜 상관관계(spurious correlations)를 만들 가능성을 키웁니다.

Pretraining을 위해 크게 설계된 모델을 좁은 task distribution에 Fine-tuning하는 과정은 매우 큰 모델에 좁은 분포의 데이터를 학습하는 것과 같습니다.

더 큰 모델이라고 해서 작은 모델에 비해 Out-of-distribution에 대한 generalization 성능이 높은 것은 아니라는 연구가 존재합니다. 따라서 사전학습에 적합되어있는 모델을 다른 분포의 데이터에서 Fine-tuning한 이전의 결과들은 과장되어 있을 가능성이 큽니다.

3) 인간은 실제로 새로운 language task를 배우는데 많은 예시가 필요하지 않습니다. 즉 실제 인간의 언어능력은 adaptability, fluidity, generality를 갖추고 있어 여러가지 작업을 자유자제로 합치며 바꿀 수도 있습니다. 

 

2)Few-shot learning

task description과 함께 모델의 context window에 K개의 예시를 보여줍니다. 하지만 예시를 사용하여 가중치를 업데이트 하지 않습니다.

보통 10~100사이의 예시를 이용하는 경우가 해당됩니다.

Few-shot 환경의 이점은 labeled data 확보에 대한 부담이 감소한다는 것과 fine-tuning dataset에서 지나치게 좁은분포를 학습할 가능성이 줄어든다는 것 입니다.

하지만 여전히 소량의 labeled data가 필요하다는 점과 최신 fine-tuning 방법들에 성능이 미치지 못한다는 단점이 존재합니다.

 

3)One-shot learning

모델의 context window에 1개의 예시만을 사용한다는 것을 제외하고는 Few-shot과 동일한 특징을 가지고 있습니다.

하지만 Fine-tuning의 세번째 단점인 "인간은 실제로 새로운 language task를 배우는데 많은 예시가 필요하지 않다."를 고려하여 볼때,

One-shot learning은 인간의 학습 방법과 가장 흡사한 in-context learning 방법일 것 입니다.

 

4)Zero-shot learning

모델의 context window에 예시를 보여주지 않고, Task에 대한 설명만을 넣어 줍니다.

이 외의 특징은 one-shot learning과 동일합니다. 

Zero-shot learning은 극도의 편의성을 제공하는 동시에 robustness 능력을 제공하고, spurious correlation을 피할 수 있게 해줍니다.

하지만 Zero-shot 환경은 예시 없이 설명만으로 이루어지기 때문에 가장 어려운 조건 입니다. 어떤 경우에는 인간에게 마저도 어려운 작업이 됩니다. Fine-tuning에 비해서 성능은 저조할 수 있지만, 인간 능력과의 비교를 위해서는 향후 One-shot 혹은 Zero-shot에 대한 결과는 중요도가 높습니다.

 

Training dataset

언어 모델을 학습하기 위한 데이터셋은 web scrappping을 통해 급속도로 확장되어 1조개의 단어로 구성된 Common Crawl dataset에 이르렀습니다. 이는 GPT-3를 학습하기에 충분한 데이터 크기 입니다.

하지만 필터링되지 않은 Common Crawl dataset의 품질은 일반 데이터셋에 비해 떨어집니다.

따라서 저자들은 3가지 단계를 거쳐 데이터셋의 평균 품질을 향상시켰습니다.

1) 다양한 고품질 corpora와의 유사성을 고려하여 Common Crawl을 다운로드 받고 필터링 하였습니다.

2) 문서 수준에서 fuzzy deduplication을 진행하여 중복을 방지하였습니다.

3) GPT-2를 위해 생성한 web scrap 기반 고품질 데이터셋인 WebText dataset을 포함하여, 추가적인 Dataset을 Common Crawl에 더하는 augmentation 방법으로 데이터셋의 다양성을 증가시켰습니다.

Mixture of datasets

위의 테이블은 GPT-3의 학습을 위해 사용된 최종 dataset의 구성 비율입니다.

또한 학습과정에서는 구성 비율이 아닌 데이터셋의 품질에 비례한 확률로 샘플링을 진행하였습니다.

table의 "Weigth in training mix"가 바로 이 샘플링 가중치를 의미합니다.

가중치를 이용하여 샘플링 한 결과, Common Crawl이 가장 큰 비율을 차지하고 있음에도 불구하고 상대적으로 품질에 따른 가중치가 높지 않아 평균적으로 1회보다 적게 샘플링 되었습니다. 반면에 다른 데이터셋들은 상대적으로 작은 비율에도 2~3회 샘플링되었습니다.

이는 본질적으로 더 높은 품질의 훈련 데이터에 대한 대가로 소량의 과적합을 허용했음을 의미합니다.

 

만약 학습데이터와 검증데이터 사이에 중복이 생긴다면 GPT-3와 같은 매우 큰 모델은 그것을 외워버리기 십상입니다.

따라서 저자들은 본 논문에 포함된 모든 벤치마크 데이터셋의 검증,테스트 셋 사이의 중복(overlap)을 고려하고 해소하려 했습니다.

하지만 학습이 한참 진행되던 와중에 버그가 발생하였고, 다시 학습하는 경제적 비용이 너무 크다고 판단하여 다시 학습을 진행하지는 않았다고 합니다.

 

2. Results

GPT-3 논문은 appendix를 제외하고도 40페이지에 달하며, 절반 이상은 다양한 검증 과정에 대한 내용이 주를 이루고 있습니다. 모든 검증 과정을 세세하게 리뷰 할 수 있으면 좋겠지만, 아쉽게도 흥미있게 읽혔거나 중요하다고 생각한 부분을 중심으로 최대한 서술하였습니다.

 

우선 8개 GPT-3모델의 learning curve를 비교한 결과 큰 모델일 수록 계산량의 증가에 따라 언어모델의 성능(Validation loss)이 지수적으로(power-law) 향상되었음을 확인할 수 있습니다.

하지만, 이러한 cross-entropy loss의 개선이 training dataset의 거짓된 디테일(spurious detail)을 맞춤으로서 왔다고도 의심해 볼 수 있습니다.

따라서 저자들은 데이터셋들을 9개의 NLP task로 분류하여 모델 크기에 따른 cross-entropy 개선이 광범위한 NLP task의 성능 향상에 일관되게 관여하고 있음을 검증하였습니다.

 

Task 1. Language Modeling

1-1. Language Modeling

Language modeling의 성능을 Perplexity를 지표로 비교하였을 때 Zero-shot 환경에서 기존의 SOTA모델을 크게 앞질렀습니다.

Language modeling

1-2. long-range dependency

언어 모델의 long-range dependency 포착 능력을 확인할 수 있는 LAMBADA 데이터셋에서의 결과입니다.

Zero-shot 환경에서도 기존의 SOTA모델보다 8%나 높은 정확도를 보였습니다.

아래의 그래프를 통해 모델 크기의 증가에 따라 인간의 능력을 향해 우상향 증가하고 있음을 확인할 수 있습니다.

 

Task 2. Closed Book Question Answering

Closed Book QA는 광범위한 지식에 관한 문제에 대해 Context 없이(Closed book) 답변을 생성하는 Task 입니다.

GPT-3가 One-Shot과 Few-Shot 환경에서 Fine-tuning 기반의 SOTA모델을 능가하였습니다.

 

Task 3. Translation

Translation은 GPT-2의 성능이 좋지 못했던 Task 입니다.

특히 영어를 다른 언어로 번역하는 경우(ex 영어->불어) 상대적으로 성능이 하락하는 모습을 보여주었습니다.

GPT-3역시 같은 문제를 보였습니다.

BLEU score를 통해 비교하였을 때, 역시 기존의 SOTA 모델에는 미치지 못하는 성능을 보였습니다.

다른 언어를 영어로 번역하는 경우(ex 불어->영어) 일부 Few-shot 환경에서 SOTA를 달성하는 모습을 보여주었지만, 영어를 번역하는 경우 역시 성능이 많이 떨어지는 모습을 보였습니다.

저자들은 GPT-2 모델의 BPE encoding이 영어에 맞지 않기 때문에 이러한 현상이 발생하는 것이라고 주장하였습니다.

하지만 아래와 같이 모델 크기에 따른 성능변화는 여전히 유효했음을 확인할 수 있습니다.

Task 4.Winograd-Style Tasks

Winograd는 대명사가 지칭하는 것을 맞추는 작업으로, 문법적으로는 매우 모호하지만(ambiguous) 인간에게는 전혀 모호하지 않은 작업입니다.

Winograd task를 통해 모호성을 해소시키위한 추론 능력을 확인할 수 있습니다.

일반적인 Winograd dataset에서 GPT-3가 SOTA를 달성하지는 못하였지만, fine-tuning 기반의 SOTA모델과 인간 능력에 매우 가까운 성능을 보여주었습니다.

상대적으로 어려운 Winograde dataset에서는 아쉽게도 좋은 성능을 보여주지 못하였습니다.

Winogrande의 경우 인간능력과 Fine-tuning 기반의 SOTA에는 크게 미치지 못하였고, Few-shot의 경우 Fine-tuning 기반의 RoBerTa와 비슷한 성능을 보였습니다. 역시 모델 크기에 따른 성능향상이 존재합니다.

Task 5. Common Sense Reasoning

PhysicalQA는 물리학적인 이해와 세상에 대한 전반적인 이해를 묻는 Task 입니다.

GPT-3는 기존의 Fine-tuning기반 SOTA모델의 성능을 Zero-shot 환경에서도 능가하였습니다. 

또한 모델 크기에 따른 성능 증가 경향 역시 보였습니다.

Task 6. Reading Comprehension

Reading Comprehension task는 모델의 독해력을 평가하기 위한 Task 입니다.

자유형식 대화를 다루는 데이터셋은 CoQA에서는 인간 능력에 가까운 좋은 성능을 보여주었습니다.

하지만 대화의 주제, 형식에 따라 성능이 매우 저조하거나 편차가 큰 경우가 존재하였습니다.

Task 7. SuperGLUE

SuperGLUE는 다양한 벤치마크 데이터셋을 포함하고 있는 Task입니다.

GPT-3와 BERT계열 fine-tuning 모델의 성능을 면밀하게 비교해보기 위하여 진행하였습니다.

SOTA를 달성하지는 못하였으며, 일부는 비슷하거나 떨어지는 성능을 보였습니다.

SuperGLUE의 경우 특히 모델 크기와 예시의 수에 따라 성능이 급격하게 증가하는 모습을 확인할 수 있었습니다.

Task 8. Natural language Inference

NLI는 두 문장 사이의 인과관계를 포착할 수 있는 능력을 판단하기 위한 Task 입니다.

앞선 문장에 따라 다음 문장이 논리적으로 참인지,모순인지,중립인지를 판단하는 분류를 풀게 됩니다.

아쉽게도 가장 큰 모델의 Few-shot setting을 제외하고는 찍기와 같이 형편없는 결과를 보였습니다.

Task 9. Synthetic and Qualitative Tasks

GPT-3의 Few-shot 성능을 증명할 수 있는 가장 좋은 방법은 계산과 같이 학습 데이터셋에서 잘 등장하지 않는 새로운 패턴을 찾거나 빠르게 적응해야 하는 작업을 하는 것 입니다.

 

9-1. Arithmetic

Fine-tuning없이 간단한 수학계산을 하는 task에서 GPT-3는 주목할만한 성능을 보였습니다.

두 자릿수, 세 자릿수 덧샘, 뺄샘의 경우 Few-shot 환경에서 거의 100%에 가까운 성능을 확인할 수 있습니다.

모델 크기에 따라 성능이 증가했으며, 가장 큰 GPT-3 모델의 경우 전반적으로 합리적인 계산 능력을 갖출 수 있었습니다.

9-2. Word Scrambling and Manipulation tasks

Word Scrambling and Manipulation은 몇가지의 문자조작을 포착하는 능력을 확인하는 작업입니다.

다음의 다섯가지 Manipulation을 통해 검증을 진행하였습니다.

1) Cycle letters in word(CL)

단어의 문자 순서를 회전시킨 후, 원래 단어를 찾게합니다. 

ex) 심층학습 -> 층학습심 -> 심층학습

2)Anagrams of all but first and last characters(A1)

맨 앞과 맨 뒤 문자만을 유지하고 나머지 문자는 랜덤하게 섞은 후, 원래 단어를 찾게 합니다.

ex) 자연어처리 -> 어처연 -> 자연어처리

3)Anagrams of all but first and last 2 characters(A2)

맨 앞 2개 문자와 맨 뒤 2개 문자만을 유지하고 나머지 문자는 랜덤하게 섞은 후, 원래 단어를 찾게 합니다.

ex) 한화이글스우승 -> 한화글스이우승 -> 한화이글스우승

4)Random insertion in word (RI)

문자 사이에 랜덤하게 기호 혹은 공백을 추가합니다.

ex) 한화이글스 -> 한 화.이,글!스 -> 한화이글스

5)Reversed words(RW)

문자 순서가 거꾸로된 단어를 통해 원래 단어를 추론합니다.

ex) 한화이글스 -> 스글이화한 -> 한화이글스

 

각각의 Manipulation을 실험해본 결과, 역시 모델의 크기에 따라 성능 또한 같이 향상되었습니다.

RI의 경우 Few-shot 환경에서 70%에 가까운 정확도로 꽤 좋은 성능을 보였습니다. 

하지만 RW task의 경우에는 모든 크기의 모델에서 0에 가까운 확률을 보이며 문제를 풀지 못하였습니다.

모두 어려운 Task임에도 불구하고 가장 큰 모델에서 나름대로 좋은 성과를 얻었다고 생각합니다.

이러한 결과를 통하여 저자들은 GPT-3가 단지 BPE token을 단순 조작하지 않았고, BPE token의 하부구조에 대한 이해를 바탕으로 문제를 해결하였음을 확인할 수 있다고 주장합니다.

9-3. SAT Analogies

SAT Analogy는 일반적인 text distribution에서 벗어난 문제 해결을 실험해 보기 위해 진행되었습니다.

SAT 시험의 다지선다 문제를 풀게됩니다.

실험 결과 모델의 크기에 따라 성능이 증가하였으며, 찍기인 20%와 응시자 평균인 57%를 상회하는 문제 추론 능력을 보였습니다.

9-4. News Article Generation

제목과 부제목을 통한 뉴스생성이 인간을 얼마나 속일 수 있는지 실험한 결과입니다.

모델의 크기에 따라 정확도가 낮아져 뉴스 생성 능력이 점점 향상됨을 확인할 수 있었습니다. 특히 가장 큰 GPT-3 모델은 50%의 정확도로 거의 분간이 힘들정도의 뉴스 기사를 생성하였습니다.

다음 기사는 정답률 12%로 가장 분간이 힘들었던 GPT-3의 뉴스 기사 입니다.

다음 기사는 정답률 61%로 가장 분간이 쉬웠던 GPT-3의 뉴스기사 입니다.

9-5 Learning and Using Novel Words

새로운 단어를 학습하고 응용하여 생성하는 능력을 확인하는 작업입니다.

존재하지 않는 단어를 직접 정의하여 설명해준 후, GPT-3가 새로 정의한 단어를 활용하여 문장을 생성하였습니다.

아래의 예시를 통해 꽤나 합리적인 학습,응용 능력을 가지고 있음을 확인할 수 있습니다.

9-6. Correcting English Gramma

틀린 문법을 수정해주는 Task 입니다.

사람이 수정한 하나의 예시를 통해 다섯개의 추가적인 문법오류를 GPT-3가 수정하도록 하였습니다.

아래의 예시와 같이 GPT-3는 문법 수정에 있어서도 좋은 성능을 보였습니다.

 

From Task1~Task9

9가지의 Task로 분류된 여러 검증과정에서 GPT-3의 Zero-shot, One-shot, Few-shot 성능이 SOTA를 달성할 만큼 좋은 경우도 있었으며, 형편 없게 성능이 낮은 경우도 분명 존재하였습니다.

하지만 모든 Task에서 모델의 크기에 따른 성능을 함께 비교해 본 결과, 모델 크기와 예시의 수에 따라 언어 모델의 성능이 증가하는 경향을 확인할 수 있었습니다.

이는 앞서 말씀드렸던 대로, 모델 크기에 따른 cross-entropy 개선이 NLP task의 성능 향상에 일관되게 관여하고 있음을 의미합니다.

 

Measuring and Preventing Memorization Of Benchmarks

GPT-3가 사용한 훈련 데이터셋의 대부분은 인터넷을 통해 얻은 데이터 입니다.

따라서 훈련에 사용했던 데이터가 밴치마크 데이터셋의 테스트셋에 들어가 있을 가능성이 존재합니다. 이러한 문제를 데이터가 오염되었다고 하여 Data contamination이라고 합니다.

사실 기존의 모델들은 이러한 경우를 사실 잘 고려하지 않습니다. 하지만 본 논문의 저자들은 Data contamination 문제를 분명히 짚고 넘어가야 한다고 주장합니다.

따라서 GPT-2 에서는 훈련 데이터셋과 벤치마크 데이터셋 사이의 중복(overlap)을 고려하는 실험을 진행하였고, 중복이 있을 경우 더 좋은 성능이 나오기는 하였지만, 성능 자체에 큰 영향을 주지는 않는다는 결과를 냈습니다.

GPT-3의 경우에는 Common Crwal을 사용했을 뿐더러 GPT-2 보다 약 20배 더 큰 데이터셋을 활용하였기 때문에, 다시한번 Data contamination의 문제를 확인해 보았습니다.

우선 GPT-3의 학습 곡선을 보았을 때, Validation loss와 Train loss가 같은 감소세를 보이고 있습니다.

따라서 GPT-3가 훈련 데이터셋에 과적합되어 있지 않음을 확인할 수 있습니다. 

데이터에 Cleaning을 적용하여 성능에 영향이 있는지 확인하였습니다. 대부분의 데이터셋이 중앙 라인에 위치하고 있는 것을 보면 데이터의 오염이 벤치마크를 평가할 때 큰 영향을 주고 있지는 않다는 것을 확인할 수 있었습니다.

3. Limitations

GPT-3는 극복해야할 여러 한계점들 또한 존재합니다.

 

1)성능적 한계

GPT-3는 양적으로 질적으로 매우 큰 성능 향상을 보였지만,  GPT-2와 비교하여 여전히 몇몇의 NLP Task에서는 성능적 한계를 보였습니다.

텍스트 생성 시 문단 수준에서 동일한 내용을 반복 하는 경우가 있었습니다.

또한, "치즈가 냉장고에 있으면 녹을까?"와 같은 '간단한 물리학 상식' 분야를 잘 풀지 못하였습니다.

독해능력을 테스트하는 경우에도 in-context learning이 큰 효과를 가져오지 못하는 듯 보였습니다.

이러한 성능저하는 다른 분야에서 GPT-3가 보여주는 Few-shot in-context learning의 뛰어난 효과와 비교되며 더욱 두드러집니다.

 

2)구조와 알고리즘의 한계

GPT-3는 Auto-regressive 언어 모델입니다.

또한 GPT-3의 구조는 Transformer의 Decoder block으로 구성 되기 때문에, Masked self-Attention에 기반하고 있습니다.

Masked-self Attention은 엄밀히 따지면 bi-directional한 구조가 아닙니다. 또한 본 모델은 de-noising을 고려하는 목적함수를 설정하지 않았습니다.

이러한 구조, 알고리즘적인 문제가 일부 분야에서의 성능적 한계를 불러왔을 가능성이 존재합니다.

기존의 연구들을 뒤돌아 봤을 때, 만약 GPT-3와 비슷한 크기의 양방향(bidirectional) 모델이 있다면, GPT-3보다 뛰어난 fine-tuning 성능을 보였을 것으로 예상됩니다.

따라서 GPT-3 규모의 양방향 모델 혹은 Few-shot, Zero-shot 기반의 양방향 모델에 대한 향후 연구 가치가 존재한다고 저자들은 밝힙니다.

 

3)근본적인 한계

언어모델의 최근 트랜드는 'Scaling up' 입니다. 언어모델 자체의 근본적 문제가 아닌, 모델과 데이터의 크기에 이목이 집중되고 있습니다.

하지만 Pre-training 과정에서 기존의 목적함수는 본질적인 한계가 존재합니다.

현재의 목적함수는 모든 토큰에 동일한 가중치를 부여하며, 어떠한 토큰이 덜 중요한지, 더 중요한지를 고려하지 못하고 있습니다.

 

또한 현재의 Pre-training 목적함수는 단순히 self-supervised 기반의 prediction에 불과합니다. 현실의 대부분의 문제들은 단순 예측과는 거리가 멉니다.

따라서 실제 상황에서 대규모의 언어모델을 적용하기 위해서는 언어모델이 단순한 예측 보다는 조금 더 목적 지향적인 행동을 할 수 있어야합니다.

 

4)훈련의 비 효율성

GPT-3는 Pre-training 동안 인간이 한평생 보는 것 보다 많은 양의 텍스트를 학습합니다. 테스트 과정에서는 Few-shot으로 샘플링 효율성이 인간에 가깝기는 하지만, 추가적인 정보나 알고리즘의 개선을 통해 사전훈련 과정의 샘플링 효율성을 개선할 필요가 있습니다.

 

5)Few-shot learning의 불확실성

사실 GPT-3가 정말 새로운 작업을 빠르게 학습하기 때문에 Few-shot 환경에서 잘 작동하는 것인지는 확실하지 않습니다.

오히려 훈련 과정에서 해당 문제를 학습했을 가능성이 존재합니다.

synthetic task는 새롭게 접하였을 가능성이 크지만, 번역과 같은 작업은 학습과정에서 접하였을 가능성이 큽니다.

사실 이러한 불확실성은 인간에게도 존재합니다. 예시를 통해 학습하였을지, 과거에 이미 학습하였을지는 대부분의 경우에서 불분명합니다.

따라서 Few-shot learning의 효용성을 다방면에서 증명하는 것이 향후 연구에서 필요합니다.

 

6)비용

중간에 버그가 발견되었음에도 학습을 중단하지 못했던 것 처럼 GPT-3의 훈련비용은 매우 크며, 추론 시에도 적지않은 비용이 발생합니다.

실 사용을 위해서는 각각의 테스크를 위한 구조로 증류하는(distilation) 과정이 필요할 것입니다. 하지만 이 정도의 대규모 모델을 task-specific하게 distilation한 연구는 아직 존재하지 않습니다. 따라서 향후 연구가 필요해 보입니다.

 

7)설명 가능성

마지막으로 GPT-3 역시 기존의 딥러닝 시스템과 그 한계를 같이합니다.

우선, black box로서 결정에 대한 설명력이 떨어진다는 것 입니다. 또한 새로운 input에 대하여 인간보다 큰 Variance를 보입니다.

하지만 가장 큰 문제는 Data 자체의 bias를 해결하지 못한다는 것 입니다.

Data의 bias를 해결하지 못한다면 세상에 존재하는 여러 사회적 문제를 그대로 반영하여 실 사용에 있어서도 문제를 야기할 수 있습니다.

따라서 저자들은 다음 섹션에서 이 문제를 상세히 다루었습니다.

 

4. Broader Impacts

GPT-3와 같은 언어모델은 코딩, 자동완성, 번역 등  사회 전반에 많은 도움을 가져다 주고 있습니다.

하지만 너무나도 정교해진 성능을 바탕으로 언어모델이 악용되거나 사회에 악영향을 미칠 가능성 또한 증가하고 있습니다.

효용성보다 악용가능성이 큰 것은 아니지만 악용될 가능성이 존재하기 때문에 다음의 문제점들을 분석하였습니다.

 

1)악용의 가능성

언어모델은 정교한 생성능력을 바탕으로 가짜뉴스, 스팸, 피싱, 가짜 에세이 등을 인간보다 쉽게 작성할 수 있습니다. 따라서 이러한 악용사례들이 증가할 가능성이 존재합니다. 또한 사회적인 선동을 위해 사용될 수도 있으며, 최악의 경우 해커들에게 악용될 수도 있습니다.

따라서 향후 다양한 연구개발을 통해 이러한 가능성을 차단할 필요가 있습니다.

 

2)편견과 공정성에 대한 우려

앞서 한계로 지적되었듯이 GPT-3는 기존 학습데이터에 존재하는 데이터의 bias를 필터링 없이 학습합니다.

저자들이 진행한 분석에 따르면 인터넷의 데이터를 통해 학습된 모델은 인터넷에 존재하는 bias를 그대로 갖고 있었다고 합니다.

 

2-1. 성별(Gender)

GPT-3에 존재하는 성별에 대한 bias를 관찰하기 위해 저자들은 성별과 직업(occupation)의 상관관계를 분석하였습니다.

"The {occupation} was a {Gender identifier}"와 같은 문장을 통해 실험을 진행한 결과,  388의 직업중 83%의 경우에서 남성에 관련된 어휘를 선택하였다고 합니다.

특히 신체적인 능력을 필요로 하는 목공, 보안관 같은 직업이나 고학력을 요구하는 국회의원, 교수 등에서는 더욱 남성에 편향된 단어들이 선택 되었습니다.  접수원, 가사도우미와 같은 직종에서 여성과 관련된 단어가 나타난 것과는 대조적이라고 할 수 있습니다.

 

저자들은 또한 다음과 같은 두가지 환경에서 수식을 통해 편견의 정도를 계산하여 보았습니다.

"The {occupation} was a {Gender identifier}"

"The incompetent {occupation} was a {Gender identifier}"

"The competent {occupation} was a {Gender identifier}"

$${1\over n_{jobs}}\sum_{jobs}({P(female|Context)\over P(male|Context)})$$

수식어가 없는경우, Competent(유능한), incompetent(무능한)의 세가지 경우에서 -1.11 ,-2.14, -1.15 로 모두 남성 편향적인 결과가 나왔습니다. 또한 Competent(유능한)의 경우 더욱 남성 편향적 결과가 나왔다는 점에서 Gender에 대한 bias가 모델에 존재함을 알 수 있었습니다.

 

다음의 결과는 "He was very", "He would be described as"와

"She was very", "She would be described as"를 GPT-3에 제시하였을 때, 모델이 가장 많이 생성한 단어들의 예시입니다.

그 결과, 여성의 경우 "Beautiful", "Gorgeous"와 같이 외모 지향적 단어가 주로 선택되었음을 확인할 수 있었습니다.

2-2. 인종(Race)

저자들은 인종에 대한 편견 정도 또한 확인해 보았습니다. 

"the {race} women was very {}"

"the {race} man was very {}"

"People would describe the {race} person as {}"

위의 세가지 문장을 제시하여 얻은 결과는 다음과 같습니다. 각 인종에 대한 결과 단어에 Sentiment score를 적용한 결과 인종에 따라 분명한 차이가 존재함을 알 수 있었습니다. 아시안에 대해서는 일관되게 긍정적 표현이 사용되었으며, 흑인에 대해서는 상대적으로 좋지 못한 평가가 주를 이루었습니다. 

2-3. 종교(Religion)

종교에 대해서도 50개의 단어를 생성하여 편향에 대한 실험을 진행하였습니다.

실험결과, 인종과 유사하게 특정 종교에 특정 단어들이 연관되어 나타남을 확인할 수 있었습니다. 특히 '폭력적', '테러리스트'와 같은 단어가 상대적으로 이슬람에 자주 등장하였습니다.

3)에너지 효율성 문제

일반적인 딥러닝 모델들의 경우 전력 소모량을 크게 고려하지 않습니다.

하지만 GPT-3의 경우, 사전학습 과정에서 하루에 GPT-2의 수백배에 해당하는 전력소비가 일어납니다.

모델의 사전학습에 따른 비용 뿐만 아니라, 모델의 수명에 따른 감가상각 또한 고려한다면 엄청난 경제적 비용이 따른다고 할 수 있습니다.

물론 GPT-3를 한번 학습한다면, 생성 과정에서는 큰 전력소비가 일어나지 않습니다.

하지만 추후에 모델과 알고리즘적인 개선을 통하여 보다 효율적인 모델을 만들 필요가 있다고 합니다.

 

 

마무리

GPT-3는 대규모의 데이터와 모델을 바탕으로 한 Auto-regressive Pre-trained language model입니다.

GPT-3의 가장 큰 Contribution은 기존의 언어모델들과 다르게 Fine-tuning을 사용하지 않고도 Meta learning의 한가지 방법인 in-context learning을 통해 높은 Few-shot 성능을 보였다는 것 입니다. 심지어 일부의 Task에서는  Zero-shot, One-shot 환경에서도 기존의 SOTA 모델을 능가하였습니다.

본 논문을 읽으면서 Meta-learning기반 언어모델에 대한 서베이를 읽는 느낌을 받았습니다. 특히 모델 크기와 성능의 상관관계에 대한 다양한 검증과정과 모델의 한계점에 대한 다방면 분석이 매우 흥미롭게 느껴졌습니다.

기회가 된다면 GPT-3에 언급된 다양한 문제점을 극복하기 위한 연구들을 서칭해 보도록 하겠습니다. 감사합니다.

 

 

 

 

반응형