ChatGPT 시리즈 – ④’인간 피드백형 강화학습(RLwHF)’과 GPT-3.5

160X600_GIAI_AIDSNote

ChatGPT의 모델 자체는 기존의 강화학습 모델들과 큰 차이가 없다. ChatGPT 측에서 직접 공개한 홈페이지 상의 설명이나, 공개된 논문에서도 기존의 강화학습을 일부 변형해 보상(Reward)를 주는 방식을 인간의 피드백으로 대체했다는 점을 지적하고, 해당 부분의 효과를 설명하는 실험으로 가득찬 전형적인 공학 논문이다.

위의 2번 식에서 볼 수 있듯, 기존의 강화학습(Reinforcement Learning, RL)을 놓고, Supervised Fine-Tuning(SFT)라는 작은 모델로 보정하는 작업을 거친다. SFT는 모델 제작자가 뽑은 일부 데이터만을 활용한 Policy로, RL과 일치한다면 log로 처리된 두 값의 비율은 log1, 즉 0이 된다. 두 값이 차이가 있을 때만 첫번째 Expectation 값이 r(x,y)가 아닌 다른 값이 되는 것이다.

말을 바꾸면, 보정해야할 필요가 있으면 보정하고, 그 외에는 기존 모델을 그대로 따르겠다는 것이 된다. 뒷쪽의 (화면 상에서 2번째 줄의) Expectation은 ‘Pre-train’ 값, 즉 기존 모델로 만들었던 값이고 Gamma 값이 곱해진 이유는 어느 정도의 비율로 기존 모델을 쓸지 결정하겠다는 것을 의미한다.

정리하면, 위의 2번 식은 과거 모델을 Gamma만큼 활용하고, 이번에 새롭게 들어온 정보를 바탕으로 보정한 값에 더해줘서 최적화 계산을 진행하겠다는 뜻인데, 좀 더 쉬운 말로 표현하면, 새 정보가 의미가 있으면 쓰고, 아니면 말겠다는 뜻이라고 보면 된다.

자, 그럼 새 정보를 처리하는 SFT라는 계산이 어떤 계산인지 궁금해지는데,

위의 Step 1에서 ‘Sample’ 데이터로 얻은 결과물을 ‘Fine-tune’한다는 설명이 담겨 있다. 역시 좀 더 쉬운 말로 바꾸면, 모든 데이터를 다 쓰면 계산 비용이 너무 커서 시간이 많이 걸리니, 일단 간단한 샘플 데이터를 뽑은 다음, 그 데이터를 이용해 추정해야 하는 ‘숨겨진 논리’를 예측하는 작업을 했다는 것이다. 여기서 Supervised Fine-Tuning (SFT)은 이 모델이 ‘지도학습(Supervised)’이고, 미세하게 조금씩 결과값을 보정하는(Fine-Tuning) 과정을 진행한다는 뜻이 담겨 있다.

머신러닝 수업 초반부에 ‘Stochastic Gradient Descent (SGD)’라고 불리는 계산법을 배울텐데, 여기서 ‘Stochastic’이 들어간 이유가 모든 데이터를 쓰지 않고 일부의 데이터만 활용하기 때문에 붙은 설명이다. 위의 Step 1에서 설명하는 SFT도 같은 맥락에서 작은 샘플을 뽑아 근사치를 빠르게 찾아 다음 모델에 던져주는, 일종의 중간 단계 모델을 말한다.

이어 Step 2에서는 일반적인 강화학습 모델에서 말하는 보상(Reward)이 RLHF에서는 인간의 선호 값으로 대체된다는 점을 설명하고 있다. 이전에 설명한 현시선호(Revealed preference)를 따르겠다는 것이다. 위의 그림에서 RM은 Reward Model의 약자다.

마지막 Step 3에서는 그렇게 만든 Supervised learning 모델을 결합하는 방식을 설명하고 있다. 여러 옵션 중에 최적 선택을 반복적인 데이터 입력으로 찾아가는 계산을 RL 수업을 듣다보면 아마 (Multi-Armed) Bandit이라는 이름으로 배울 것이다. 위의 PPO (Proximal Policy Optimization)이 바로 그렇게 Bandit 형태로 반복작업을 거쳐 조금씩 최적 결과값에 가까운 정보를 찾아가는 작업을 의미한다.

쉽게 3개의 도박 기계가 있을 때, 가장 돈을 많이 벌 수 있도록 해 주는 모델을 알 수가 없으니, 번갈아가면서 동전을 넣어보다가 효과가 가장 좋아보이는 기계에 점점 더 많은 돈을 넣는 방식의 추론을 Bandit이라고 부르고, PPO도 보상, 혹은 인간의 긍정적인 반응이 더 많은 답안을 내도록 모델이 변형된다는 모델이다.

이런 Bandit 형태의 추론 계산법이 일반적으로는 ε-greedy algorithm를 가장 기본형으로 쓰고, 그 외에 데이터 구조에 따라 Upper Confidence Bound(UCB), Thomson sampling 등을 쓰는 경우를 자주 보는데, ChatGPT의 RLHF는 Kullback-Leibler(KL) Divergence를 쓰는 점이 특이한 부분 중 하나다. 문자열 기반, 특히 채팅 기반의 데이터를 다루고 있는 만큼, 특정 단어로 바꿔 끼웠을 때 이상적인 답변에 더 가까워지는지를 판단하기에 적절하기 때문에 골랐을 것이다.

실제로 NLP 알고리즘 분야에서 KL Divergence로 적절한 단어 혹은 문장 구조를 선택하는 것은 새로운 일이 아니다.

ChatGPT의 RLHF가 가진 특이사항

정리하면

  • 기존 RL 알고리즘에 새로운 정보를 받아들일 수 있는 Correction이 반영되었고
  • 새롭게 추가되는 작은 데이터 셋으로 기본 모델을 만드는 작업으로 예전 모델을 수정·보완하는데 활용하고,
  • 모델 업데이트 되는 구조를 Bandit 형태로 접근하되,
  • 오차 보정에 ε-greedy algorithm, UCB, Thomson sampling 대신 KL Divergence를 쓴다
  • 텍스트 기반의 채팅 데이터이기 때문이다

ChatGPT 모델이 가진 학문적 한계

우선 ChatGPT가 밝힌 모델의 한계를 짚어보면

  1. Lack of control study: SFT를 기반으로 하고 최종 PPO를 뽑는 과정에서 대조군이 없음
  2. Lack of ground truth for the comparison data: 모델의 데이터 선택자 의지에 영향을 받음
  3. Human preferences are just not homogeneous: 이용하는 사람들마다 의견이 다 다름
  4. Prompt-stability testing for the reward model: 인간 선택이 얼마나 큰 영향을 미치는지 정도를 알 수가 없음
  5. Wireheading-type issues: 특정 결과물에 쏠림 현상 나타나는 점

인데, 한 줄 요약하면 RL 모델의 보상 체계를 인간의 반응으로 하다보니 생기는 부작용이라고 말할 수 있다.

이전 글에서 언급한대로 현시선호에 기반할 경우, 선호가 충족해야 하는 여러 논리를 따르지 못하면 그 선호를 쓴 모델은 논리가 엉망이 된다. 선호 체계 이론에서 정한 공리(Axiom)을 보면

  • 완비성(Completeness): 한 쪽이 더 낫다는 판단을 반드시 내릴 수 있다
  • 이행성(Transitivity): 순서가 뒤집어지는 일이 없어야 한다
  • 연속성(Continuity): 순서가 중간에 끊어지는 일이 없어야 한다
  • 강단조성(Strong monotonicity): 많으면 많을 수록 좋다

로 정리되어 있다.

그러나, 실제 현실은 위의 공리를 만족시키지 않는 경우가 많기 때문에 선호 체계를 잡기가 쉽지 않다. ChatGPT에서 밝힌 문제점 5가지에서 2,3번이 선호 체계 동질성이 깨지기 때문에 나타나는 직접적인 한계고, 데이터 의존적인 추천 모델이 공통적으로 갖는 5번, 그 문제점이 얼마나 큰지 확인하기 쉽지 않은 4번, 그리고 모든 Semi-Supervised learning 모델들이 공통적으로 1번의 문제를 갖고 있다.

ChatGPT 모델이 가진 현실적 한계 – 사공이 많으면 배가 산으로 간다

위의 학문적 이야기가 잘 이해하기 쉽지 않을테니 지극히 현실적인 사례를 들면, 영화 보는거 좋아하는 사람과 야구 보는거 좋아하는 사람처럼, 완전히 다른 선호를 가진 사람들의 반응을 잣대로 삼다보면 즉, 사공이 많으면 배가 산으로 가는 상황이 생긴다고 설명할 수 있다.

본질적으로 현재까지 나온 모든 인공지능 모델들이 ‘논리’ 기반이 아니라 ‘데이터 기반’이기 때문에 근데 그 데이터가 동질적이지 않으면 어쩔 수 없이 감당해야 하는 부분이다.

다양성을 모두 포괄하는 인공지능 모델을 만들 수 있지 않느냐고 되물을 수 있겠지만, 데이터 기반의 모델 작업은 언제나 일반화를 위한 것이지, 전문화를 위한 것이 아니라는 점을 다시 한번 강조한다.

바둑판 위와 같은 정해진 논리가 있고, 그 논리를 많은 데이터로 찾아내고, 그 중 최적 논리를 계산하는 시스템이 아니라, 수 많은 사람들의 다양한 종류의 반응들에 맞춘 다양성을 담는 것은 애당초 이런 종류의 계산과학적 모델의 목표가 아니다. 마치 알파고를 수십, 수백, 수천 명의 다양한 바둑기사 스타일로 만들어 내는 것과 같은 작업이라고 하면 이해가 될까? ChatGPT나 과거의 알파고 모두, 그 중 가장 이길 확률이 높은 1명을 찾아내는 알고리즘일 뿐이다.