728x90
반응형

챗-GTP3 라고 이름이 붙은 이유부터 알고 보아야 합니다.

 

뒤에 있는 GPT3은   GPT 모델  3.0을 기반으로 사용하였다는 것입니다.

GPT는 Generative Pretrained Transformer의 약자이며, 제일 중요한 것은 Generative 입니다. 즉 문장을 생성해 내는 모델입니다. 보통은 흔히 언어모델(Language Model)이라고 합니다.  언어모델의 예는  사용자가 "I am a"를 입력하면,  "I am a boy.",  "I am a student'를 생성, 즉 만들어 냅니다.

 

Chat은 챗팅(Chatting) 즉 대화 쌍 또는 질문에 답변의 형태로 주고 받는 대화형태의 '별도'모델을 만들었다는 것입니다. 근데 기초가 되는 '대화'가 있어야겠죠.  그 대화를 GPT모델을 사용해서 만들고,  Chat기능이 되도록 '별도'의 모델을 만들었다는 것입니다.

 

그럼, "나도 만들어보고 싶은데....".

 

GPT3는 그 모델을 얻을 수 없습니다.( 보통 공개 모델이 AI 개발자 사이에는 종종 있습니다.)

그래서, 어쩔 수 없이 성능이 낮은 GPT2를 가지고  그 공정을 살펴보아야 합니다. ( Chat-GPT2를 만든다는 것입니다.)

 

GPT2는 언어모델입니다. 문장을 생성하는 모델입니다.

 

GPT2에 대한 것을 주요 용어 위주로 요약하면,

   - Pretrained model on English language using a causal language modeling (CLM) objective

  -  a transformers model pretrained on a very large corpus of English data in a self-supervised fashion

  -  pretrained on the raw texts only, with no humans labelling them in any way

  - an automatic process to generate inputs and  labels from those texts( e.g. target )

  - More precisely, it was trained to guess the next word in sentences.. ( shifted one token (word or piece of word) to the right )

  - This is the smallest version of GPT-2, with 124M parameters.

 

GPT2의 사용 예시

>>> from transformers import pipeline, set_seed
>>> generator = pipeline('text-generation', model='gpt2')
>>> set_seed(42)
>>> generator("Hello, I'm a language model,", max_length=30, num_return_sequences=5)

[{'generated_text': "Hello, I'm a language model, a language for thinking, a language for expressing thoughts."},
 {'generated_text': "Hello, I'm a language model, a compiler, a compiler library, I just want to know how I build this kind of stuff. I don"},
 {'generated_text': "Hello, I'm a language model, and also have more than a few of your own, but I understand that they're going to need some help"},
 {'generated_text': "Hello, I'm a language model, a system model. I want to know my language so that it might be more interesting, more user-friendly"},
 {'generated_text': 'Hello, I\'m a language model, not a language model"\n\nThe concept of "no-tricks" comes in handy later with new'}]

 Hello. I'm a language model,    뒤쪽에  최대 길이 30(token기준이겠죠?)로  5개 문장을 만들어냅니다.

 

GPT2를 훈련시킨 과정은 

   -  BPE( for unicode characters)로 token표현을 수행.

   -  Vocabulary size 50,257..   즉 token의 종류가  50,000여개라는 것입니다.

   -  훈련과정에 입력에 대한 벡터 처리 과정에서,  입력문의 token 수의 제한은 1,024개입니다.

   ( token의 분포의 크기 와 연속적인 표현을 구분하여야 합니다.^^)

 

GPT2 모델의 성능 측정 ( PPL과 ACC)

   - PPL 이 여러 테스트 데이터 셋에 대해,  평균 30~70레벨입니다. 즉, 한 단어(token)뒤에 올 수 있는 token의 수가 3~70개라는 것입니다.  (  인터넷에서 수집한 문장(모집단) 및  생성할 때의 고민도/난이도/연결도/혼잡성 을  나타냅니다.

  - ACC 는 Accuracy일 수 있는데, 아직 파악을 못했습니다.  40~87 범주이빈다.

  - BPB, BPC 의 척도도 있습니다.

 

 

 

728x90
반응형

+ Recent posts