ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • RLHF (ChatGPT 학습 방법) 분석
    최신 기술동향/인공지능 (AI) 2023. 4. 29. 10:15
    반응형

     ChatGPT가 세상을 강타한 이후, AI로 Contents를 생성하는 Generative AI (생성형 AI)가 산업계와 투자 시장에 큰 영향을 미치고 있다. 이와 관련된 수많은 Startup이 생겨나고 있으며, AI 관련 투자는 Generative AI가 독식하고 있다시피 한다. AI가 B2C 비즈니스로 이어지기 쉽지 않았던 과거와는 달리 User들에게 Direct로 노출할 콘텐츠 (e.g., 이미지, 비디오, 글)를 만들 수 있다 점에서 API 형태로 비즈니스와 쉽게 연동할 수 있기 때문으로 보인다.

     하지만, 좋은 성능의 Generative AI를 작은 규모의 스타트업에서 개발할 수 있는지, 앞으로 어떤 비즈니스 모델이 나올지를 예측하기 위해서는 Midjourney, ChatGPT, Dall-E 같은 세상을 놀라게 하는 서비스들은 어떤 식으로 성능을 끌어올렸는지 알아볼 필요가 있어 보인다. 이번 글에서는 ChatGPT가 사용한 Reinforcement Learning from Human Feedback (RLHF)에 대해 정리해보려 한다.

     Generative AI의 일종인 ChatGPT는 '프롬프트'라는 Text기반 입력을 받아서 텍스트를 출력해 주는 구조다. 대부분의 AI가 그렇듯이, 좋은 output을 출력하도록 AI 모델을 학습시키는 과정이 필요한데, '좋은 output'의 경계가 모호하다는 문제점이 있다. 생성한 Text가 사람이 이해하기 쉬워서 좋은 점수를 줄 수 도 있지만, 잘못된 정보를 포함하고 있어서 오히려 나쁜 점수를 줘야 할 수도 있다. 창의성에 초점을 맞출 것인지, 사실성에 초점을 맞출 것인지 등 복잡한 요소들이 평가 요소에 포함될 수 있기 때문에, 다른 AI use case들과 비교했을 때, 다른 방식 (주관적인 요소를 반영한)의 loss function 설정과 학습 과정이 필요하다. ChatGPT에서는 이를 해결하기 위해, Reinforcement Learning from Human Feedback (RLHF)라는 방식으로 접근했다.

     

    3-steps for Reinforcement Learning from Human Feedback (RLHF) 

     RLHF는 크게 3가지 과정으로 이루어져 있다. 첫 번째는 RLHF를 적용하지 않은 것처럼 전통적인 loss function을 이용하여 Language Model을 학습시키는 과정이다. 아래 그림처럼, 기존 대용량의 ground-truth 기반 데이터셋을 기반으로 학습을 하고, 인간이 선별 추가 데이터셋을 기반으로 fine-tune을 진행하기도 한다. 즉, 전통적인 언어 모델의 학습처럼 좋다고 평가받는 데이터셋을 기반으로 feature를 뽑아낸 AI 모델을 만든다고 생각하면 된다. 이렇게 학습한 모델은 Step-2, Step-3에서 활용될 예정이다.

     두 번째는 Reinforcment Learning의 핵심인 Reward을 계산하는 AI model을 학습하기 위한 과정으로, 데이터 수집과 이를 이용한 학습이 포함되어 있다. 첫 번째 과정에서 생성한 AI 모델을 이용하면, 프롬프트에 대한 대답 (output)에 대한 여러 후보군이 나올 수 있다. 이 후보군을 인간이 보고 어떤 것이 좋은 답변인지 점수화하여 랭킹을 매긴다. (프롬프트, 답변 후보군)이라는 pair에 대한 점수 및 랭킹을 데이터셋으로 수집하고, 각 pair의 점수를 계산해 주는 새로운 Reward 모델을 학습한다. 여기서 학습한 Reward 모델은 Step-3에서 RL을 모델을 학습할 때, 현재 policy로 출력하는 output의 점수를 계산하는 데 사용된다.

     세 번째는 Reinforcement Learning을 이용하여 Step-1에서 학습시킨 AI model을 추가 학습시키는 과정이다. 이 모델이 출력하는 output을 보고 두 번째 과정에서 학습시킨 reward 함수가 해당 output의 점수를 계산해 준다. 이 점수를 최대화할 수 있도록 Step-1의 AI model을 학습시키는 과정을 반복한다. RL 관점에서 보면, reward를 계산하여 다음 output (Text)을 Action으로 하는 정책을 update 하는 방식으로 작동하는 Proximal Policy Optimization (PPO)이 활용되었다고 보면 된다.

     이렇게 reward를 설계하면 reward는 높아지는데, 처음에 힘들게 학습했던 언어 모델에서 너무 많이 벗어나는 부작용이 생기기도 한다. 이를 위해서 KL-divergence 기반의 penalty를 추가했다. Step-1으로 확보한 AI model의 copy를 만들어서 Frozen (가중치 업데이트 X)하고, Trainable AI model을 학습시키면서, Frozen model과 너무 차이가 벌어지면 penalty를 주는 방식으로 동작한다. (대부분의 논문에서 분포 간에 어느 정도 차이가 나는지를 계산할 때 KL Divergence를 사용한다) Step-2와 Step-3는 어떻게 보면, RL을 구성하는 하나의 프로세스로 볼 수 있을 것 같은데, 두 step은 여러 번 반복해서 모델의 성능을 더 끌어올릴 수도 있다.

     

     RLHF의 한계점 및 Startup 관점 고민

     RLHF의 가장 큰 약점은 '비싼 데이터 셋'으로, 인간이 직접 Labeling한 데이터 셋을 학습 과정 동안 Input으로 넣어줘야 한다는 점이다. 인간이 직접 Labeling 한 데이터 셋은 '비싼 데이터 셋'이며, 좋다 나쁘다 Labeling 하는 과정에서 Labeler의 주관이 들어가기 때문에 정확하지 않을 수도 있다. 또한 이렇게 학습을 한다고 해서 '그럴듯한 거짓말'인 Hallucination (환각 현상)을 완벽하게 극복할 수 있는 것은 아니다. 하지만 인간의 주관이 들어가는 영역에서 데이터 셋은 어떻게 수집할 것이고, 이를 어떻게 학습에 반영할 수 있을지에  RL을 적용하는 영역은 아직 연구할 부분이 많기 때문에 추가적인 성능 향상이 있지 않을까 기대해 본다.

     그렇다면, 대기업은 막대한 예산을 쏟아부어서 Labeler를 고용하고, 학습에 이용할 수 있겠지만, 비교적 규모가 작은 Startup 입장에서는 RLHF를 적용할 여지가 있을까? Domain마다 차이는 있을 수 있고, 어느 정도의 성능 향상이 있을 수 있을지에 대해서는 연구 결과가 아직 부족해 보인다. 개발자들 몇 명이 직접 점수를 매긴다고 해도, 편향된 데이터를 생성할 수도 있다.

     RLHF이나 NAS 등 여러 방법을 통해 AI 모델의 성능이 올라가서, 데이터 셋 (i.e., Quality, Quantity)의 경쟁이 되기 시작하면, 작은 규모의 Startup 입장에서는 모델 성능 경쟁에서 이기기 쉽지 않을 것 같다는 것이 개인적인 생각이다. 따라서, 모델 자체의 개발도 물론 중요하지만, Startup들은 Generative AI를 활용한 비즈니스 모델이나 모델 최적화를 위한 Solution을 제공하는 방향으로 사업 방향을 접근을 하는 것도 의미 있지 않을까 조심스럽게 생각해 본다.

     

    Reference

    https://huggingface.co/blog/rlhf

     

    Illustrating Reinforcement Learning from Human Feedback (RLHF)

    Illustrating Reinforcement Learning from Human Feedback (RLHF) This article has been translated to Chinese 简体中文 and Vietnamese đọc tiếng việt. Interested in translating to another language? Contact nathan at huggingface.co. Language models h

    huggingface.co

     

    반응형

    댓글

Designed by Tistory.