Training Language Models to Follow Instructions with Human Feedback

김동하·2023년 12월 11일

paper_review

목록 보기
9/11

https://arxiv.org/abs/2203.02155

Introduction

다양한 대형언어모델이 다양한 NLP task를 풀기 위해 모델에 prompt를 줄 수 있습니다. 특히, task에 대한 몇 개의 예제를 함께 주는 prompt가 흔하게 쓰입니다. 하지만, 이러한 모델들은 의도되지 않은 출력을 뱉거나 없는 사실을 만들어내거나, 편향된 혹은 혐오적인 표현을 내뱉을 수 있습니다. 이는 최신 언어 모델들의 목적함수(language model objective)가 단순히 인터넷 웹페이지의 다음 토큰을 예측하는 것이기 때문입니다. 이는 우리가 언어모델에게 기대하는 “유저의 지시(instruction)”을 안전하고 도움을 주는 방향으로 따르는 것과의 괴리가 있습니다.

이러한 괴리를 해결하기 위해, 저자들은 fine-tuning 방법을 제시합니다. 구체적으로, 사람들의 피드백을 통한 강화학습(Reinforcement Learning from Human Feedback; RLHF)을 사용하여 GPT3를 작성된 instruction들을 따르도록 fine-tuning합니다.

  1. (Supervised Fine-Tuning; SFT) 언어 모델 API에 제출된 prompt에 대한 원하는 출력 동작에 대한 사람이 작성한 demonstration들과, 레이블러가 작성한 prompt들을 수집했습니다. 이 데이터셋을 가지고 모델을 지도학습으로 fine-tuning합니다.
  2. (Reward Model training; RM) 다음으로, 큰 개수의 API prompts에 대해 1번으로 학습된 모델이 생성한 출력들 사이에 사람이 평가한 레이블 또는 비교를 포함하는 데이터셋을 수집합니다. 이 데이터셋으로 레이블러가 어떤 모델출력을 더 선호하는지 예측하는 보상모델(reward model, RM)을 학습시킵니다.
  3. (Proximal Policy Optimization; PPO) 학습된 RM을 보상함수로 사용하여 보상을 최대화 시키도록 모델을 학습합니다. 이때 PPO알고리즘을 사용합니다.

이렇게 학습된 모델을 InstructGPT라고 부릅니다.

img

저자들은 이렇게 InstructGPT를 평가하기 위해 레이블러가 테스트셋에 대한 모델 출력의 퀄리티를 채점하고 공개된 NLP 데이터셋들에 자동화된 평가를 진행했습니다. 저자들은 1.3B, 6B, 175B 모델을 학습했고 이들은 모두 GPT3 구조를 가지고 있습니다.

평가 결과를 통해 저자들은 다음과 같은 점들을 발견했습니다.

  • 레이블러는 GPT3가 생성한 출력보다 InstructGPT가 생성한 출력을 더 많이 선호합니다.
  • InstructGPT모델은 GPT3보다 향상된 진실성(truthfulness)을 보입니다.
  • InstructGPT는 GPT3보다 조금 해소된 유해성을 보이지만, 편향에 대해서는 해소되지 않았습니다.
  • 제안된 RLHF fine-tuning 과정을 수정하면서 공개된 NLP 데이터셋들에 대한 성능 하락을 최소화할 수 있습니다. 특정 NLP 데이터셋에서 GPT3보다 성능이 하락된 것을 목격했는데, 이는 PPO 업데이트와 사전학습 분포의 log likelihood를 증가하는 업데이트와 섞어 성능하락을 크게 줄일 수 있습니다.
  • InstructGPT는 학습데이터를 만들지 않은 레이블러의 선호에도 일반화될 수 있습니다.
  • 공개된 NLP 데이터셋은 InstructGPT가 어떻게 사용되는지를 반영하고 있지 않습니다. 즉, 이 연구에서 수집한 사람의 선호도를 반영한 데이터와, (FLAN, T0에 사용된) 공개된 NLP 데이터를 각각 GPT3에 fine-tuning했을 때 후자의 경우가 성능이 더 낮았고, 전자가 훨씬 좋은 평가를 얻었습니다.
  • InstructGPT는 RLHF fine-tuning 분포 외의 instruction에 대해서도 일반화되어 따를 수 있습니다.
  • 하지만, InstructGPT는 여전히 실수를 하곤 합니다. 종종 지시를 따르지 못하거나, 없는 사실을 만들어내기도 합니다.

Methods and Experimental Details

High-level methodology

저자들의 메소드는 1) 사전학습된 언어모델, 2) 모델이 원하는 출력을 생성하게 지도하는 prompt들 3) 사람 레이블러들을 가지고 다음과 같은 세 단계를 거칩니다.

Step1 : demonstration data를 수집하고, 지도 policy를 학습시킵니다.

레이블러가 만든 demonstrations(prompt - 레이블러가 작성한, 원하는 출력물)을 가지고 사전학습된 GPT3를 지도학습으로 fine-tuning합니다.

Step2 : comparison data를 수집하고, reward model을 학습시킵니다.

한 prompt에 대한 두개의 모델 출력물들을 비교하여 레이블러가 더 선호하는 출력물을 선택하여 비교용 데이터를 구성하고, 이 데이터를 이용하여 모델이 사람이 선호하는 출력을 생성하는 방향으로 reward model을 학습합니다.

Step3 : PPO를 이용하여 reward model에 대한 poilcy를 최적화합니다.

reward model의 출력(실수값인 reward)을 사용하여 PPO 알고리즘으로 이 reward를 최적화하는 방향으로 policy를 fine-tuning합니다.

step2와 step3는 번갈아가며 반복가능합니다. comparison data는 현재 가장 좋은 policy위에서 추가적으로 수집될 수 있습니다.

Dataset

저자가 사용한 prompt dataset에는 언어모델 API에 제출한 prompt들과 더불어 적은 개수의 레이블러가 작성한 prompt를 포함되어있습니다. 또한 question answering, dialog, summarization 같은 다양한 task에 대한 prompt들로 구성되어 있습니다.

이러한 prompt dataset을 용도에 맞게 세가지 dataset으로 나눴습니다.

  • SFT dataset = demonstration dataset : SFT(supervised fine-tuned) model을 학습시키기 위한 레이블러 demonstrations을 포함한 데이터
  • RM dataset = comparison dataset : RM을 학습시키기 위해, 모델이 생성한 출력들에 ranking을 레이블러가 매긴 데이터
  • PPO dataset : RLHF fine-tuning을 위한 API로만 수집한 prompt 데이터

Human Data Collection

demonstration data와 comparison data를 만들 약 40명의 레이블러를 고용하였습니다. 이 레이블러들은 70%대의 일치도를 가졌습니다.

Models

사전학습된 GPT3모델에서, 저자들은 3가지 다른 테크닉으로 학습을 시켰습니다.

  • Supervised Fine-Tuning (SFT) : 지도학습으로 레이블러가 작성한 demonstration으로 GPT3를 fine-tuning한 모델입니다. 최종 SFT 모델은 validation set에서의 RM score이 가장 높은 checkpoint로 선택했습니다.
  • Reward Modeling (RM) : prompt와 그에 대한 출력을 입력으로 넣었을 때 실수값인 reward를 출력하도록 6B RM 모델을 fine-tuning합니다.
  • Reinforcement Learning (RL) : SFT model을 RM모델과 PPO알고리즘을 사용하여 fine-tuning합니다. 기본 셋팅에서 학습된 모델을 “PPO”, 공개된 NLP 데이터셋의 성능을 유지하기 위해 사전학습 gradient와 PPO gradient를 섞어 학습한 모델을 “PPO-ptx”라고 부릅니다. 이 모델들이 제안된 프레임워크를 적용한 InstructGPT입니다.
  • 저자들은 PPO model을 SFT model, GPT3의 성능과 비교했고, 또한 few-shot prefix를 제공받아 지시를 따르게끔 유도한 GPT3-prompted와도 비교했습니다. 또한 GPT3를 FLAN,T0에 사용된 데이터를 이용해 fine-tuning했을때의 성능도 비교대상으로 삼았습니다.

Evaluation

모델에 대한 평가는 두가지를 이용했습니다.

  • API distribution에서의 평가 : API로 만들고 학습에 사용되지 않았던 prompt들에 대한 사람의 선호도 ranking을 이용하여 모델을 평가했습니다.
  • 공개된 NLP 데이터셋에서의 평가 : 언어 모델의 진실성, 유해성, 편향을 평가하는 안전성 관련 데이터셋들과, 질의응답, 독해, 요약 등의 전통적인 데이터셋들에 평가했습니다.

Results

Results on the API distribution

API distribution 테스트 데이터셋에서 레이블러들은 InstructGPT가 생성한 출력물을 다른 모델들의 출력물보다 선호했습니다.

img

기본 GPT3모델이 가장 낮은 선호도를 보였고, 잘 정제된 few-shot prompt를 제공받았을 때 큰 향상을 보였고 (GPT3-prompted), demonstration으로 fine-tuning했을 때(SFT), 그 모델을 PPO로 추가적으로 학습시켰을 때(PPO, PPO-ptx) 더 높은 선호도를 보였습니다.

아래 그림은 InstructGPT가 여러 구체적인 축에서도 사람의 선호를 잘 반영하고 있음을 보여줍니다.

img

레이블러들은 InstructGPT가 customer assistant의 용도에 적합하다고 평가했고, 지시된 제약(예시 : 답을 두개의 문단 혹은 더 짧게 작성하라)에 더 잘 따른다고 평가했습니다. 또한 없는 사실을 지어내거나(hallucination), 정확한 지시를 따르지 못할 확률이 더 낮다고 평가했습니다.

InstructGPT는 학습데이터를 만들지 않은 “held-out” 레이블러의 선호도에도 일반화될 수 있습니다.

img

학습데이터를 만든 레이블러들과 held-out 레이블러들의 선호 ranking이 유사한 것을 위의 그림에서 확인할 수 있습니다. 특히 held-out 레이블러의 평가 결과에서 InstructGPT(PPO, PPO-ptx)가 다른 baseline을 크게 이긴 것으로 보아, held-out 레이블러 선호도에도 잘 일반화됨을 알 수 있습니다.

공개된 NLP 데이터셋은 언어 모델이 어떻게 사용되는지에 대해 반영하고 있지 않습니다.

img

InstructGPT와 공개된 데이터셋에 fine-tuning된 GPT3와 비교했을 때, 후자가 훨씬 낮은 Likert score을 얻은 것을 볼 수 있습니다. 또한, demonstration data를 학습한 SFT보다도 낮은 점수를 얻었습니다. 이러한 결과는 FLAN, T0 학습에 사용된 공개된 NLP 데이터셋의 prompt는 성능을 향상시키기에 충분하게 다양하지 않다는 것을 의미합니다. 저자들이 주장하기에 이는 학술적인 데이터셋은 성능을 쉽게 잴 수 있는 분류, 질의응답 같은 task만 집중하고 있는 반면, 저자들이 제공한 API distribution은 대부분 open-ended generation task을 포함하기 때문입니다.

Results on public NLP datasets

InstructGPT는 더 향상된 진실성(truthfulness)를 보입니다. 아래 그림에서 색있는 bar은 진실성과 정보성(truthfulness and informativeness)를 의미하고, 회색 bar은 진실성만을 의미합니다.

img

TruthfulQA 데이터셋에서 인간이 평가한 결과(”QA prompt”), 제안된 PPO 모델들이 진실성있고 정보력있는 출력물을 생성하는데에 있어 GPT보다 작지만 의미있는 향상을 보였습니다.

또한, “Instruction+QA prompt”을 제공했을 때, 즉 모델이 대답에 확신이 없을 때 “I have no comment”라고 출력하도록 지시를 주었을 때 PPO 모델들이 틀린 대답을 자신있게 말하는 것보다(hallucination), 진실성있지만 정보력이 없는 대답(”I have no comment”)을 하는 것을 알 수 있습니다.

InstructGPT는 GPT3보다 조금 완화된 유해성을 보이지만, 편견에 대해서는 향상을 보이지 않았습니다.

img

RealToxicityPrompts 데이터셋으로 평가할 때, 모델ㄹ에게 안전하고 예의바른 출력물을 생성하도록 지시했을 때(”respectful”) InstructGPT는 GPT3 베이스라인보다 덜 위험한 출력물을 생성했습니다. 하지만, 이러한 지시를 주지 않았을 때(”none”), 이러한 효과가 없어지는 것을 볼 수 있습니다.

Qualitative results

InstructGPT는 RLHF fine-tuning distribution이외의 instruction에도 일반화될 수 있습니다.

InstructGPT가 영어가 아닌 instruction에도 잘 따르는 것을 발견했습니다. 이것이 놀라운 이유는 코드나 영어가 아닌 데이터는 fine-tuning 데이터 중에서도 극히 일부이기 때문입니다. 제안된 프레임워크를 통해 사람이 직접적으로 지도하지 않아도 제안된 방법을 통해 원하는 행동을 따르도록 만들 수 있다는 것을 알 수 있습니다.

img

InstructGPT는 여전히 간단한 실수를 합니다.

제안된 175B PPO-ptx 모델을 ㄹ다루면서, 저자들은 이 모델이 실수를 하는 것을 확인했습니다. 다양한 언어 Task에서 뛰어난 성능을 보였지만, 1) 틀린 전제를 주었을 때 모델이 틀린전제가 맞다고 착각할 수 있으며, 2) 모델이 모호하게 행동하며 간단명료한 대답이 있음에도 여러개의 가능한 대답을 생성하거나, 3) 여러개의 제약을 instruction으로 주었을 때 모델의 성능이 떨어지는 경우도 있었습니다.

img

Discussion

저자들이 제안한 framework는 AI 시스템을 사람의 의도에 맞게 align하는 연구라고 볼 수 있습니다.

model alignment 관점에서의 시사점을 제안했습니다.

  • model alignment의 비용은 pretraining보다 훨씬 적게 든다.
  • InstructGPT가 지도학습에 사용되지 않은 “지시를 실제로 따르는” 일반화되는 행동을 저자들은 확인했다.
  • 저자들이 제안한 fine-tuning framework로 대부분의 성능 하락을 완화할 수 있다.
  • 저자들의 alignment techniques들이 real world에 적용될 수 있다는 것을 보였다.

0개의 댓글