챗-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 의 척도도 있습니다.
'인공지능 머신러닝 딥러닝 신경망' 카테고리의 다른 글
서울의 하루 - 통계 정보 (0) | 2023.03.28 |
---|---|
챗-GPT3를 직접 만든다면? #2-최종 (0) | 2023.02.08 |
GPT-3란 무엇인가? (0) | 2023.02.07 |
[챗봇] OpenAI의 Chat-GPT vs. Google의 챗봇( Apprentice Bard ) (0) | 2023.02.06 |
[챗봇] 오픈(공개) 소스-ChatGPT의 훈련 알고리즘 (0) | 2023.02.06 |