OpenAI에서 사람이 입력한 지시문을 잘 이해하고 좋은 답변을 내기 위한 방법으로 "강화학습"을 활용해 기술적 혁신을 이끌었다.
대규모 텍스트 데이터로 사전학습된 GPT 모델을 사용한다. 이 모델은 단어를 예측하거나 문장을 생성할 수 있지만, 아직 구체적인 지시를 잘 따르지는 못한다.
사람이 작성한 답변 데이터를 준비한다. (예를 들어, 어떤 prompt에 대해 사람이 작성한 고품질의 답변을 데이터로 준비한다.)
이 데이터를 모델에 학습시켜, 사람이 작성한 답변과 유사한 답변을 생성할 수 있도록 모델을 미세조정(Fine Tuning)한다.
이렇게 만들어진 모델을 SFT(Supervised Fine-Tuned) 모델이라고 부른다.
SFT Model: 기본적으로 사람의 답변을 흉내내는 모델
SFT 모델로 답변을 생성한다.
Step1에서 만든 SFT 모델의 여러 버전을 준비한다.
동일한 질문(prompt)을 입력하고, 각각의 SFT 모델이 생성한 다양한 답변을 수집한다.
사람의 평가 데이터 생성
수집된 답변들 중에서, 사람이 어떤 답변이 더 좋은 평가하여 순위를 매긴다.
쌍(pair) 데이터를 샘플링
위에서 만든 순위를 활용해, 답변 K개 중 임의로 두 개의 답변 쌍을 만든다.
두 답변 중에서 사람이 더 선호한 답변을 기준으로 모델에게 학습을 시킨다.
보상 모델(RM) 학습
보상 모델(RM)은 입력된 질문(prompt)와 답변에 대해 "이 답변이 얼마나 좋은가"를 예측하는 역할을 한다.
아래의 수식에 따라, 사람이 더 선호한 답변과 그렇지 않은 답변의 차이를 예측하도록 RM을 훈련한다.
rθ(x,y): 질문 x와 답변 y에 대해 보상 모델이 출력한 점수(스칼라 값).
𝑦𝑖,𝑦1−𝑖: 인간이 선호한 답변과 그렇지 않은 답변.
이 과정을 통해 보상 모델은 어떤 답변이 더 "좋은" 답변인지 판단하는 능력을 갖추게 됩니다.
RM: 어떤 답변이 좋은지 평가하는 모델
PPO Policy Model: 실제로 질문에 대해 사람이 선호하는 답변을 생성하는 모델
왜 policy(정책)이라는 용어를 사용하는가?
강화학습은 본질적으로 미래의 보상을 극대화하는 방법을 학습하는 과정이다. 이 과정에서 정책(policy)은 "결정을 내리는 규칙" 또는 "행동 방침"에 해당한다.
ex. PPO 알고리즘은 "답변을 생성하는 방식(policy)"을 점진적으로 개선하여 보상을 최대화하려고 한다.
상태(state): 현재 환경의 상황정보(예. 주어진 질문 또는 프롬프트)
행동(action): 모델이 생성하는 답변이나 출력
정책(policy): 상태에 따라 행동을 결정하는 전략(예. 정책은 어떤 질문이 들어오면 어떤 방식으로 답변을 생성해야 가장 높은 보상을 받을지를 결정한다.)
참고자료
Training language models to follow instructions with humanfeedback
Learning to summarize from human feedback
chatGPT에 사용된 RLHF와 PPO 알고리즘 뜯어보기