728x90
반응형

 

우선 RLHF(Reinforcement Learning form Human Feedback)인간 피드백 기반 강화학습이라는 뜻이다.

이는 ChatGPT에 적용되는 내용이며, 총 3가지 단계로 나뉜다. 

즉, 사람과 같은 대답을 만들어 내기 위해 Human Preference를 고려하여 학습을 한 것이다.


 

 RLHF(Reinforcement Learning form Human Feedback)

아래 내용은 openAI에서 제안한 Fine-Tuning Language Models from Human Preferences 논문에서 가져온 내용에 기반한다. 

RLHF 인간 피드백 기반 강화학습 개념

 

1. Supervised Fine-Tuning (SFT)

 

인간이 의도하는 것을 학습시키기 위해 인간 Labeler 또는 Trainer가 선별한 적은 양의 샘플 데이터세트로 Pre-trained LM을 파인 튜닝하는 개념이다. ChatGPT 같은 경우 사람이 직접 데이터세트를 준비하고, 사용자들이 OpenAI의 API로 문의한 프롬프트에 대해 샘플링 하였다고 한다. 이렇게 데이터를 생성하는 프로세스는 비용이 많이들고 상당히 느리고, 작지만 고품질로 선별된 데이터세트 (약 12~15K 데이터)를 생성할 수 있다고 한다.

 

그 다음 파인튜닝을 진행하게 되는데, 이 단계에서 데이터세트가 제한되어있다보니 여전히 오류가 있는 텍스트를 출력할 가능성이 있다고 한다. 그리고 확장성을 얻을수 없기 때문에 그 다음 과정에서 Reward Model을 학습시키게 된다. 

 

 

 

2. Reward Model(Mimic Human Preferences)

 

인간 Labeler는 1번 과정에서 파인튜닝된 SFT 모델이 생성한 여러 답변 후보들 중, 사람이 무엇이 더 좋은 답변인지 랭킹을 매겨 점수화 한 데이터세트를 수집한다. 이 데이터세트를 이용하여 새로운 Reward Model을 학습하게 된다.

 

SFT 모델의 목표는 첫번째 단계에서 생성된 SFT 모델의 출력에 점수를 매긴 데이터세트를 활용하여 인간의 선호도를 모방하는 모델을 만드는 것이다. 이 Reward Model을 생성하는 방식은 다음과 같다. 

 

- SFT 모델은 선택된 프롬프트에 대해 여러가지 출력을 생성하고, 인간은 SFT가 생성한 출력을 best 부터 worst 까지 순서를 매긴다. 

- 그 다음, 이 데이터세트의 크기는 SFT 모델을 파인튜닝 하는데 선별된 데이터세트보다 약 10배 정도 크다. 이 데이터로 학습한다. 

 

 

 

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

 

SFT 모델에 여러 사용자들의 입력을 주고, Reward Model과 함께 상호 작용하면서 강화학습을 시킨다. 이 단계에서의 목표는 이전 단계에서 학습한 Reward Model이 제공하는 보상을 사용하여 SFT 모델을 파인튜닝 하는 것이다. 그 다음 과정 부터는 더이상 사람의 개입은 필요가 없다.

 

이러한 학습 과정 초기에 SFT 모델의 copy 를 만든 다음에 trainable weight 를 freeze 시킨다. Frozen Model은 trainable model의 weight가 완전히 바뀌는 것을 방지하고, Reward Model에 말도 안되는 텍스트로 나오는 결과를 방지할 수 있다. 그리고 이는 frozen model과 non-frozen model의 텍스트 출력 확률 간 KL divergence를 계산하는 이유다. 이 KL divergence는 Reward Model이 생성한 reward와 더해져 final reward가 만들어진다.

 

그 다음 reward loss를 미분하기 위해 강화학습을 적용할 수 있다. 이전에 reward를 미분할 수 없었던 이유는 입력을 텍스트로 받는 reward model로 계산되었기 때문이다. 이 텍스트는 SFT 모델의 출력 로그 확률을 디코딩하여 얻는데, 이 디코딩 과정을 미분 할 수 없다. loss를 미분하기 위해 PPO를 동작시킨다. 

 

PPO(Proximal Policy Optimization) 알고리즘

이 알고리즘은 다음과 같은 과정을 통해 loss를 계산하여 trainable SFT 모델의 weight를 업데이트 한다. 

1. 초기화를 위해 initial output text probabilities를 new output text probabilities와 동일하게 만듦 
2. New probs와 initial probs간 ratio를 계산함 
3. 아래 공식에 따라 loss를 계산

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

4. loss를 backpropagating 하여 SFT Model의 weight를 업데이트함
5. 새롭게 업데이트된 SFT 모델로 new probs를 계산 
6. 2번부터 6번을 N번 반복함.

 

SFT는 한번만 수행되는 반면, 

Reward Model을 학습시키는 단계와 PPO 알고리즘을 이용한 SFT 모델 강화학습 단계는 지속적으로 반복될 수 있다고 한다. 

 

RLHF의 한계는 다음과 같다. 

1. 데이터세트 확보 비용 (인간이 처리하기 때문에 비용이 많이 든다.)

2. 주관적인 요인에 따른 학습 데이터세트의 품질 편차 (라벨러의 편향 반영)

 


 

최근에는 업그레이드 된 PPO-max를 통한 RLHF 구현도 나왔다고 한다. 

Secrets of RLHF in Large Language Models Part I: PPO

https://huggingface.co/papers/2307.04964?utm_source=pytorchkr

 

Paper page - Secrets of RLHF in Large Language Models Part I: PPO

Secrets of RLHF in Large Language Models Part I: PPO Published on Jul 11 Authors: Rui Zheng , Songyang Gao , Wei Shen , Yan Liu , Senjie Jin , Qin Liu , Limao Xiong , Lu Chen , Zhiheng Xi , Yuhao Zhou , Nuo Xu , Wenbin Lai , Minghao Zhu , Rongxiang Weng ,

huggingface.co

 


그렇다면 diffusion 분야에서 RLHF 연구 분야가 어떻게 적용될까?

 

여러 연구가 비전 생성 모델에서도 RLHF를 실행하려고 시도했다고 한다. 이러한 alignment process는 diffusion model의 신속한 학습 및 파인 튜닝을 통해 달성할 수 있다. LLM과 달리 이미지 생성 프로세스는 일반적으로 순차적이지는 않다고 한다. PPO 단계는 비전 task에 잘 적응하지 못하며 비전 생성 모델을 위해 수많은 적응이 필요하다고 한다. 



그럼에도 불구하고 diffusion 분야에 RLHF 방법론을 적용하는 분야들은 계속 연구가 진행되는 것 같다. 

 

Aligning Text-to-Image Models using Human Feedback

paper : https://arxiv.org/pdf/2302.12192.pdf

 

 

위 방법론을 보시면 아시겠지만, diffusion 분야에 Human Feedback 개념을 적용한 방법이다. 먼저 human data를 수집한 뒤, human feed back을 반영하여 데이터를 생성하여 reward function을 구성하고, 그 다음 text-to-image model을 업데이트 하는 방법으로 진행된다. 그 다음 reward-weighted likelihood maximization 을 적용하게 된다. 

 

https://www.reddit.com/r/StableDiffusion/comments/11aq8d5/applying_rlhf_to_stable_diffusion_for_better_and/?rdt=36465

 

이 논문에서 언급하고 있는 Limitations and future directions은 다음과 같았다. 

 

1. More nuanced human feedback(human feedback이 굉장히 미묘)

앞으로 이미지를 평가할 때 다양한 failure mode(oversturated colors, unrealistic animal anatomy, physics violations, etc.)를 찾도록 지시한다면 성능이 향상될 것이다. 

 

2. Diverse and large human dataset

본 논문에서는 제한된 text 카테고리와 simple한 human feedback을 고려하였기 때문에, 데이터의 다양성이 제한되었다. 

향후 카테고리를 제한하지 않는다면 좋을 것이다. 

 

3. Different objectives and algorithms

text-to-image 모델을 업데이트 하기 위해 rewared-weighted likelihood maximization을 적용한 방법을 사용한다고 한다.

그러나 language domain에서의 선행 연구와 유사하게 RL 알고리즘을 사용하는 것도 흥미로운 방향이 될 수 있다고 한다. 

 

이 논문이 나온 시점이 23년 2월이라 그 뒤에 연구는 더 팔로우업 해봐야 알겠지만, 

생성형 AI에 있어서 RLHF의 방법론은 모델을 인간 처럼 행동하게 만드는 좋은 방향 같다. 


 

참고자료 1 : https://moon-walker.medium.com/chatgpt%EC%97%90-%EC%A0%81%EC%9A%A9%EB%90%9C-rlhf-%EC%9D%B8%EA%B0%84-%ED%94%BC%EB%93%9C%EB%B0%B1-%EA%B8%B0%EB%B0%98-%EA%B0%95%ED%99%94%ED%95%99%EC%8A%B5-%EC%9D%98-%EC%9B%90%EB%A6%AC-eb456c1b0a4a

 

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

ChatGPT는 주제에 상관없는 대화(개방형 도메인 대화)가 가능한 모델를 위해 특별히 설계된 GPT-3.5(InstructGPT)를 기반한 모델이다. OpenAI는 ChatGPT를 생성하기 위해 2022년 초반에 학습된 GPT-3.5를…

moon-walker.medium.com

 

참고자료 2 : https://velog.io/@ofohj/2.-GPT%EB%8A%94-%ED%93%A8-%EC%83%B7-%EB%9F%AC%EB%8B%9D

 

2. GPT는 퓨 샷 러닝. 퓨 샷 러닝!!

ChatGPT는 in-context learning과 few shot learning으로 만들어졌다!오늘 수업의 핵심은 위와 같다.지난 강의에서도 나온 개념이지만 이번 강의에서는 좀 더 구체적으로 알려주셨다!지난 시간chatgpt의 등장

velog.io

 

참고자료 3 : https://kimjy99.github.io/%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0/instructgpt/

 

[논문리뷰] Training language models to follow instructions with human feedback (InstructGPT)

InstructGPT 논문 리뷰

kimjy99.github.io

 

참고자료 4 : https://kyujinpy.tistory.com/79

 

[ChatGPT 리뷰] - GPT와 Reinforcement Learning Human Feedback

*ChatGPT에 대해서 설명하는 글입니다! 궁금하신 점은 댓글로 남겨주세요! InstructGPT: https://openai.com/research/instruction-following#guide Aligning language models to follow instructions We’ve trained language models that are mu

kyujinpy.tistory.com

 

참고자료 5 : https://kimjy99.github.io/%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0/raft/

 

[논문리뷰] RAFT: Reward rAnked FineTuning for Generative Foundation Model Alignment

RAFT 논문 리뷰

kimjy99.github.io

 

참고자료 6 : https://www.reddit.com/r/StableDiffusion/comments/11aq8d5/applying_rlhf_to_stable_diffusion_for_better_and/?rdt=36465

 

From the StableDiffusion community on Reddit: Applying RLHF to Stable Diffusion for better and more aligned results.

Explore this post and more from the StableDiffusion community

www.reddit.com

 

728x90
반응형