Python으로 딥러닝하기|자연어 처리 1. 토크나이징
Python으로 딥러닝하기|자연어 2. 단어 임베딩, Word2Vec
Python으로 딥러닝하기|RNN(Recurrent Neural Networks) Part1. 이론
Python으로 딥러닝하기|LSTM(RNN) Part1&2. 이론 및 실습
Python으로 딥러닝하기|자연어 3. Seq2Seq, Attention
Python으로 딥러닝하기|자연어 4. Transfomer
BERT와 GPT는 각각 Transformer로 부터 발전한 형태의 모델입니다.
BERT paper: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
우선 BERT 부터 살펴보겠습니다.
BERT는 Transformer의 Encoder 구조를 사용합니다. 다만 BERT의 경우 논문 제목에서 알 수 있듯 앞뒤 맥락(Bidirectional )을 고려하여 이해하는 것이 특징입니다. 따라서 문장의 의미 이해, 감정 분석, QnA 시스템 등에서 뛰어난 성능을 보입니다.
Masked Language Model(MLM)과 Next Sentence Prediction(NSP) 를 통해 학습하여 성능 향상을 이뤘다고 합니다.
MLM이란 문장 중에 일부 단어를 Making하여 해당 단어를 예측하도록 하는 과정입니다. Word2vec의 CBOW처럼 주변 단어들의 정보를 활용하여 예측하는 방법으로 각 단어가 전체 문맥에서 어떤 의미를 가지는지 더 잘 이해할 수 있다고 합니다.
NSP란 두 문장이 연속적인지 예측하는 작업으로 문장 간 관계를 이해하는데 도움이 된다고 합니다.
BERT의 경우 먼저 대규모 텍스트 데이터셋으로 사전 학습(pre-training)을 거친 후, 특정 작업에 맞게 미세 조정(fine-tuning)할 수 있습니다.
GPT(Generative Pre-trained Transformer)-3 paper: Language Models are Few-Shot Learners
GPT는 Transformer의 Decoder 구조를 사용합니다. 따라서 Autoregressive Language Model로 뛰어난 성능을 보냅니다.
여기서 Autoregressive Language Model이란, 주어진 단어 시퀀스에 이어질 다음 단어를 예측하도록 학습하는 과정입니다. 기계 번역, 요약, 대화 시스템 등 텍스트 생성 분야에서 널리 사용되고 있습니다.
GPT는 가장 단순했던 GPT-1, 모델 크기를 확장 및 더 다양한 데이터 셋으로 학습했던 GPT-2, 더 극대화된 모델 크기와 Few-shot Learning 능력을 보여준 GPT-3, 최근에는 공개되지 않았지만 버전 4(2023-01-31기준)까지 나왔습니다.
각 버전 별로 발전하면서 모델의 크기를 증가시키고, 더 다양하고 방대한 데이터셋으로 학습하고 학습 방법을 개선하는 방향으로 발전하였습니다.
특히 GPT의 가장 두드러지는 특징은 스케일입니다. 이를 통해 사전 훈련된 학습 데이터만을 사용하여 특정 작업에 대한 추가적인 학습 없이도 더 다양하고 복잡한 작업을 수행할 수 있습니다. (a.k.a Zero-shot, Few-shot learning)
ChatGPT는 대화형 AI에 특화되어 있어 대화의 맥락을 이해하고 유지하는 데 더 강점을 발휘한다고 합니다.
*참고: 이 글은 ChatGPT와 함께 작성했습니다. :)