반응형

 

 

InstructGPT 배경 설명

  • InstructGPT는 2022년 OpenAI에서 발표한 논문으로, ChatGPT의 근간이 되는 모델이다.
  • 사실, GPT가 ChatGPT라는 제품 형태로 출시될 수 있던 이유는 해당 논문의 접근 방법(법적인 문제나, 거짓말등을 완화할 수 있는 방법)을 선택한 것이 크지 않나 싶다.

 

Abstract

  • Language Model(LM)의 크기가 커진다고 해서, 사용자의 의도를 더 잘 따르게 되는 것은 아니다. (LM이 거짓말이나, toxic한 말들을 생성할 수 있다.)
  • 이 논문에서는 인간의 feedback을 학습하여, LM이 인간의 의도에 align 될 수 있는 방법을 제시한다.
  • 레이블러가 작성한 prompts와 OpenAI API를 통해 수집된 prompts를 데이터셋으로 사용하여, GPT-3을 supervised learning 방식으로 fine-tuning 한다. 
  • 그 후에 model이 생성한 ouput들을 인간의 feedback으로 순위를 매겨서, 추가 fine-tuning 과정에 사용한다.
  • 최종 모델을 InstructGPT라고 한다. 
  • InstructGPT는 GPT-3보다  NLP 성능은 아주 조금 떨어지지만, 신뢰도와 toxic reduction 관점에서 더 우수하다. 

 

Introduction

[배경]

  • LM에 prompt를 제공하는 방식은 많이 사용되고 있다. 하지만, 이런 모델들은 거짓말이나, 편향적 혹은 toxic 한 말 등 의도하지 않은 대로 표현한다. (Chat-GPT를 사용해 본 사람들은 무슨 말인지 알 것이다.)
  • 이것은 LM의 objective 때문인데, 단순히 webpage 등에서 가져온 문장들로 next token을 예측하는 방식으로 학습되기 때문에, user의 의도는 고려되지 않는다.
  • 저자들은 이러한 user 의도를 고려하지 않는 것을, LM objective가 "misaligned"되어 있다고 말하고, 실제 application에서 활용되기 위해서는 해당 부분에 대한 고려가 필요하다고 한다.

[논문 소개]

  • 논문에서는 LM과 user들의 의도의 align을 위해, 명확한 지시를 제공하는 explicit intention과, 신뢰성있는 문장을 사용할 것 등과 같은 implicit intention을 모두 고려해야 한다고 한다.
  • 이를 위해, fine-tuning 방법을 사용했고, 특히, human feedback에 대한 강화학습을 통해, GPT-3을 fine-tuning하여 다양한 class의 instruction을 따르도록 했다.
  •  이 과정에서 인간이 선호도에 따라 reward를 주었다. 
  • 과정을 소개하면,
    1. screening test를 통해, 40명의 labeler를 고용했다. 
    2. OpenAI API를 통해 수집된 prompts와 labeler가 작성한 prompts를 통해 desired ouput에 대한 데이터셋을 생성하고, supervised learning baseline을 학습하는 데 사용한다.
    3. 그다음, 인간이 model의 ouput들을 평가한 데이터셋을 생성한다.
    4. 데이터셋을 이용하여 인간의 선호도에 따른 reward model(RM)을 학습한다.
    5. 마지막으로, RM을 reward function으로 PPO 알고리즘을 사용하여, supervised learning baseline을 fine-tuning한다. 
  • 이렇게 만들어진 최종 모델을 InstructGPT로 명명한다.

[Evaluation]

  • 주로, 모델은 labeler들이 testset에 대한 model의 ouput을 평가한다.이때, 평가자는 학습과정에 참가하지 않았던 사람이다. 
  • 다양한 NLP task에 대한 evaluation도 진행한다.

 

[결과]

  • Labeler들은 InstructGPT의 ouput을 GPT-3의 것보다 선호한다.
  • InstructGPT의 output은 GPT-3의 것보다 신뢰도가 높다.
  • InstructGPT는 toxicity 면에서 GPT-3보다 조금 개선되었지만, bias 측면에서는 차이가 없다.
  • 인간의 feedback에 대한 강화학습 부분을 수정하여, NLP dataset에서의 성능하락을 최소화했다.
  • Evaluation에서 training set 생성에 참여하지 않은 사람들에게서도 InstructGPT가 좋은 평가를 받은 것은 선호도의 일반화를 의미한다.
  • Public NLP dataset은 InstructGPT가 사용되는 방식을 정확히 반영하지 못한다.
  • InstructGPT가 인간의 feedback에 의한 강화학습에 포함되지 않는 지시에도 일반적으로 잘 따른다. 즉, 훈련에 사용된 분포에만 국한하는 게 아니라, 그 밖에 존재하는 분포에서도 지시에 잘 따른다.
  • 하지만, InstructGPT는 아직 완벽하지 않다.

 

Methods and Experimental details

[Method]

  •  크게 3개의 step을 통해 학습했다. (2, 3번은 계속 반복된다.)
    1. demonstration에 대한 데이터를 모으고, supervised 방식으로 학습한다. (기존 LM 방식)
    2. comparision 데이터를 모으고, reward model을 학습한다.
    3. PPO 알고리즘을 사용하여, LM을 fine-tuning 한다. 

[Dataset]

  • Dataset을 수집한 내용이 나온다. 기본적으로 OpenAI API를 통해 text prompts를 구성했고, user ID당 200개까지만 prompts를 제한하였다. userID 기준으로 testset을 분리했다. (혹시 몰라서, 개인정보로 filtering을 한번 더 했다. 1인이 다계정을 사용하는 것을 막으려고 한 것 같다.)
  • 데이터셋은 다음과 같이 구성되어 있다.
    • Plain : labeler들에게 무작위 task에 대한 질문을 한 결과
    • Few-Shot : labeler들이 만든 지시문과 지시문에 대한 여러 개의 질문과 대답 쌍
    • User-based : User들이 사용 사례를 정하고, 그에 대한 prompts를 생성

[Task]

  • 데이터셋에 포함된 prompt들은 generation, question answering, dialog, summarization, extractions 등 다양하다. 

 

[Model]

 

  • 기본 모델은 GPT-3 pretrained model을 사용한다. GPT-3을 기반으로 아래의 3가지 다른 technique을 사용하여 model을 학습한다.

2023.06.12 - [NLP 논문] - GPT-3 (Language Models are Few-Shot Learners) 논문 리뷰

 

GPT-3 (Language Models are Few-Shot Learners) 논문 리뷰

GPT-3 배경 설명 GPT-3은 요즘 많이 사용하는 ChatGPT의 근간이 된 논문으로, 2020년 OpenAI에서 NIPS에 발표한 논문이다. Language Model의 parameter가 꾸준히 늘어가는 추세였는데, GPT-3에서는 기존의 가장 큰

devhwi.tistory.com

 

1. Supervised fine-tuning (SFT)

  • labeler의 demonstrations를 supervised-learning으로 학습한다. (16 epochs, cosine learning rate decay, dropout : 0.2)

 

2. Reward Modeling (RM)

  • SFT model의 마지막 layer를 없애서 사용한다.
  • 동일 input에 대한 2개의 model ouput들 사이의 comparision을 학습한다. (rewards는 다른 응답에 비해 선호될 log odds로 정함) 
  • 몇 개의 ouput에 대해서 비교할 것인지를 K라고 하면, 비교는 k*(k-1)/2번만큼 이뤄져야 한다.
  • 이때, 단순히 전체 prompt 간의 비교 값을 shuffle 하여 학습하면, overfitting이 발생한다. 이를 해결하기 위해, 한 batch에 하나의 prompt에 대한 모든 comparison이 담기도록 학습했다. 
  • 학습을 위한 loss function은 다음과 같다.

r(x, y) :  scalar output of the reward model from x,y

y_w: 더 선호되는 ouput

y_l : 덜 선호되는 output

 

 

3. Reinforcement Learning (RL)

  • SFT model을 PPO(Proximal Policy Optimization) 알고리즘을 통해 학습한다. 
  • 아래의 objective가 최대화되는 방향으로 RL 학습을 진행한다.

π^RL : RL policy로 학습된 모델

π^SFT : SFT로 학습된 모델

  • 해당 논문에서는 γ=0으로 한다.

 

[Evaluation]

  • 모델이 얼마나 "align" 되었는지 확인하기 위해, align의 의미를 먼저 정의한다.
  • InstructGPT의 목적이 user의 의도를 반영과 일치하는 언어 모델을 만드는 것이기 때문에, model의 align을 helpful, honest, harmless로 정의한다. 
  • 모델이 helpful을 평가하기 위해서는 labeler의 선호도 평가에 의존한다.
  • 모델의 honest를 평가하기 위해서, 모델이 진실을 답하는지 거짓을 답하는지 평가한다. 이를 위해, closed doamin task에 대해 모델이 거짓말하는 정도를 평가하고, TruthfulQA 데이터셋을 이용하여 평가한다. 
  • 모델의 harm을 평가하기 위해, labeler가 ouput이 context에 적절한지 여부, 특정 집단에도 ㅐ한 비하를 포함하였는지, 성적이거나 차별적인 콘텐츠를 포함하였는지의 여부를 평가한다. 또한, RealToxicityPrompts와 CrowS-Pairs 데이터셋을 이용하여 평가한다.
  • InstructGPT의 의도에 맞게 fine-tuning 하는 것은 GPT-3 모델의 성능을 떨어뜨릴 수 있다. 이를 평가하기 위해, GPT-3에 제출된 prompt를 이용하여 성능을 평가한다. 또한, public NLP dataset으로도 평가한다.

 

Results

  • Labeler들이 InstructGPT의 output을 GPT-3의 것보다 선호한다. 

  • InstructGPT 모델은 신뢰도 측면에서 GPT-3에 비해 향상이 있었다.

  • InstructGPT 모델은 GPT-3보다 toxicity를 줄일 수 있었지만, bias는 줄이지 못했다.

  • InstructGPT는 GPT-3에 비해, align-tax(align을 위해 NLP의 성능감소가 생기는 것)가 있지만, 그렇게 크지 않다.

그 외 

  • 논의해 볼 사항과 미래 영향, 해결해야 할 과제들이 적혀있다. (철학적인 내용인 것 같아 별도로 적지는 않는다.)

 

Reference

Ouyang, Long, et al. "Training language models to follow instructions with human feedback." Advances in Neural Information Processing Systems 35 (2022): 27730-27744.

 

 

총평

Chat-GPT의 가장 큰 단점으로 지적받는 '거짓말'에 대한 해결 방법을 제안한 논문이다. 이 논문을 읽기 전에는 단순히 학습 데이터를 filtering 하는 것이 방법 아닐까 하는 생각이 있었는데, 데이터를 filtering 하면 cost가 매우 크고, 데이터가 편향될 수 있어서 이 문제를 어떻게 풀까 고민했었다. 근데 이 논문은 매우 간단한 방법으로 (물론 prompt 등 데이터 생성은 간단하지 않지만) 이 문제를 완화하였다. 물론, 아직 갈 길이 멀지만, GPT-1부터 논문의 마지막 부분에 항상 존재하던, 발생할 수 있는 문제들에 대해 해결을 방법을 제안한 의미 있는 논문이라고 생각한다. 

+ Recent posts