[해외DS] ChatGPT 쉽게 알기: 인간 피드백형 강화 학습(RLHF) 심층 분석

Bala Manikandan이 알려주는 ChatGPT와 RLHF의 작동 원리 대형 AI 모델의 알고리즘 편향 인간 피드백으로 해결한다, OpenAI 꾸준히 노력 중 ChatGPT의 성공 이면에 있는 AI의 역할에 대한 의문점

pabii research

[해외DS]는 해외 유수의 데이터 사이언스 전문지들에서 전하는 업계 전문가들의 의견을 담았습니다. 저희 데이터 사이언스 경영 연구소 (MDSA R&D)에서 영어 원문 공개 조건으로 콘텐츠 제휴가 진행 중입니다.

사진=Medium

ChatGPT는 챗봇 시장에 혜성처럼 등장했습니다. 전 세계 산업계가 인간 같은 반응을 생성하는 능력에 주목했으니, 혁명이라 부를 만 합니다.

이 시점에서 ChatGPT는 과연 어떻게 ‘완벽하게’ 작동하는 건지, ChatGPT의 ‘교육 과정’은 어떻게 되는 건지 궁금한 분들이 계실 겁니다. 그런 분들을 위해 인도 출신 데이터 사이언티스트 Bala Manikandan이 최근 Medium 지에 기고한 글을 가지고 왔습니다. ChatGPT의 교육 방식인 ‘Supervised manner(감독 하 훈련 방식)’, ‘알고리즘 편향’을 방지하는 방법, 기존 메트릭(metrics)에 의존하지 않고 작동하는 방법 등, 지금부터 이 ‘혁신적인’ AI 모델이 어떻게 작동하는지, 무엇이 핵심 요소인지 알아보겠습니다.

기존의 대형 AI 모델에는 ‘알고리즘 편향’ 문제, 즉 시스템 오류 혹은 증명되지 않은 결과가 나오는 문제가 있습니다. 대형 AI 모델을 훈련시킬 땐 일반적으로 엄청난 양의 데이터가 이용되는데, 이 현실 세계의 데이터 자체가 종종 ‘편향’되기 때문입니다. CEO와 같은 특정 ‘고위’ 직함을 남성과, 요리와 같은 특정 가사 작업을 여성과 연관짓는 식인데, 이런 종류의 편견은 해로운 고정관념에 힘을 실어줄 뿐 아니라 고용이나 대출과 같은 분야에서 불공정한 결과를 만들어낼 수 있습니다.

이야기를 창의적으로 전달하거나, 유익하고 정확한 사실을 전달하거나, 실행 가능한 코드를 생성하거나…. 이런 일을 하는 애플리케이션은 모두 언어 모델을 이용합니다. 여기서 가장 중요한 건 애플리케이션마다 다른, 각자가 필요로 하는 특성을 ‘모두’ 효과적으로 반영하는 ‘손실 함수’를 찾아내는 일입니다. 하지만 대부분의 언어 모델은 간단한 형태의 “Next-token” 예측 함수, 즉 교차 엔트로피 같은 함수를 사용합니다. 수학적 지식에 한계가 있기 때문입니다.

단점을 보완하기 위해 생성된 출력에 사람의 선호도를 더 잘 반영할 수 있는 BLEU 혹은 ROUGE 등의 메트릭이 도입되기도 했습니다. 생성된 텍스트를 레퍼런스와 비교하는 과정을 거치는 건데, 안 하는 것보단 낫지만 레퍼런스 자체가 기본 규칙만을 반영하고 있기 때문에 효과는 여전히 제한적입니다.

정리하자면 언어 모델을 이용하는 다양한 애플리케이션은 서로 다른 특성을 필요로 하지만, 손실 함수나 메트릭을 이용하는 기존의 방식에는 한계가 존재합니다. 그런데, 만약 이 ‘훈련 과정’에 인간이 관여한다면? 성능 측정이나 모델 최적화를 위한 손실에 인간의 피드백이 들어간다면? 손실 함수나 메트릭 없어도 더 나은 결과물을 얻을 수 있을지 모릅니다. 바로 여기에서 인간 피드백형 강화 학습, 즉 RLHF(Reinforcement Learning with Human Feedback)가 시작됐습니다.

OpenAI는 ‘Deep reinforcement learning from human preferences’에서 RLHF를 처음으로 선보였는데, 처음에는 RL을 이용해 에이전트가 가상 환경에서 백플립을 수행할 수 있도록 가르치는 데 집중했습니다. 이후 OpenAI는 ‘Fine-Tuning Language Models’, ‘Learning to Summarize’, ‘Recursively Summarizing Books’, ‘WebGPT’, ‘Training language models to follow instructions’ 등 수많은 프로젝트에 이 방법을 활용했습니다(이 분야에서 ChatGPT는 병아리 같은 존재입니다.). OpenAI는 지금까지 교육 전략에 인간이 포함된 최적화된 생태계를 구축해 왔습니다. 결국 이들의 노력이 결실을 맺은 겁니다.

아래 나오는 그림은 일반적인 RLHF 시스템을 표현한 순서도입니다. 다른 시스템처럼 주어진 ‘환경(environment)’을 ‘관찰(observation)’하고 적당한 ‘대응(action)’을 하는 ‘에이전트(RL algorithm)’가 있다는 걸 확인할 수 있습니다. 하지만 여기에서 ‘환경’이 어떤 역할을 하느냐에 차이가 있습니다.

일반적인 시스템에서 환경은 지정된 목표를 달성하기 위해 올바른 작업을 수행한 에이전트를 상대로 보상을 제공합니다. 하지만 RLHF에서는 환경이 아닌 ‘인간의 피드백(human feedback)’에 기반해 보상이 산정됩니다.

사진=Deep reinforcement learning from human preferences paper

아래 영상은 RLHF를 최초로 다룬 논문을 설명하는데, AI 에이전트가 어떤 과정을 통해 백플립을 수행하는 방법을 배우는지 확인할 수 있습니다. AI의 행동을 본 인간은 두 가지 옵션 중 목표 달성과 더 가까운 것을 선택해야 합니다. 인간의 피드백을 통해 AI는 점차 자신의 ‘행동’을 개선하고 결국에는 백플립에 성공합니다.

[embedyt] https://www.youtube.com/watch?v=oC7Cw3fu3gU[/embedyt]

Manikandan은 본격적으로 ChatGPT를 알아보기 전 다른 OpenAI 논문을 볼 필요가 있다고 말했습니다. ‘Learning to Summarize from Human Feedback’이라는 논문인데, 이걸 보면 자연어 처리(NLP) 도메인에서 RLHF 알고리즘이 어떻게 돌아가는지 좀더 쉽게 이해할 수 있다고 합니다.

이 논문은 요약 작업을 할 때 인간의 피드백을 이용하는 언어 모델을 제안했습니다. 입력 텍스트가 편향된 경우에도 알고리즘 편향 없는 고품질의 요약문을 만들어낸다는데, 논문에서 제안된 방법론의 순서도는 아래와 같습니다.

사진=Learning to Summarize from Human Feedback paper

간단히 설명해 보겠습니다. 에이전트에 긴 텍스트가 표시되면, 다양한 버전의 텍스트 요약문이 생성됩니다. 인간이 이 요약문에 순위를 매기면, 보상 모델은 생성된 텍스트와 인간 피드백을 가지고 스스로를 최적화해 ‘인간 보상’을 모방합니다. 이 과정이 끝나면 에이전트에는 또다른 긴 텍스트가 표시되고, 새로운 훈련 주기가 시작되면서 또 다른 요약문이 생성됩니다. 이제는 훈련된 보상 모델이 인간과 유사한 방식으로 요약문에 순위를 매깁니다. 이 프로세스는 목표가 달성될 때까지 주기를 반복합니다. 아래 그림은 하나의 예시인데, 확인해 보시면 이해에 좀 도움이 될 겁니다.

사진=Learning to Summarize from Human Feedback paper

ChatGPT에서의 RLHF:

이제 본격적으로 ChatGPT의 교육 프로세스를 자세히 살펴보겠습니다. ChatGPT의 교육 프로세스는 대형 언어 모델(LLM)과 강화 학습(RL)에 크게 의존합니다. ‘Learning to Summarize’ 논문과 거의 비슷한데, 전체 교육 과정은 아래 그림처럼 세 단계로 구분됩니다.

사진=ChatGPT 홈페이지

1단계: 사전 교육 작업:

사진=Medium

요즘 대부분의 NLP 작업에는 ‘트랜스포머(Transformers)’가 활용됩니다. OpenAI도 마찬가지인데 ChatGPT는 GPT 아키텍처, 그 중에서도 GPT 3.5 시리즈에 기반해 만들어졌습니다.

초기 작업 데이터는 ‘인간 어노테이터(annotators)’, 즉 사용자와 AI 어시스턴트 역할을 동시에 수행하는 ‘AI 트레이너’가 만들어냅니다. 예를 들면, AI 트레이너는 제시된 초기의 임의 프롬프트를 보고 AI 어시스턴트 입장에서 답변을 한 뒤 사용자가 되어 후속 질문을 합니다. 트레이너 여러 명이 이를 여러 번 반복하면 데이터가 만들어지는데, 이 데이터는 병합된 뒤 기존의 ‘감독(Supervised) 학습’ 방식으로 GPT-3.5를 미세 조정하는 데 쓰입니다. 그 결과, 모든 프롬프트에 응답할 수 있는 기능을 갖춘, 초기 언어 모델이 개발됐습니다.

2단계: 보상 모델 준비

이 단계는 교육 과정에서 가장 핵심이 되는, 사람의 피드백을 추가하는 단계입니다. 목표는 일련의 텍스트를 인간의 선호도가 반영된 ‘스칼라 보상’으로 변환하는 것입니다. 이 ‘보상 모델’은 요약 모델처럼 비교 데이터로 만들어집니다.

1단계에서 개발된 초기 언어 모델은 무작위로 선택된 프롬프트를 보고 새로운 텍스트(다중 출력)를 만들어냅니다. 인간 어노테이터는 품질을 기준으로 모델의 출력물에 순위를 매기고, 훨씬 더 나은 ‘정규화된’ 데이터 셋을 만들어냅니다. 여기서 인간 어노테이터가 사용하는 순위 전략은 특별한 게 아닌데, 훈련을 위해 스칼라 보상 신호를 할당하는 Elo 시스템 같은 일반적인 전략이 이용됩니다. 이렇게 ‘순위 데이터 셋’으로 훈련된 언어 모델이 바로 보상 모델입니다.

지금까지의 작업을 한번 정리하고 다음 단계로 넘어가겠습니다. 1단계에서는 텍스트를 생성하는 초기 언어 모델이 만들어졌고, 2단계에서는 결과물이 인간에게 ‘얼마나 잘 인식되는지’에 따라 주어진 텍스트에 점수를 매기는 기본 설정 모델이 나왔습니다.

사진=HuggingFace 블로그

3단계: RL 기반 미세 조정 LLM

RL에 기반한 방식으로 언어 모델을 미세 조정하는 것은 오랫동안 ‘꿈’과 같은 일이었습니다. PPO(Proximal Policy Optimization) 알고리즘이 등장하기 전까지는 말입니다. PPO를 사용하면 언어 모델의 일부 또는 모든 매개변수를 미세 조정하는 작업이 가능해집니다. 언어 모델은 프롬프트가 입력되면 일련의 텍스트를 출력하는 에이전트 역할을 합니다.

용어를 먼저 확인하겠습니다. 행동 공간은 모델의 라이브러리에 있는 모든 토큰을, 관찰 공간은 ‘가능한’ 모든 입력 토큰 시퀀스를 뜻합니다. 보상 함수는 선호도 모델과 에이전트의 행동에 대한 ‘제약 조건’의 조합입니다.

사진=HuggingFace 블로그

데이터 셋으로부터 프롬프트가 주어지면 두 개의 텍스트가 생성됩니다. 하나는 초기 LM, 다른 하나는 미세 조정 에이전트가 ‘현재 반복’을 한 결과물입니다. 현재 반복에서 생성된 텍스트는 인간 선호도와 유사한 순위를 기반으로 스칼라 보상을 생성하는, ‘2단계’에서 얻은 보상 모델로 전달됩니다. 이 현재 반복 텍스트는 또 초기 LM이 만든 텍스트와 비교되는데, 이 과정에서 그 차이점에 대한 페널티가 계산됩니다. 에이전트가 보상 모델을 속이는 것을 방지하기 위함입니다.

이 비교 단계에서는 Kullback Leibler(KL) 발산(Divergence)이 가장 많이 이용됩니다. KL 발산 항(term)은 언어 모델의 업데이트된 정책을 기존의 ‘사전 훈련된 상태’와 비슷하게 유지하는데, 이는 각 훈련 배치가 진행되는 동안 급격한 변화가 생길 확률을 낮춥니다. 그 덕분에 모델은 일관된 텍스트 출력을 계속 생성할 수 있습니다. 결과적으로 보상 함수는 페널티와 스칼라 보상이 합쳐지면서 업데이트됩니다.

보상 함수 업데이트에는 현재의 데이터 배치에서 보상 메트릭을 극대화한다는 규칙이 적용됩니다. PPO 알고리즘은 신뢰 영역을 최적화하는데, 업데이트 단계로 인해 학습 프로세스가 불안정해지지 않게 그래디언트(gradient)의 제약 조건을 사용합니다. 사용자는 업데이트되는 RL 정책을 에이전트의 이전 버전과 비교해 가며 이 ‘출력물 순위 지정’ 과정을 반복할 수 있습니다.

Manikandan은 훈련 과정에 인간을 개입시키면 모델이 인간과 같은 행동을 학습할 수 있다는 결론을 내렸습니다. Manikandan은 OpenAI가 인간 피드백형 강화 학습을 실현하기 위한 환경을 구축했다고 평가하며, OpenAI는 앞으로도 이를 개선하는 작업을 계속할 것이라고 말했습니다. Manikandan은 ChatGPT가 큰 성공을 거둔 건 맞지만 인간의 창의성과 학습에 영향을 미치는 ‘AI의 역할’에 대한 의문을 불러일으켰다고 덧붙였습니다.

한편 많은 이들이 “컴퓨터 비전의 딥페이크처럼 AI가 조작한 텍스트와 사람의 텍스트를 구별할 수 있는 방법이 있나요?”라는 질문을 던졌는데, OpenAI는 “AI가 생성한 텍스트에 ‘워터마크’를 붙이겠다”고 대답했습니다. Manikandan은 그 연구에 대한 자세한 내용이 공개되면 추가적인 글을 쓸 계획이라고 합니다.


Comprehensive guide on understanding the inner workings of OpenAI’s ChatGPT, including a deep dive into the Reinforcement Learning with Human Feedback (RLHF) algorithm that powers it.

ChatGPT has revolutionized the field of conversational AI. Its ability to generate human-like responses has sparked interest from industries around the world, and it’s no wonder why. But how does ChatGPT work so flawlessly? have you ever considered the training process behind ChatGPT? Did you know that it was trained in a supervised manner? How does it avoid “Algorithmic Bias”? How does it perform without relying on conventional metrics? Let us explore the inner workings of this revolutionary AI model and discover what truly makes it tick!

First, lets initiate the talk about the problem we once faced earlier in large AI models, “Algorithmic Bias”. It refers to a systematic errors or unjustified outcomes in large AI models. As large AI models are used to be trained with tremendous amount of data and data in our real world are sometimes biased. For example, the model may be more likely to associate certain career titles, like CEO, with men, or certain domestic tasks, like cooking, with women. This type of bias can perpetuate harmful stereotypes and result in unfair outcomes in areas such as employment and lending.

The challenge in using a language model for diverse applications, such as creative storytelling, delivering informative and accurate facts, or generating executable code, lies in finding a loss function that can effectively capture all the required attributes. Given the limitations of our mathematical knowledge, most language models resort to using a simple next token prediction loss, like cross-entropy. However, to compensate for its shortcomings, metrics like BLEU or ROUGE are introduced to better reflect human preferences in the generated outputs. While these metrics provide some improvement, they still have limitations as they only compare the generated text to references using basic rules. So, if not through loss functions or metrics, how can we effectively train a language model to perform well in these varied applications?

If we can’t mathematically derive a loss function to handle the diverse range of attributes required for multiple applications like creative writing, factual information delivery, and code generation? why not involve humans in the training loop. By incorporating human feedback as a performance measure or even a loss to optimize the model, we can achieve better results. This is the idea behind Reinforcement Learning using Human Feedback (RLHF).

RLHF was first introduced by OpenAI in “Deep reinforcement learning from human preferences”. It initially focused on using RL to teach an agent to perform a backflip in a virtual environment. Since then, OpenAI has consistently employed human feedback in various research projects, including “Fine-Tuning Language Models”, “Learning to Summarize”, “Recursively Summarizing Books”, “WebGPT”, “Training language models to follow instructions” (ChatGPT is the new kid). OpenAI has built an optimized ecosystem involving humans for its training strategy. And, it has indeed proved to be fruitful.

A typical RLHF system looks like in the below flowchart, involves an “Agent”(RL algorithm) observing the environment and taking actions. Typically, the environment rewards the Agent for performing the correct actions towards achieving its designated goal. However, in RLHF, the rewards are calculated based on human feedback instead of the environment.

Below is the video presented in the first RLHF paper shows an AI agent learning to perform a backflip. Humans are given two options for the AI’s behavior, and they select the one closest to achieving the goal. Through human feedback, the AI gradually improves its behavior and eventually succeeds in completing the backflip.

Before moving onto ChatGPT, let’s examine another OpenAI paper, “Learning to Summarize from Human Feedback” to better understand the working of RLHF algorithm on Natural Language Processsing (NLP) domain. This paper proposed a Language model guided by human feedback on the task of summarization. This improves the quality of the generated summary without algorithmic bias even when the input texts are biased. Below is the flowchart of proposed methodology,

In short, A long form text is presented to the agent, which generates multiple summaries of the text. Humans rank these summaries and the reward model is optimized based on the generated text and the human feedback to mimic human reward. After the reward model is trained, a new training cycle starts with a different long form text being presented to the agent, which generates another summary. The trained reward model then ranks the summaries similarly to humans. This process is repeated in multiple cycles until the goal is achieved. Below is an example explaining the same,

RLHF in ChatGPT:

Now, Let’s delve deeper into the training process that involves a strong dependence on Large Language Models (LLMs) and Reinforcement Learning (RL). ChatGPT research, kind of replicate almost the similar methodology to “Learning to Summarize” paper. The whole training process can be broken down into three steps and shown in the figure below

Step I: Pretraining Task:

As in almost all the NLP task conquered by Transformers, OpenAI built this ChatGPT on top of GPT architecture, specifically the new GPT 3.5 series. The data for this initial task is generated by human annotators (called as AI trainers) playing both the sides — the user and the AI assistant. For example, a initial random prompt was presented to multiple AI trainers, who answered as the AI assistant, then asked follow-up questions as the user. This process was repeated several times by different trainers, and the data was combined together to fine-tune GPT-3.5 through traditional supervised learning. Now, the LLM with capability to answer any prompt was developed.

Step II: Preparing reward model

It’s time to add the key ingredient: human feedback in the training process. The aim is to turn a sequence of text into a scalar reward that mirrors human preferences. Just like summarization model, the reward model is constructed using comparison data. The initial language model is fed with a randomly chosen prompt to produce new text (multiple outputs). Human annotators will then rank these outputs based on quality and create a much better regularized dataset. They use a common ranking strategy such as an Elo system to assign a scalar reward signal for training. The resulting language model trained on this ranked dataset is named as “reward model”. At this point of time, we have both an initial language model that generates text and a preference model that scores any given text based on how well it’s perceived by humans.

Step III: RL based Fine-tuning LLM

Fine-tuning language models with RL-based policies has long been a dream until the arrival of the Proximal Policy Optimization (PPO) algorithm. PPO makes it possible to fine-tune some or all of the parameters of a language model. The language model acts as an agent that takes a prompt as input and outputs a sequence of text. The action space consists of all the tokens in the model’s vocabulary, while the observation space encompasses all possible input token sequences. The reward function is a combination of the preference model and constraints on the agent’s behavior.

Given a prompt from the dataset, two texts are generated. one from the initial LM and one from the current iteration of the fine-tuned agent. The generated text from the current iteration is passed onto the reward model trained in “Step-2” which generates a scalar reward based on the ranking similar to human preferences. Also, the same text is compared to the text from initial LM to compute a penalty on the differences between them. This protects the agent from fooling the reward model. The most preferred penalty for comparison is Kullback Leibler (KL) divergence, the KL divergence term helps to keep the updated policy of the language model close to its original pretrained state, avoiding drastic changes during each training batch. This helps to ensure that the model continues to produce coherent text outputs. So, the reward function is a combination of both penalty and scalar reward.

This reward function update rule maximizes the reward metrics in the current batch of data. PPO is trust region optimization algorithm that uses constraints on the gradient to ensure the update step does not destabilize the learning process. As the RL policy updates, users can continue ranking these outputs versus the agent’s earlier versions.

In conclusion, by involving people in the training process, models can learn human-like behavior. OpenAI has created an environment for this and will continue to improve it in the future. ChatGPT is a big success, but it raises questions about the role of AI in affecting human creativity and learning. Most people asked “is there a way to differentiate AI fabricated text and human text like deepfakes in computer vision?” and OpenAI replied with an answer of “Water marking the AI generated text”. Kindly follow me to get notified when that detailed coverage of that research is released.

Similar Posts