728x90

ChatGPT란?

2022년 11월 30일에 오픈된, OpenAI의 거대한 language model (기존: GPT2, GPT3)

- Chat Generative Pretrained Transformer

- 정확성보다는 창의성에 큰 주목을 받음

 

PROS

- imaginative conversations & generate creative responses

- 단순히 기존 현실에 근거해서 생성되는 것이 다가 아니다! => '새로운' 아이디어를 생성해내는 능력

- report나 essay를 작성하는 과정에서 실질적인 도움을 제공받을 수 있음

 

 

Broad CONCEPT

1) 기존의 GPT를 업그레이드 시킨 것, 즉 기본 model structure는 Transformer

2) GANs의 개념에 착안하여 text-based conversation에 적용함: input text에 대한 '현실적인' response를 출력

    => GANs concept의 엄청난 새로운 응용!

    => Transformer 구조 자체는 GANs의 구조와 무관함 (오해하지 말자~)

GANs(Generative Adversarial Networks)란?
: 두 개의 competing networks(generator & discriminator)를 이용하여 현실과 가까운 output을 만들어내는 신경망
- generator가 fake output을 만들면
  => discriminator는 fake와 real-world data 간의 차이를 식별하는 역할
- 양 간을 왔다갔다 하며 점차 real data와 구별하기 어려울 정도로 현실적인 output을 만들어낼 수 있게 됨

 

단순히 현실 정보를 추출하여 조합하는 방식이 아니라, 모델이 스스로 fictional creations을 생산해내는 것!

- 한편으로는 reality에 벗어나는 output이라고 평가할 수 있지만

- 달리 생각하면, 기존에 있던 것들 & 현실적인 상황에 갇히지 않고, 완전히 새로운 imaginary, creative, out-of-the-box 텍스트를 생산할 수 있다는 점에서 매우 유용하다

 

ChatGPT’s output only touches reality at a tangent
But BEYOND the CONSTRAINTS of Our Everyday REALITY

 

 

METHODS

- 강화학습을 위한 Reward model

- Comparison data 이용: 여러 responses에 대한 rank를 매기고 이를 기반으로 reward models

- 최적화 및 파인튜닝: PPO(Proximal Policy Optimization)

 

https://openai.com/blog/chatgpt/

 

LIMITATION

- 잘못된 정보 생산 가능 (incorrect / nonsensical / biased)

- input 구절을 바꾸거나 꼬아서 작성할 때 / 같은 input을 여러 번 입력할 때 => 민감하게 반응

- 특정 phrase를 남용하거나 지나치게 장황한 text를 생산하는 경향

- 현재로서는 입력된 input(question)이 모호할 때 모델 스스로 질문의 의도를 추측하려는 경향이 있음

   => 이상적 모델이라면 모호한 input(question)을 받았을 때 '되물어야' 함

- 유해한 instruction / 편향(차별)된 input은 decline하도록 설계되어 있으나(Moderation API), 가끔 decline해내지 못하기도 함

- 수학 문제를 풀어내지 x 

- 잘못된 Code snippet 생산

- Turing SAT IQ 테스트를 통과할 수준은 아님

 

 

참고자료

https://openai.com/blog/chatgpt/

https://kozyrkov.medium.com/introducing-chatgpt-aa824ad89623

728x90

'AI > NLP' 카테고리의 다른 글

키워드 기반 텍스트 생성  (0) 2022.04.07
[라이브러리] gpt-2-keyword-generation  (1) 2022.04.07
728x90

gpt2 활용 한국어 언어 생성 모델 (한국어 기반)

 

- 원하는 주제에 맞게 한국어 문장 생성 (by fine tuning)

    이때 주제의 범주는 구체적으로 무엇?

- 학습 대상이 될 텍스트를 여러 개 입력 가능.

- 문제점: 데이터에 무조건 그 단어와 일치하는 단어가 포함되어야 함.

- 대강의 솔루션: 데이터 내 표현을 직접 임베딩해서 유사도 비슷한 것까지 유연하게 활용. 

 

- 활용 라이브러리

1) 허깅페이스의 transformers 라이브러리

https://github.com/huggingface/transformers

- GPT2 모델 클래스인 TFGPT2LMHeadModel 등

2) gluonnlp의 SentencepieceTokenizer & nlp 모듈

https://nlp.gluon.ai/

3) SKT KoGPT2 모델 리소스 기반

 

- 난이도: keytotext < gpt2 < kgpt

 

- 출처: 텐서플로 2와 머신러닝으로 시작하는 자연어 처리

728x90

'AI > NLP' 카테고리의 다른 글

ChatGPT란?  (0) 2022.12.11
[라이브러리] gpt-2-keyword-generation  (1) 2022.04.07
728x90

gpt-2-keyword-generation


https://github.com/minimaxir/gpt-2-keyword-generation

Usage

keyword_encode.py : 비지도 방식으로 키워드 추출, 직접 우리만의 키워드 제공도 가능

• Manual keywords may work better if you have them, which you can set with the keywords_field parameter to encode_keywords().

  • 생성한 keywords와 파일의 title을 포함하는 txt 파일을 출력함.
  1. 각 문서로부터 키워드 “keywords” 추출 (spaCy 활용)
    → 키워드 토큰화 & 품사 태깅
    • 명사, 동사, 형용사, 부사만 추출 가능
    • 명사는 그대로, 다른 품사는 lemmatizd된 버전으로
    • 고유명사, named-entities, 합성어 모두 개별 명사로 취급
    • 대명사와 불용어는 키워드에서 제외
    • 키워드 추출 시 중복 제거
  2. 키워드 추출 시, 해당 키워드를 기반으로 새로운 텍스트가 생성되기 쉽도록 해야 함.
    • 키워드 정규화 (전처리), 대소문자 구분
    • 키워드 섞기 (모델이 키워드 간 순서를 학습하여 텍스트 생성에 활용하는 것을 막음)
    • 문서의 키워드 셋이 만들어지면 → repeat random combination을 생성
      : data augmentation of sorts & 해당 키워드에의 과적합 방지
    • 각 combination에 대해, max_keywords 이하로 랜덤 숫자 지정 → 섞기
      : 신경망이 키워드 개수를 기반으로 텍스트 길이를 추측한다거나 키워드의 순서를 학습하는 것을 방지
  3. Write the keywords, then the document for each generated set of keywords

keyword_decode.py

  • bulk-generated encoded texts를 decode하는 함수 포함.
  • decode_texts() : 제공된 텍스트에 대해, specify된 분류 섹션으로부터 텍스트를 추출
  • decode_file(): 모든 텍스트를 추출, 디코딩하고 file로 작성해줌.

Taxanomy

category, keywords, title, body

category : 가장 넓은 범위
body: blog post처럼 title에 의존하는 큰 규모의 텍스트가 있을 때 사용

~로 섹션 구분

<|startoftext>~ `키워드 ~ ^타이틀 ~ @body <|endoftext>


Notes

  • There should be an equal amount of all unique category documents to prevent sampling bias.
  • 텍스트 분량 제한: The scope of the text document(s) plus the keywords must be within GPT-2's max 1023 token scope (e.g. should only be a few paragraphs max).

오답노트

(keyword2) C:\Users\동그리\Desktop\gpt-2-keyword-generation-master>
  • git clone
  • 반드시 가상환경에서!
  • 파이썬 버전 여러 개 깔 수 있음
  • 가상환경에서 특정 파이썬 버전 지정 (특정 버전 이상만 요구 or 이하만 요구하는 게 있음, 내가 사용하는 것은 무슨 버전 요구하는지 파악하기)

pip3 install -r requirements.txt의 특정 spacy 설치의 문제점.


Parts-of-speech = POS = 품사
taxonomic: 분류의
taxonomy: 분류학, 분류
delimit: 구분선을 만들다, 구분짓다

728x90

'AI > NLP' 카테고리의 다른 글

ChatGPT란?  (0) 2022.12.11
키워드 기반 텍스트 생성  (0) 2022.04.07

+ Recent posts