728x90
반응형

목적 :  최경량의 특정 도메인에 대한 챗봇기능을 만들어 보자.

과정 :  OpenAI가 지대한 관심을 받고 있으니,  이 과정을 추종하여 제안/설명하면 더 어필/이해될 것임.

필요 : 일반적인 머신러닝/딥러닝/신경망의 모델링 및 배포처럼, 1. 데이터 구축, 2. 신경망 학습 알고리즘의 확보가 중요.

 

구축과정

    0. 알고리즘

           - OpenAI나 Google 이외의 유사한 오픈 소스 확보

           - 크게, ML학습과 강화학습의 알고리즘을 포함하고 있어야 함.

           - 알고리즘은 Recipe도 포함함.

           -  오픈소스 관련, 블로그 작성 필요.( 오픈소스 존재함.!)

    1. Base모델 

           - 지도(supervised)학습

               :: 데이터 :   질의어-답변 쌍,  전문가/휴먼의 작업. 적절한 소량. ( 비용 문제 )  [ 인적비용 ]

               :: ML학습( 일반적인 기계번역 처럼.)  [인프라 비용]

    2. 배포모델

             - 강화(reinforcement)학습

                :: 데이터 :    GPT를 통해 대량으로 확보. [인적비용 절감, 절대적으로 인적 투입 불가]

                          <-  (참조) https://betweencloud.tistory.com/83 

                :: Base모델 + 보상 모델 을 활용한 학습  [인프라 비용]

     

 

 

728x90
반응형
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
반응형
728x90
반응형

참조한 사이트 : https://www.techtarget.com/searchenterpriseai/definition/GPT-3

 

What is GPT-3? Everything You Need to Know - TechTarget

GPT-3 is a large language model capable of generating realistic text. Learn how it works, its benefits and limitations, and the many ways it can be used.

www.techtarget.com

상기 사이트는 2023년 1월에 업데이트되었습니다.


GPT-3는 third-generation Generative Pre-trained Transformer 의 줄임말입니다.
신경망 아키텍처는 Transformer모델이며 선학습된(Pre-trained) 것을 활용하여 글자를 생성(Generative)해 준다는 것입니다.(역시 어순은 역순입니다.^^)
인터넷에 존재하는 데이터를 활용하여 신경망 기반으로 머신러닝모델을 만들었다고 합니다.잘아시다시피 OpenAI라는 회사/연구소를 통해 만들어졌고요. 소량의 요청/질의에 대해 상당한 출력 글자/문장을 만들어냅니다

신경망 모델은 1,750억개의 모델 파라미터를 가지고 있습니다.GPT-3 이전에는 Microsoft's의 Turing Natural Language Generation(NLG) model이 약 100억개의 모델파라미터였습니다. 2021년에는 GTP-3가 현재하는 최대 언어모델입니다.

GPT-3는 NLP(자연어처리, Natural Language Processing)를 수행하여 이해(Understanding)도 하고, 그 이해를 기반으로 생성(generation)을 수행합니다. 기사, 시, 이야기, 뉴스리포트, 대화를 생성합니다.

ChatGPT는 GPT의 변종(Variant)입니다. 인간의 대화처럼, 문제를 제기할 수 있고 실수를 받아들이고 잘못된 것을 수정/조치도 합니다. 연구기간에는 대중에게 공개하여 피드백을 모아서, 개선작업을 하고 있습니다.
또, 다른 활용 사례는 Dall-E로서, 이미지/영상을 생성하는 것입니다.이 모델은 120억개의 모델파라미터를 가집니다. 글자-이미지쌍의 데이터로 훈련되었으며 사용자의 명령어 글자 입력에 대해 이미지를 생성해냅니다.
즉 챗GPT(ChatGPT)와 Dall-E는 GPT-3(또는 그이상의 버전)을 활용하고 있습니다.

ChatGPT의 활용사례는
- 프로그램 코드 작성
- 웹페이지 모사
- 정규식 사용/이해
- 그림 그리기, 차트 만들기
- 엑셀 함수 적용
- 의료분야(health care)
입니다.

또한, 영어 표현으로는 아래와 같습니다.

  • create memes, quizzes, recipes, comic strips, blog posts and advertising copy;..... 글자 생성 범주입니다.
  • write music, jokes and social media posts;... 작성/생성 범주입니다.
  • automate conversational tasks, responding to any text that a person types into the computer with a new piece of text appropriate to the context;,.... 대화 생성 범주입니다.
  • translate text into programmatic commands;.... 프로그램 생성 범주입니다..
  • translate programmatic commands into text;... 프로그램 명령어를 생성하는 범주입니다.
  • perform sentiment analysis;.... 감정분석도 수행
  • extract information from contracts;... 계약서에서 중요 정보 추출
  • generate a hexadecimal color based on a text description;.... 글자 서술에서 엑사코드형태로 색깔 출력(?)
  • write boilerplate code;....
  • find bugs in existing code;.... 기존 소스/프로그램 코드에서 버그를 고침
  • mock up websites;... 웹페이지 초안 구성
  • generate simplified summarizations of text;.... 기사/문서 요약
  • translate between programming languages; and...
  • perform malicious prompt engineering and phishing attacks.


GPT-3가 어떻게 동작하는가?
GTP-3는 문장을 예측(Language Prediction)하는 모델입니다.
GTP이전에는 BERT와 Turning NLG가 있었습니다. BERT는 Bidirectional Encoder Representations from Transformers입니다.
일반적으로 파라미터 갯수가 문장생성의 성능을 좌우합니다.

모델 파라미터가 기존 millions 레벨에서&nbsp; billion 레벨업되면서, 그 기능 및 성능도 향상되었습니다.


GPT-3의 잇점
출력하는 문장의 양이 많으므로 다른 용도의 훈련 코퍼스 생성에 활용할 수 있습니다.
시스템적으로 가벼워서 Desktop이나 smartphone에서도 수행될 수 있다.( 요청 과정? 추정 과정?)

Risks and Limitations
Limitations
- Pre-training : 일정(constantly)학습을 할 수 없습니다. Long-Term Memory가 없기 때문입니다.
- Limited input size : Transformer 아키텍처는 입력 길이에 제한이 있습니다. GTP-3는 2,048개의 tokerns로 제한됩니다.
- Slow inference time : 추론 즉 생성하는데 많은 시간이 소요됩니다.
- Lack of explainability :
Risks
- Micicry : 모사성에 의한 귄리/소유권 이슈
- Accuray :
- Bias : 기계학습에 따른 편향(Bias), 태생이 인터넷에 있는 Text데이터 기반임. 인터넷에 있는 데이터가 모두 깨끗하고 정제되었다 라고 가정하기 힘듬.


GPT-3의 역사
- Micro-soft의 투자와 배터적/독점적 소유권
GPT-3의 미래
- MS 카운터 진영의 생성 미 활동성 기대
- 상업용도의 특정 도메인 특화된 생성모델의 분야가 창출될 것임

728x90
반응형
728x90
반응형

현지시간 2월 2일, 구글의 CEO( 선다 피차이)는  Open AI의 Chat-GPT의 동향에 놀라,  [몇 주 또는 몇 달 이내에 대규모 언어모델을 출시] 할 것이라고 한다.  ( 출처 :  인공지능 신문, https://www.aitimes.kr/news/articleView.html?idxno=27289 )

 

신문에서는 

    선다 피차이 CEO, '챗GPT'보다 우수한... ”대규모 AI언어 모델, 앞으로 몇 주, 몇 달 안에 출시할 것!"

라고 제목을 붙였습니다.

 

필자가 새로 알게된 사실이나 강조하고자 하는 키워드들은

  • 생성(AI) : Generative AI ,    글이나, 그림, 문장 등을 생성해 준다.
  • LLM : 대규모 언어모델 ( Large Language Model)
  • 구글의 람다(LaMDA : Language Model for Dialogue Applications ) : 2022년 5월, Google Conference,  Transformer 신경망 아키텍처 사용.
  • ChatGPT :   LLM, GPT-3.5 기반,  지도학습과 강화학습을 모두 사용

 

전체 문맥(의도사항) 및 필자의 의견사항 ::

    OpenAI의 ChatGPT의 공개(2022년 11월) 및 사용자의 반응에 대해 Google이 놀라서, 구글의 챗봇을 곧 공개하겠다고 Announce함.  ( 기술적으로 OpenAI가 공개한 내용에 대해 대수롭게 여기지 않다가,  기술적 요소 이외의 반응이 너무 Hot해서, 공개 계획을 밝혔을 수도 있다고 필자는 생각합니다. ChatGTP의 공개는 Feedback을 받아서 개선하겠다는 강화학습의 목적성이 있기 때문입니다.  세상이 AI를 너무 얕게 이해하다가, 뭔가를 하니 그 반응이 너무 큰 것도 있지 않나 싶습니다.)

728x90
반응형

+ Recent posts