ChatGPT에 적용된 RLHF(인간 피드백 기반 강화학습)의 원리

daewoo kim
10 min readFeb 26, 2023

--

ChatGPT는 주제에 상관없는 대화(개방형 도메인 대화)가 가능한 모델를 위해 특별히 설계된 GPT-3.5(InstructGPT)를 기반한 모델이다. OpenAI는 ChatGPT를 생성하기 위해 2022년 초반에 학습된 GPT-3.5를 Fine-Tuning하였으며, InstructGPT와 동일한 방법을 사용하였지만 데이터 수집 설정이 달랐다고 설명한다. (OpenAI는 데이터 수집 설정에 대해서는 미공개함)

GPT-3 series vs GPT-3.5 Series (source: Matt Richard’s blog)
InstructGPT vs ChatGPT (source: lifearchitect.ai)

ChatGPT vs GPT-3

기존 ChatGPT와 GPT-3는 어떠한 차이가 있을까? 크게 두 가지로 요약해볼 수있다.

1.Conversational AI에 맞게 튜닝

ChatGPT는 사람처럼 대화를 주고 받기 위해 튜닝되었다. 자세한 내용은 Kakao 엔터프라이즈에서 정리한 자료를 참고하자.

source: kakao enterprise

2.LLM의 alignment 문제를 완화

엄청난 양의 데이터를 학습한 LLM은 인간과 유사한 텍스트를 생성할 수 있게 되었다. 하지만 LLM의 alignment 문제는 다음과 같은 문제를 발생시킨다.

  • 유용성 부족: 사용자의 명시적인 지시에 따르지 않음
  • 환각: 존재하지 않거나 잘못된 사실을 만듬
  • 해석 가능성 부족: 인간이 모델이 한 특정 결정이나 예측에 도달한 방법을 이해하기 어려움
  • 편향 또는 독성 출력 생성: 편향/독성 데이터로 학습된 언어 모델은 명시적으로 지시받을 않았는 경우에도 편향되고 독성이 있는 답변을 출력

위와 같은 기능을 구현하기 위해 OpenAI는 지도 학습과 강화학습을 모두 이용하여 ChatGPT를 fineutning하였다. ChatGPT는 InstructGPT 논문에서 소개한 RLHF(Reinforcement Learning from Human Feedback)이라는 특정 기술을 사용한다.

InstrcutGPT의 RLHF(Reinforcement Learning from Human Feedback)

ChatGPT에 적용된 RLHF는 다음과 같이 3가지 단계로 나뉘어 진다.

source: openai blog

1) Supervised Fine-Tuning(SFT)

인간이 의도하는 정책을 학습시키기 위해 인간 Labeler(or trainer)가 선별한 적은 양의 샘플 데이터셋으로 Pre-trained LM을 Fine-Tuning함.

2) Reward Model (Mimic Human Preferences)

인간 Labeler는 1)에서 Fine-Tuning된 SFT 모델이 생성한 여러 답변 후보들 중, 인간 labeler 들이 무엇이 더 좋은 답변인지 랭킹을 매겨 점수화한 데이터셋을 수집함. 이 데이터셋을 이용하여 새로운 Reward Model을 학습함

3) PPO(Proximal Policy Optimization)를 이용한 SFT 모델 강화학습

SFT 모델에 여러 사용자들의 입력을 주고, Reward Model과 함께 상호 작용하면서 강화학습을 시킴.

1단계는 한번만 수행되는 반면, 2단계와 3단계는 지속적으로 반복될 수 있다.

Step-1. Supervisored Fine-Tuning (SFT) 모델

첫번째 단계는 Supervisored Fine-Tuning Model (여기서는 SFT 모델)을 학습하기 위해 demo 데이터셋을 수집한 후, PTM을 fine-tuning하였다.

Demo 데이터셋 수집

인간 Labeler들은 선택된 프롬프트에 대해서 예상 답변을 기록한다. ChatGPT의 경우 두가지 프롬프트 소스를 사용하였다. 1) Labler 또는 개발자가 직접 준비, 2) 사용자들이 OpenAI의 API로 문의한 프롬프트에 대해 샘플링하였다. 이 전체 프로세스는 비용이 많이 들고 느리지만, 상대적으로 작지만 고품질의 선별된 데이터셋(약 12~15K 데이터)를 생성할 수 있었다.

PTM(Pre-Trained Model) Fine-tuning

ChatGPT는 GPT-3를 fine-tuning하는 대신, GPT-3.5를 베이스 모델로 선택하였다. 이 단계에서 제한된 양의 데이터셋으로 인해 fine-tuning을 한 SFT 모델도 여전히 alignment 오류가 있는 텍스트를 출력할 가능성이 있다.

Step-1의 문제점은 인간 Labeler을 통해 데이터셋을 얻기 때문에 높은 확장성 비용 문제를 겪는다는 것이다. 이 문제를 해결하기 위해 Step-2에서 Reward Model을 학습시킨다.

Supervised Fine-Tuning 모델

Step-2. Reward Model (Mimic Human Preferences)

Step-2의 목표는 인간 Labeler가 Step-1에서 생성된 SFT 모델의 출력에 점수를 매긴 데이터셋을 활용하여 인간의 선호도를 모방하는 Reward Model을 학습하는 것이다. Reward Model을 생성하는 방식은 다음과 같다.

  1. SFT 모델은 선택된 프롬프트에 대해 여러 출력(4~9개)을 생성하고 인간 Labeler는 SFT가 생성한 출력을 best부터 worst까지 순위를 매긴다.
  2. 이 데이터셋의 크기는 SFT 모델을 fine-tuning하는데 선별된 데이터셋보다 약 10배 더 크다. 이 새로운 데이터셋을 이용하여 Reward Model을 학습한다.

이와 같은 과정을 통해 Reward Model은 인간이 선호하는 텍스트를 학습한다. 인간 Labeler가 처음부터 답변을 만드는 것보다 SFT 모델이 생성한 출력의 순위를 매기는 것이 훨씬 더 쉽고 더 효율적으로 확장된다.

이 데이터셋은 30~40K prompt 모음으로부터 생성되었으며 각 prompt에 대해 생성된 출력의 개수는 가변적이며 ranking 단계에서 각 Labeler에게 제공되었다.

Reward Model 학습하기

Step-3. PPO(Proximal Policy Optimization)를 이용한 SFT 모델 강화학습

Step-3의 목표는 Step-2에서 학습한 Reward Model이 제공하는 보상을 사용하여 SFT 모델을 fine-tuning 시키는 것이다. Step-3 부터는 학습 loop에서 더이상 사람이 필요하지 않다.

Reward Model과 PPO loss 계산을 이용하여 SFT 모델을 fine-tuning하기

위의 학습 파이프라인의 초기에 SFT 모델의 copy본을 만든 후 trainable weight를 동결(freeze)한다. Frozen Model은 trainable Model의 weight가 완전히 바뀌는 것을 방지하고 Reward Model에 말도 되지 않는 텍스트로 출력을 시작하는 것을 방지하는데 도움이 된다.

이것은 Frozen Model과 Non-frozen(trainable) Model의 텍스트 출력 확률간 KL divergence를 계산하는 이유이다. 이 KL divergence는 Reward Model이 생성한 reward와 더해져 final reward가 만들어진다. 이제 reward loss를 미분하기 위해 강화학습을 적용할 수 있다.

Reward를 미분할 수 없었던 이유는 입력을 텍스트로 받는 Reward Model로 계산되었기 때문이다. 이 텍스트는 SFT 모델의 출력 로그 확률을 디코딩하여 얻는데 이 디코딩 프로세스는 미분할 수 없다. Loss를 미분하도록 하기 위해 드디어 PPO을 동작할 수 있게 된다.

PPO(Proximal Policy Optimization) 알고리즘

PPO는 다음과 같은 과정을 통해 Loss를 계산하여 trainable SFT 모델의 weight를 업데이트한다.

[1] 초기화를 위해 intial probs(initial output text probabilities)를 new probs(new output text probabilities)와 동일하게 만듬

[2] New probs와 initial probs간 ratio을 계산함

[3] 아래 공식에 따라 loss를 계산함.

loss = -min(ratio * R, clip(ratio, 0.8, 1.2) * R)

  • R = reward + KL (or 0.8*reward + 0.2*KL와 같은 weighted average)
  • clip(ratio, 0.8, 1.2) → 0.8 ≤ ratio ≤ 1.2

[4] Loss를 backpropagating하여 SFT Model의 weight를 업데이트함

[5] 새롭게 업데이트된 SFT 모델로 new probs를 계산함

[6] 2번부터 6번을 N 번 반복함

RLHF의 한계

RLHF로 ChatGPT는 GPT-3보다 더 나은 품질의 답변을 하지만 완벽하지 않아 ChatGPT는 여전히 유해하고 사실이 아닌 텍스트를 생성하고 있다. 따라서 장기적으로 RLHF의 개선이 추가적으로 필요하다. 다음은 알려진 RLHF의 한계이다.

데이터셋 확보 비용

RLHF는 인간 Labeler의 데이터셋을 생성하기 위해선 파트 타임 직원을 고용해야 하기 때문에 비용이 많이 드는 문제가 있다.

주관적인 요인에 따른 학습 데이터셋의 품질 편차

InstructGPT 논문에서 언급한 것처럼 RLHF은 언어 모델을 인간의 의도대로 alignment하기 위해 fine-tuning용 데이터셋을 얻을 때 다음과 같이 복잡하고 다양한 주관적인 요인에 영향을 받은 한계가 있다.

  • Demo 데이터셋을 생성하는 Labeler의 선호도
  • 연구를 설계하고 라벨링 방법을 작성하는 연구원
  • 개발자가 작성한 prompt와 OpenAI의 사용자가 제공한 prompt의 선택
  • Labeler의 편향이 reward model 학습과 모델 평가 모두에 포함됨

--

--

daewoo kim

AI developer & Author | Working@semiconductor-industry. I write and share about what I learn.