RLHF
GPT-3는 다음에 올 토큰을 예측하는 모델이다.
GPT-3는 어떻게 ChatGPT가 되었는가?
supervised fine-tuning (SFT)
- 목적 : supervised fine-tuning을 통해 LLM을 사용자의 지시 사항에 맞춰 응답하도록 학습시키고 싶음
- 학습 데이터셋 : instruction dataset (지시사항과 그에 맞는 응답이 있는 데이터셋)
- “supervised(지도)” fine-tuning은 학습 데이터에 정답이 포함되어 있다.
출처 : https://aws.amazon.com/ko/what-is/reinforcement-learning-from-human-feedback/
- 지시 데이터셋 준비
- 사전학습된 LLM 모델 선택
- 데이터를 모델이 이해할 수 있는 형식으로 변환
- 학습률, 배치 크기, 에폭, 손실 함수 등 설정
- 모델에 데이터 입력하고, 생성된 출력을 기반으로 파라미터 업데이트
1
2
3
4
5
6
7
8
9
10
Below is an instruction that describes a task, paired with an input that provides further context.
Write a response that appropriately completes the request.
### Instruction:
{instruction}
### Input:
{input}
### Response:
- Alpaca 모델 파인튜닝할 때 사용한 프롬프트 (모델이 이해할 수 있는 형식)
- 프롬프트가 모델이 지시사항을 따르고 맥락을 이해하여 적절한 응답을 생성하도록 설계되었음
- 사전 학습과 동일하게 causal language modeling을 통해 다음 단어 예측
좋은 지시 데이터셋이 갖춰야 할 조건
- 지시 데이터셋에 다양한 형태의 지시사항이 존재할 수록 모델의 답변 품질 증가
- 응답 데이터의 품질이 높을 수록 모델의 답변 품질 증가
- 지시 데이터셋의 품질을 높이면 더 적은 데이터셋으로 높은 성능 보일 수 있음
- 교육적 가치가 놓은 데이터셋을 선별하여 사용하면 성능 향상
Reinforcement Learning from Human Feedback (RLHF)
강화 학습을 통한 성능 향상
reward model 학습
출처 : https://aws.amazon.com/ko/what-is/reinforcement-learning-from-human-feedback/
- 선호 데이터셋 (preference dataset) 구축
- supervised fine-tuning을 통하여 모델 학습
- 모델이 응답을 여러 개 생성
- 응답 간 상대적인 chosen data와 rejected data 선별
- 선호 데이터셋으로부터 reward model 생성
- 모델이 더 높은 점수를 받는 방향으로 응답을 수정하도록 함
보상을 통한 학습
출처 : https://towardsdatascience.com/reinforcement-learning-101-e24b50e1d292
- agent가 environment에서 action을 함
- action에 따라 환경의 state가 바뀌고, 행동에 대한 보상이 생김
- 에이전트는 가능하면 더 많은 보상을 받을 수 있도록 행동을 수정하면서 학습
- 에이전트가 연속적으로 수행하는 행동의 모음 : episode
LLM에서는
- action : 토큰 생성
- episode : 전체 텍스트 모두 생성
- 텍스트를 모두 생성하면 리워드 모델이 텍스트에 점수를 매김 (행동이 아니라 에피소드 단위로 리워드 모델의 점수를 반영함)
Proximal Preference Optimization (PPO)
출처 : https://aws.amazon.com/ko/what-is/reinforcement-learning-from-human-feedback/
- 리워드 모델을 사용하다 보면 모델이 보상을 높게 받는 데에만 집중하는 reward hacking 이 일어날 수도 있다
- reward hacking 시 성능은 떨어지고 점수만 높게 받는 응답을 생성하게 된다.
PPO (근접 정책 최적화)
- 목적 :
- 모델의 성능을 향상시키면서도 급격한 policy 변화 방지
- rewards hacking을 방지하고 안정적인 학습 보장
- 작동 원리 :
- 현재 policy(파인튜닝 된 모델)와 새로운 polic(학습 중인 모델) 사이의 차이를 제한
- 파인튜닝 된 모델을 기준으로, 학습하는 모델이 너무 멀지 않은 범위에서 리워드 모델의 높은 점수를 찾도록 함
RLHF의 한계
- 성능이 높고 robust한 리워드 모델 만들기가 어렵다
- 참고 모델, 학습 모델, 리워드 모델을 사용해야 해서 리소스가 많이 필요하다 (GPU)
강화 학습 없이 성능 향상
rejection sampling
기본 원리 : 여러 개의 응답을 생성하고, 그 중에서 가장 좋은 응답을 선택
- 파인 튜닝 끝난 모델이 응답 여러 개 생성
- 리워드 모델이 각 응답에 점수를 부여
- 가장 높은 점수를 받은 응답 선택
- 선택된 응답을 모아서 모델 다시 파인튜닝
출처 : https://arxiv.org/pdf/2307.09288
LLaMA-2 학습 과정
- 사전 학습
- rejection sampling을 사용해서 self-supervised learning (비지도 학습. 다음 단어를 예측하는 언어 모델링 사용)
- 파인튜닝 $\rightarrow$ LLaMA-2-Chat 모델 생성
- rejection sampling은 PPO 이전 단계에서 사용
- 모델은 사람의 선호를 학습한 상태에서 PPO 학습을 시작할 수 있게 됨
pros)
- 모델의 기본 성능 향상
- 강화 학습 전에 활용하여 후속 강화 학습을 더 안정적으로 만들 수 있음 cons)
- 요구되는 리소스 양이 많을 수도 있음
- 리워드 모델의 품질에 크게 의존
Direct Preference Optimization (DPO)
기본 원리 : 선호 데이터셋으로 리워드 모델을 만드는 것이 아니라, 선호 데이터셋을 직접 학습시킴
출처 : https://arxiv.org/pdf/2305.18290
작동 원리 :
- 선호도 데이터셋에는 같은 프롬프트에 대한 두 개의 응답과, 두 응답에 대한 상대적인 선호도가 있음
- 모델은 선호되는 응답의 확률을 높이고, 선호되지 않는 응답의 확률을 낮추는 방향으로 학습
- 학습이 잘 되고 있는지 확인하기 위해 학습 과정에서 참고 모델과 비교
- 참고 모델은 보통 파인튜닝 마친 모델 사용
- 학습 중인 모델이 너무 극단적으로 변하는 것을 방지하고, 학습의 안정성 유지
참고 :
- 파인튜닝 된 모델을 상대로 DPO 학습 시켜야 함. 아니면 지시사항과 응답 형식 이해 못 함
- 선호도 데이터셋의 품질이 매우 중요함
pros)
- 리워드 모델링 단계 생략 $\rightarrow$ 학습 과정 단순화
- 계산 효율성 증가
- 안정적인 학습이 가능
출처
https://aws.amazon.com/ko/what-is/reinforcement-learning-from-human-feedback/
https://towardsdatascience.com/reinforcement-learning-101-e24b50e1d292
https://arxiv.org/pdf/2307.09288
https://arxiv.org/pdf/2305.18290
This post is licensed under CC BY 4.0 by the author.