[RLHF] DeepSeek의 GRPO(Group Relative Policy Optimization)
GRPO(Group Relative Policy Optimization)
link : https://arxiv.org/pdf/2402.03300
DeepSeekMath는 Gemini나 GPT-4 레벨의 성능과 다른 open LLM보다 뛰어난 MATH bechmark 성능은 달성하면서 외부 toolkits나 voting techiniques를 사용하지 않았다고 한다.
여기서 사용된 RL tuning알고리즘은 GRPO(Group Relative Policy Optimization)이며 해당 논문에서 처음 제안하는 알고리즘이다. GRPO는 PPO(Proximal Policy Optimization)의 variant 중 하나로 PPO의 메모리 사용량을 최적화하면서 mathmatical reasoning 능력을 향상시킨 알고리즘이다.
GPRO는 PPO에서 사용되는 Value function을 사용하지 않았다. 대신 group scores를 통해 baseline을 추정하여 actor model(policy)를 학습한다. 이렇게 함으로써 DPO와 같이 보상 모델을 사용하지 않는 알고리즘처럼 학습 리소스를 줄였다.
그리고 Rejection Sampling Fine-tuning(RFT), DPO, PPO, GRPO 계열의 서로 다른 RL tuning 알고리즘을 통합하는 패러다임을 제시하고, 이러한 방법들이 direct or simplified RL techniques로 개념화되는 것을 찾았다. 또한 매우 다양한 실험을 진행했는데 Online vs Offline training, outcome vs process supervison, single-turn vs iterative RL 등이다. 이렇게 다양한 실험을 통해 이 패러다임의 중요한 요소에 대해 이야기한다.
✲ Group Relative Policy Optimization
🔹 From PPO to GRPO
PPO(Proximal Policy Optimization)은 actor-critic RL 알고리즘으로 LLM 학습시 RL tuning 단계에서 많이 사용되는 알고리즘이다. LLM은 state-action space가 매우 크기 때문에 RL 학습시 보상에만 의존해 지나치게 업데이트가 커짐을 방지해야하기 때문이다.
policy 업데이트시 policy를 크게 업데이트하면 학습이 불안정해지는 문제를 해결하기 위해 clipping을 두어 업데이트가 너무 커지는 것을 방지한다. 이전 policy ($\pi_{\theta_{old}}$)와 현재 policy ($\pi_{\theta}$)의 확률비가 너무 크다면 policy가 크게 변화하는 것으로 간주하고 clipping을 통해 이 ratio가 일정 범위 ($[1-\epsilon , 1+\epsilon]$) 안에 있는 경우에만 업데이트하고 그렇지 않은 경우 기댓값을 그대로 유지한다.
$A_t$는 advantage로 현재 보상에서 learned value($V_{\psi}$) 를 뺀 값이다($A_t = Q(s_t, a_t) - V_{\psi}(s_t)$). $s_t$에서 기대되는 전체 보상의 평균과 $a_t$를 취한 후의 보상의 차이로 현재 상태에서 특정 action이 얼마나 좋은지에 대한 상대적 가치를 나타낸다.
그냥 보상만 사용하여 학습하는 것 보다 Advantage를 사용하면 업데이트 효율성과 학습 속도가 개선되기 때문에 사용한다. clipping된 surrogate objective를 사용해 이 Advantage가 클 수록 큰 업데이트를 하고 안정적인 학습을 보장할 수 있다. 이때 Value function($V_{\psi}$)는 policy와 함께 학습되는데 reward model의 over-optimization을 완화할 수 있다.
LLM학습에서 PPO가 적용될 때는 reward에서 per-token KL penalty 텀을 추가하는 방식으로 사용된다. reward($r_\phi$)에서 기존 모델($\pi_{ref}$)와 너무 차이가 난다면 reward를 낮추며 이 패널티는 coefficient $\beta$로 조절한다.
KL 텀을 minimize하기 위해서는 $\pi_{\theta}$와 $\pi_{ref}$가 가까워지면서 $\pi_{\theta}$의 엔트로피가 너무 낮아지지 않게 해야한다. 직접적으로 $\pi_{\theta}$의 entropy를 키우는 것은 아니지만 $\pi_{\theta}$의 엔트로피를 일정 수준으로 높게 유지하는 효과를 줄 수 있다. 이는 RL에서 entropy bonus처럼 작용하여 모델의 다양성을 부추긴다.
RL에서는 value function을 분산을 줄이기 위해 사용되는 baseline이지만, policy model의 사이즈만큼 크기 때문에 메모리와 cost를 많이 사용한다. LLM에서는 각 토큰마다 reward score를 받는 것이 아닌 최종 생성된 문장의 품질만 평가하기 때문에 마지막 토큰에만 보상을 부여한다. 때문에 문장에서 각 토큰의 기여도를 파악하기 어려워지고 Value function(Reward model)이 각 토큰에 대해 정확하게 학습되기 힘들어진다. 그리고 GRPO는 이 문제를 해결할 수 있다.
GRPO는 추가적인 value function approximation이 필요 없도록 하였으며 대신 한 질문에 대한 multiple sampled outputs의 평균 보상을 baseline으로 사용하였다. 그리고 KL을 reward에 추가하는 것이 아닌 objective에 직접적인 regularizer 텀으로 추가했다. Advantage를 계산할 때 reward에 KL을 추가하면 계산이 복잡해지기 때문이다.
🔹 Process supvervision
Advantage는 Group reward($\textbf{r} = \{ r_1, r_2, .. r_G \}$)의 avg, std로 normalize한 reward 즉, $A_i=\frac {r_i - \text{mean}(\textbf{r})} {\text{std}(\textbf{r})}$이 된다. 이는 RL에서 critic 모델을 학습하지 않고 사용하는 방식이다. Outcome suprevision RL은 그룹의 각 문장의 마지막의 reward만 제공하며 이는 복잡한 task에서 충분하지 않고, 효율적이지 않다.
따라서 GRPO에서는 Process supervision을 적용하게 된다. 각 reasoning step마다의 마지막 reward를 이용한다. $index(j)$가 j번째 step의 마지막 토큰 인덱스이고 $K_i$가 i번째 output의 전체 스텝 수라고 할 때, $\textbf{R}$은 $\textbf{R}= \{ \{ r_1^{index(1)}, ... r_1^{index(K_1)} \}, ..., \{ r_G^{index(1)}, ... r_1^{index(K_G)} \} \}$로 정의된다. 또한 $r_i^{index(j)} = \frac {r_i^{index(j)} - \text{mean} (\textbf{R}) } {\text{std}(\textbf{R})} $이다.
즉 Process supvervision은 모든 step의 normalized reward의 합으로 Advantage를 계산한다. 이를 가지고 (3)의 objective로 학습한다.
🔹 KL unbiased estimator
또한 KL 값 추정을 위해 unbiased estimator를 사용했다. 이는 sampling을 통해 KL을 구하는데에 대한 bias를 보정할 수 있는 (log)importance weight를 곱해주는 방법이다.
🔹 Iterative RL
old RM은 현재 policy model을 supervise하기에 충분하지 않으므로 GRPO에서는 itrative RL을 적용했다.
policy 모델로부터 샘플한 training set을 새로 생성하고 이를 reward model을 update하는데 사용한다. 그리고 이전 data의 10%를 포함하여 replay mechanism을 적용하여 reward model을 학습한다.
초기 Reward model은 Instruction-Tuned model의 응답 기준으로 학습되어 있다. 하지만 policy가 업데이트 되면서 모델이 점점 더 좋은 응답을 생성하게 되고 기존의 응답 분포가 바뀌게 된다. 이때 RM이 그대로라면 policy 모델과 Misalignment 문제가 발생할 수 있다. 과거 Model 기준으로 평가하기 때문에 새 Model의 더 나은 응답을 제대로 평가하지 못할 수도 있는 것이다. 따라서 더 나아진 응답으로 새로운 샘플을 수집해 RM을 다시 학습 시킨다.
학습된 policy 모델을 reference model로 설정하고 이 과정을 반복한다.
✲ Insights of RL
🔹 Towards to a Unified Paradigm
먼저 SFT, RFT, DPO, PPO, GRPO 등의 서로 다른 학습 methods의 gradient는 아래와 같이 쓸 수 있다.
여기서 3개의 Key components가 있는데, 1) Data Source $\mathbb{D}$ 2) Reward function $\pi_{rf}$ 3) Gradient Coefficient를 정하는 Algorithm $\mathbb{A}$ 이다.
1) Data Source
Online Sampling은 policy가 학습되는 동안 exploration의 결과를 학습에 사용하는 것이고 Online RFT와 GRPO는 이를 따른다.
그리고 Offline Sampling은 초기 SFT Model에서 샘플한 결과를 사용하는 것이고 RFT, DPO는 이를 따른다. 실험에서 초기에는 RFT와 Online RFT가 비슷했으나 점점 Online RFT의 성능이 향상되는 것을 확인할 수 있다. 따라서 Component 1의 Data source는 policy model로 부터 sample하는 소스가 더 큰 advantage를 가져다준다고 볼 수 있다.
2) Gradient Coefficient
Reward function은 "Rule"과 "Model"로 나누어진다. Rule은 답변의 정확성에 의거한 응답의 품질을 판단하며, Model은 Reward model을 학습하는 것을 의미한다.
Rule 기반은 잘못된 응답에 따른 차이를 두지 않지만 Model은 GC의 크기로 이에 대한 차이를 둘 수 있다.
🔹 Why RL Works?
선행 연구들에서는 RL 학습으로 인해 Instruction following 성능이 떨어지거나, 언어 혼합 현상 등의 문제가 있었다. 해당 연구에서는 Instruction tuning 데이터의 일부로 RL을 수행했고 이로 인해 Instruction tuning 모델 대비 현저한 성능향상이 있었다. 상위 K개의 샘플 중 하나라도 정답이면 성공으로 간주하는 Pass@K와 K개의 응답 중 과반수가 답이라면 성공으로 간주하는 Maj@K 지표를 근거로 이와 같은 주장을 뒷받침한다. 결론적으로 Pass@K의 변화는 없지만 Maj@K가 향상되었으며 아래와 같은 의의가 있다.
먼저 RL 모델은 근본적인 능력을 향상시키는 것은 아니다. 만약 그렇다면 Pass@K도 개선되었어야 하지만 그렇지 않아 RL이 모델의 근본적인 추론 능력이나 사고 능력을 향상시키지 않는 다는 것을 의미한다.
대신, RL은 output distribution을 안정적으로 만든다. RL이후 Maj@K가 개선되었다는 것은 모델이 정확한 응답을 더 높은 확률로 일관되게 생성되었다는 것을 의미한다. 즉, Instruction tuning 모델에서 정답이 top-k 후보군에 있었다 하더라도 그 확률이 낮았지만 RL 이후에는 그러한 후보 응답이 더 자주 일관되게 출력되도록 했다는 것이다.
결론적으로 RL이후 top-k 응답들이 크게 변화하지는 않았어도 올바른 답이 더 높은 확률로 나올 수 있도록 분포가 조정되었다는 것을 의미한다. 이와 같은 인사이트는 RL로 reasoning 능력이 새롭게 학습되지 않는다는 것을 의미한다.
저자들의 이러한 발견이 DeepSeek-R1과 같은 모델 학습에서 적용된 것 같다. RL 모델이 어느정도 수렴하면 Reject sampling을 통해 새로운 SFT 데이터를 생성하여 재학습 하고 또 RL모델을 학습하는 방식으로 모델을 점진적으로 개선해나가는 방식으로 말이다.
🔹 정리
📌 GRPO는 PPO에서 baseline으로 쓰이는 Value function을 제거하고 relative scoring을 기반으로 baseline을 추정함.
➡ 이로 인해 PPO 대비 메모리 효율성과 학습 안정성을 높일 수 있음.
📌 Value Model(Critic)을 사용하지 않았다는 것이지 Reward model 자체가 필요하지 않다는 것은 아님.
➡ 핵심은 Reward 값 자체가 아닌 그룹 내 상대 비교를 통해 Reward를 정규화하는 방식.
📌 PPO의 KL 텀을 reward가 아닌 직접 loss에 추가하여 계산 구조를 단순화함
📌 Process Supervision을 통해 중간 reasoning step마다 보상을 제공
📌 Reward model도 Iterative하게 업데이트함으로써 update policy 응답의 Reward를 잘 반영할 수 있도록 함.
Reference
'자연어 NLP' 카테고리의 다른 글
당신이 좋아할만한 콘텐츠
-
[RLHF] dDPO (Zephyr) : Direct Distillation of LM Alignment 2024.10.04
-
[RLHF] BOND (2) : Aligning LLMs with Best-of-N Distillation 2024.08.18
-
[RLHF] BOND (1) : Aligning LLMs with Best-of-N Distillation 2024.08.12
-
[NLP] EEVE: Efficient and Effective Vocabulary Expansion Towards Multilingual Large Language Models 2024.08.11
소중한 공감 감사합니다