InstructGPT (Training language models to follow instructions with human feedback) 논문 리뷰
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를 주었다.
- 과정을 소개하면,
- screening test를 통해, 40명의 labeler를 고용했다.
- OpenAI API를 통해 수집된 prompts와 labeler가 작성한 prompts를 통해 desired ouput에 대한 데이터셋을 생성하고, supervised learning baseline을 학습하는 데 사용한다.
- 그다음, 인간이 model의 ouput들을 평가한 데이터셋을 생성한다.
- 데이터셋을 이용하여 인간의 선호도에 따른 reward model(RM)을 학습한다.
- 마지막으로, 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번은 계속 반복된다.)
- demonstration에 대한 데이터를 모으고, supervised 방식으로 학습한다. (기존 LM 방식)
- comparision 데이터를 모으고, reward model을 학습한다.
- 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부터 논문의 마지막 부분에 항상 존재하던, 발생할 수 있는 문제들에 대해 해결을 방법을 제안한 의미 있는 논문이라고 생각한다.