Chat GPT

Chat GPT 모델 발전

Jerry_K 2023. 11. 8. 16:16

Chat GPT는 Chat Generative Pre-trained Transformer의  약자로 대화형 인공지능이다.

 

어떻게 하면 GPT를 더 잘 쓰고 잘 이용할까에 대한 주제로 글을 써 볼 생각이다.

오늘은 Chat GPT까지의 모델 발전들을 포스팅하려고 한다.

 

Chat GPT는 레전드다 ... !!

 

[Chat GPT까지의 모델 발전]

1. RNN(Recurrent Neural  Network)  : 

시계열 데이터를 분석하는 알고리즘으로 과거의 데이터가 현재에 영향을 미친다.

time step이 길어지는 경우 정보가 뒤로 충분히 전달되지 못하는 문제 (텍스트가 엄청 많은 경우)

RNN 구조

 

 

2. LSTM (Long Short-Term Memory) :

LSTM은  RNN 변형으로 원리는 동일하지만, 좀 더 나은  메모리 사용 방법 사용한다.

은닉층의 메모리 셀에 몇 개의 게이트를 추가하여 필요한 기억들을 저장하고 불필요한 것들은 지운다.

(RNN에 장기기억 메모리를 추가를 했지만, 좀 더 복잡한 구조)

LSTM 구조

 

 

3. seq2seq(sequence to sequence) : 

번역기에 사용되는 대표적인 모델이다. 

seq2seq에서는 인코더와 디코더 구조를 가지고 컨텍스트라는 것이 존재한다.

여기서 컨텍스트는 압축 정보를 가진다. 

 

아래 예시로, "I am a student" 자연어는 인코더에 들어가 컨텍스트 벡터로 바뀐다.

이후 RNN 또는 LSTM 알고리즘을 적용하고 디코더를 통해  "je suis etudiant"의 번역된 문장이 나온다.

 

seq2seq의 크기가 큰 자연어를 인코딩하고 컨텍스트 벡터에 넣을때 문제가 생긴다.

컨텍스트 벡터는 고정된 크기의 벡터로 많은 정보를 요약해서 넣을 경우, 일부 정보의 손상이 발생도 한다.

seq2seq 모델 구조

 

 

4. Attetion (어텐션): 

seq2seq의 모델의 한계 극복 한 알고리즘이다. 

Attention에서는 인코더의 (모든 정보를 다 담아야 하는) 부담을 덜어준다. 

 

좀 더 구체적으로 디코더에서 출력 단어를 예측하는 매 시점마다, 

인코더에서 전체 입력 문장을 다시 한번 참고하게 한다.

 

단, 인코더를 참고할 때 동일한 비율로 문장들을 참고하는 게 아니라,

연관 있는 단어 부분(Attention score가 높은)을 집중 Attention 한다.

(기존에 압축 정보를 유지하는 컨텍스트 버리고  중간 과정의 모든 단어를 디코더에 보내어 정보 손실 적다.)

 

Attention 모델 구조

 

 

5. Transformer(트랜스포머) : 

구글이 발표한 논문 "Attention is all you need"에 나온 모델이다.

seq2seq 구조인 인코더-디코더를 따르면서도  Attention만으로 구현된 모델이다. (RNN 사용 X)

 

기존 seq2seq는  인코더와 디코더에서 각각 하나의 RNN이 t개의 시점을 가지는 구조라면,

Transformer은 아래 그림과 인코더와 디코더를  N개로 구성하는 구조이다.

RNN을 사용하면 입력단어가 매번 인코더를 거쳐야 해 계산량이 많지만,

Transformer에서는 하나로 쭉 연결되어 하나의 입력 이후 어텐션 값을 한 번에 구한다.

Transformer 모델 구조

 

 

 

[현재 기술]

 

-Bert (Bidirectional Encoder Representations from Transformers 버트) : 

구글에서 만든 자연어 처리 모델이다.   2018년에 구글이 공개한 모델로 GPT와 같이 Pre-trained 된 모델이다.

Transformer에서 인코더만을 사용한 생성형 모델로 새로운 문장을 생성한다. (GPT는 다음 단어를 예측하는 일을 한다.)

Bert 뜻에서 알 수 있듯이 문장 앞/뒤쪽 모두를 보고  기존 Transformer에서 Encoder만 사용하는 모델이라 보면 된다.

 

 

-GPT (Generative Pre-trained Transformer)

OpenAI에서 만든 자연어 처리 모델이다. Bert와는 달리 트랜스 포머에서 디코더만을 사용한다.

앞에 말한 거와 같이 GPT는 다음에 올 단어 예측을 잘한다. 

 

GPT는 버전 1,2를 지나 3,4까지 버전업이 되어있다. 

이것들 모두는 GPT의 모델을 사용해서 만들었다. (물론 GPT3가 GPT1,2보다 훨씬 거대한 모델임)

그렇게 GPT는  2018년부터 GPT-1부터 시작하여  GPT-4까지 발전해 왔다.

 

chat gpt가 학습한 데이터의 크기는 필터링 후  570GB (전은 약 45TB) 정도이다. (단어로 약 3000억 개)

.

알려진 파라미터의 수는  아래와 같다고 한다.

Chat-3 : 1750억

Chat GPT  : 1조 7500억 (GPT-3 파인 튜닝 버전)

GPT-4  : 10조 개  

(파라미터의 개수가 많아질수록 모델의 성능이 좋음)

 

(참고) 구글에서 GPT3 대항마로 발표한 PaLM 언어 모델의 파라미터 수는 5400억 개 된다고 한다...

 


 

이렇게 간단히 GPT Chat의 발전들을 살펴보았다. 

다음 GPT 포스팅에는 동작 원리에 대해 간단히 포스팅해봐야겠다