이전 pre-trained model 모델 포스팅
2021.05.31 - [Study/NLP] - [NLP/자연어처리] pre-trained model(1) - ELMo(Embeddings from Language Models)
[NLP/자연어처리]pre-trained model(4) - GPT-2(Language Models are Unsupervised Multitask Learners)
2021.05.31 - [Study/NLP] - [NLP/자연어처리] pre-trained model(1) - ELMo(Embeddings from Language Models) 2021.06.01 - [Study/NLP] - [NLP/자연어처리] pre-trained model(2) - GPT-1(Generative Pre-Train..
everywhere-data.tistory.com
OpenAI에서 개발한 GPT-3는 GPT-2의 업그레이드 버전이라고 볼 수 있다. GPT-3 모델을 이용하여 다양한 활용을 하게 되었는데, 자연어로 입력을 하면 이를 수식 또는 코딩 언어로 Generate 해주는 등 다양하게 쓰여진다. 이전까지 나온 모델들에 비해 parameter size 가 175 billion으로 역대급으로 많은 사이즈의 parameter 수를 가지고 있으며, 이때문에 아마 용량 또한 매우 크지 않을까 싶다.
1. GPT-3의 출현 배경
BERT나 GPT-2와 같은 Transformer 기반으로 한 Pretrain model의 경우 fine-tuning 을 통해서 task를 풀었다. 그래서 그러한 모델들은 task-specific을 위한 모델 아키텍쳐가 존재해야 했고, 그들을 고도화 시키는 과정을 거쳤었다. 결국 이러한 모델들은 pretrain 모델과 fine-tuning 모델은 독립적이지만 fine-tuning을 하기 위한 데이터 셋이 반드시 필요하며 task specific한 fine-tuning과정을 충분히 거쳐야 한다는 단점이 있었다.
이러한 단점은 1) 새로운 task를 위해서는 그에 맞는 label이 매겨진 많은 dataset이 필요하다는 것과 그를 위한 많은 시간과 인력이 소모된다는 점, 2) 모델의 사이즈가 커지고 training distribution 이 충분하지 않을 경우 spurious correlation이 일어날 수 있다는 점, 3) 사람은 language task를 수행하는데 엄청난 양의 labled dataset을 필요로 하지 않는다는 점 과같은 문제들을 야기하는데, 이러한 문제를 해결하는 것이 GPT-3의 과제이다.
2. Meta learning
GPT-3에서는 Meta learning이라는 개념을 받아들이는데, Meta learning이란, 모델을 학습하는 과정 안에서 각 dataset이 가지고 있는 skill과 패턴을 인지하는 능력을 개발하는 것을 말한다
위 그림에서보면 GPT-3에서는 inner loop와 outer loop가 있는데, 각 sequence마다 가지고 있는 task를 inner loop안에서 in-context learning을 통해 학습하고, outer loop를 통해 다양한 task를 하나의 모델을 통해 학습할 수 있도록 유도하는 것이다.
GPT-3의 특장점이라고 할수 있을만한 것은, 이러한 Meta Learning을 사용함으로써 few_shot learning에서 좋은 성능을 나타낼 수 있다는 점인데, zero-shot learning(예제를 안보여주는 것)일때는 성능이 거의 비슷하지만, one-shot learning(예제가 1개인 것)이나 few-shot learning에는 파라미터의 개수가 많을수록 성능이 급격히 상승함을 알 수 있다.
실제로 논문에서는 다양한 예제를 통해 검증을 한 결과, Language model의 paramerter 수가 많을수록 acuuracy의 차이가 급격하게 차이가 남을 확인할 수 있다.
3. GPT-3 approch
GPT-3의 가장 큰 특징은 기존의 모델과 같이 fine-tunning을 해서 gradient값을 update하지 않는다는 점이다.
기존의 모델의 경우에는 pre-trained한 모델의 기울기를 fine-tunning을 통해서 update했다. 이러한 모델의 단점은 각 task마다의 새로운 대용량의 dataset이 있어야 한다는 점이었다. 실제로는 그런 새로운 데이터를 찾는것이 어렵다.
그러나 GPT-3는 예시가 아예 없거나 작은 예시만 가지고도 task-specific data를 해결한다는 것이다. gradient update를 하지 않고, 단순한 예제 문장만 준다면 해당 문젣에 대한 답을 출력하는 것이 GPT-3의 특징이다.
4. GPT-3 Architecture
GPT-3의 아키텍처는 GPT-2의 아키텍쳐와 거의 비슷하다. 그러나 모든 토큰에 대해서 self-attention을 하게 되면 차원이 너무 많아서 어려우므로, sparse Transformer attention방식을 적용하는데, 일부만 어텐션하는 과정을 말한다. 이에 대한 자세한 구조는 추후 포스팅을 해보려 한다.
해당 아키텍쳐의 입력 토큰은 2048개이며, GPT-2처럼 layer나 head, 입력 차원 수 등을 조절하며 파라미터를 조절해갔다.
5. GPT-3의 단점
특정한 NLP task에서는 text 생성하는 관점에서 완벽하지 않다는 단점이 있다.
예를 들어 문서 레벨에서 특정한 표현을 반복하는 경우나 긴 문단에서는 일관성을 잃어버리는 경우, 앞부분과 뒷부분 간의 모순이 발생. 자연스럽지 않은 두개의 문장이 나오는 경우 등에 대한 문제가 있다.
또한 구조적이고 알고리즘 적 문제점으로, bi-directional 모델이 아닌 auto-regressive 모델이기 때문에 앞에 있는 token 밖에 볼 수 없다는 문제가 있고, 모든 토큰에 대해 동일한 가중치를 지닌다는 단점이 있다.
6. GPT-3의 고민해야 할 점
GPT-3를 사용하면서 여러가지 윤리적으로도 고민해야 하는 점이 있다. 모델의 편향성 등으로 지켜봐야 할 부분인데, 첫째로 대규모 언어처리 인공지능 모델은 엄청난 전력소모를 유발해 지구온난화에 영향을 미친다는 점, 방대한 데이터들을 학습하는데 그 안에 인종차별적, 또는 성차별적 언어들이 섞이면서 잘못된 언어를 학습할 위험이 있다는 점. 모델이 너무 흡사하게 흉내낼 수 있기 때문에 가짜뉴스, 딥페이크와 같은 좋지 못한 목적으로 사용될 가능성이 있다는 점 등이 있다.
이러한 고민은 GPT-3뿐만이 아니라 다른 언어모델에 관련해서도 야기될 수 있는 문제이기도 하다.