ChatGPT: High Level View

Step1: Collect Demonstration Data, and train a supervised policy
High alignment in Language Model
-Demonstration Data:
이런 prompt에는 이런 거 담아/생성하지 마
-(1) A prompt is sampled from our prompt dataset
ex. Explain the moon landing to a 6 year old
(2) A labeler demonstrates the desired output behavior
ex. Some people went to the moon ~
(3) This data is used to fine-tune GPT-3 with supervised learning
Step2:Collect comparison data, and train a reward model
Reinforcement Learning from Human Feedback
-(1) A prompt and several model outpus are sampled.
ex. Explain the moon landing to a 6 year old
Outputs from different models
A: Explain Gravity.. , B: Explain War…, C: Moon is a natural satellite of ! , D: People went to the moon
(2) Labeler ranks the outputs best to worst
(3) This data is used to train the reward model
Step3: Optimize a policy against the reward model using rl
-(1) A new prompt is sampled from the dataset
ex. Write a story about frogs (2) The policy generates an output (PPO Trainer)
ex. Once upon a time~
(3) The reward model calculates a reward for the output
(4) The reward is used to update the policy using PPO

ChatGPT Train Step1

Supervised Fine Tuning (SFT:지도 학습 기반 Fine Tuning)
-Dataset: 약 13K
13000개의 dataset (prompt, answer) sample한 점이 놀라운 점
GPT API 서비스에 수집된 Command Prompt(일부는 Labeler가 추가)
이에 대한 정답은 Labeler가 작성
-Foundation model(GPT-3)를 Dataset에 대해 FineTuning
Result
-Foundation model이 명령-응답형 생성을 위한 워밍업이 갖춰진 상태
-주관적인 만족스러움에 대한 지표가 충분히 반영되지 않은 상태

ChatGPT Train Step2

만족스러운 지표 학습(RM: A reward model by supervised learning)
-Dataset: 약 33K
GPT API service 및 labeler 작성 prompt
Model은 이에 대한 다수의 응답 목록 생성
-Labeling
목록에서 응답 둘을 쌍으로 Labeler에게 Display
Labeler는 둘 중 만족스러운 응답을 승자로 Tagging
RLHF(Human Feedback)
-Ranking Model(Reward Model)
일대일 게임에 대한 결과(승자 Tagging)을 모으면 General한 Ranking 함수 학습 가능
6B size model을 Supervised Learning
Result
-이후 RL Reward Model로 삼음
-응답 지표(Reward)를 제시함으로써, RL을 통한 Finetuning이 가능하게 해줌

ChatGPT Train Step3

만족스러운 지표를 추종하도록 언어모델 Fine tuning (LLM finetuned by RL:PPO)
-인간의 개입없이 31K Prompt training
-State(상태):
GPT API Service에서 Sampling한 Prompt
-Action(액션):
언어 모델은 응답 생성
-Reward(보상):
Step2에서 학습한 Reward Model로부터 응답에 대한 보상 수신
-Training(학습):
응답에 대한 보상으로부터 Reinforce)를 반영하여 Language Model Parameter 수정
Result
설계한 지표를 추종하도록 Finetuning된 ChatGPT

RLHF 요약

강화학습 목표식
KL항
-Kullback-Leibler divergence
-두 분포가 다를 수록 큰 값
Reward항
-Reward Model 평가값
의미
-보상을 키우는 쪽으로
=> Base Model, Reward Model 분포 너무 다르지 않게, Reward는 극대화되도록 Training
NLP_RLHF_Week13
-단, SFT와 너무 달라지는 것을 지양

ChatGPT 요약

-Foundation Model GPT-3는 방대한 언어 지식이 자기 회귀 모델 자체에 코딩이 됨
-채팅 형식의 명령 추종형 생성에 특화
-RLHF: 명령에 대한 적절한 응답에 대한 Ranking modeling을 Human Feedback을 기반으로 학습
-세상을 대격변 시키는 동력으로 작용 중

최근 동향

-유사 ChatGPT 구축론
-거대 언어모형 학습 최적화
-거대 언어 모형 응용 최적화 관점
-Google Bard (PaLM2)

최근 동향: Self-Instruct

Content:
-Seed Task Set
저자들이 생성한 175개의 명령(instruction) 예제들 (명령어 당 Instance 하나)
-예제 일부를 조합하여 Prompt를 작성하고 이로부터 후속 예제 (instance)를 API(GPT-3)로부터 확보
총 52K 명령에 대한 82K의 예제 Dataset 구축
그 과정에서 Filtering 등을 통해 고품질의 예제만 남김
-확보된 82K 명령-예제 Dataset을 활용하여 Vanilla GPT-3 Model을 Finetuning
Result
ChatGPT에 준하는 성능 확보
의미
High level Labeling 작업 (Supervised Learning, RLHF)없이 효과적인 ChatGPT 스타일의 Model 구축 대안 방법

최근 동향: LLama

-Scaling 법칙이 바뀜
동일 Computing 자원으로는 Model Size를 키우는게 Dataset을 키우는 것보다 더 효과적이다
작은 Model에서 더 많은 token을 학습시키는 것이 optimized 접근이다.
-LLaMA 의미
공개 Model로서 민간에서 Fine tuning 또는 Inference용으로 접근 가능한 size
13B model이 GPT-3 성능 상회
-학습은 여전히 많은 자원 필요

최근 동향: Stanford Alpaca

Self-Instruct 형식으로 명령 Dataset 확보 후 LLaMa 7B(13B)를 Fine Tuning
Self-Instruct와 변경점
-명령 Dataset 구축시 ChatGPT 사용
Prompt Template + Seed 명령 Set으로 Prompt 생성
구축 과정 간소화
52K Dataset 생성: 약 $500 비용으로 사람에 비해 훨씬 저렴함
LLAMA 7B(13B)에 대해 Fine Tuning
3시간: 8대의 A100
영어에 대한 만족스러운 성과 (ChatGPT와 유사)
의미
-RLHF를 통한 ChatGPT는 Nice한 방법이지만 Human Labeler 비용 소모
-강력한 성능으로 학습된 ChatGPT로부터 정답 Set을 구성해서 Finetuning하는 전략
-아쉬운 점: 한국어 Corpus에는 취약

ChatGPT Plugin

A tool designed to extend the capabilities of the ChatGPT language model.
These plugins are essentially add-ons that allow ChatGPT to access external resources, perform specific tasks, or improve its overall performzance.
Process of ChatGPT Plugin

  1. User Input: You start by providing ChatGPT with a prompt or question.
  2. Plugin Decision: ChatGPT analyzes the prompt and identifies keywords or phrases that might trigger a plugin. This analysis is done using its internal natural language processing (NLP) capabilities.
  3. Plugin Activation: If a relevant plugin is identified, it’s activated by ChatGPT. This involves sending information about the prompt and any relevant context to the plugin’s API.
  4. Plugin Execution: The activated plugin then performs its specific task. This could involve:
    Accessing external data: The plugin might connect to real-time data sources, knowledge bases, or APIs to gather relevant information.
    Performing computations: Some plugins might run calculations, simulations, or other processes based on the received data.
    Generating content: Certain plugins might generate creative text formats like poems, scripts, or code based on the prompt.
  5. Plugin Results: Once the plugin finishes its task, it sends the results back to ChatGPT.
  6. NLP Interpretation: Finally, ChatGPT uses its NLP capabilities again to interpret the plugin’s results and integrate them into its response. This means understanding the context and format of the results and blending them seamlessly with its own understanding of the prompt.
  7. Response to User: ChatGPT then presents the final response to you, incorporating both its own understanding and the information provided by the plugin.

    Generative Model 활용 Framework

    LangChain:
    -언어 모형 활용 응용 프로그램 개발 Framework
    GPT-4와 External Source data 결합
    벡터 DB 등 Custom 문서 저장 및 조회 방법과 결합
    추론은 GPT-4 활용
    -문제 해결에 필요한 개발 요소 결합
    AutoGPT:
    문제 해결을 위한 prompt 생성
    External Source 조회 및 저장
    Prompt 확장
    LangChain으로 구현 가능

    PaLM

    :Scaling language modeling with pathways
    -Decoder 기반, parameters 540B, 학습 token 수: 780B
    컴퓨틴 최적화된 확장: Data, Model Scaling 1:1
    Dataset/문제 혼합: 다국어, 병렬 다국어, Programming, 수학 등 전문분야, Toxity에 대한 개선
    평가: 텍스트 이해 / 생성 능력확장, 영어 문서 비율 낮아졌으나 성능 높아짐
    특이점: 영어 이외 영역에 일본어/한국어 targeting