GRPO: Group-Relative Policy Optimization

마지막 수정:

grporlvrpolicy-gradientdeepseek

GRPO는 Group Relative Policy Optimization이다.

핵심은 value model을 따로 학습하지 않고, 같은 prompt에서 나온 여러 completion을 서로 비교해 advantage를 만든다는 점이다.

same prompt
  completion A -> reward 0
  completion B -> reward 1
  completion C -> reward 0
  completion D -> reward 1

group-relative advantage

GRPO는 reward를 group 안에서 정규화한다.

advantage_i = (reward_i - group_mean) / group_std

이러면 “전역적으로 reward 1이면 좋다”보다 더 섬세한 신호가 생긴다.

쉬운 prompt:
  대부분 정답이면 틀린 completion이 강한 음수 신호가 된다

어려운 prompt:
  대부분 오답이면 드문 정답 completion이 강한 양수 신호가 된다

PPO와 무엇이 다른가

PPO는 보통 value model이 필요하다.

PPO:
  policy model
  reference model
  reward model/verifier
  value model

GRPO는 value model을 없앤다.

GRPO:
  policy model
  reference model
  reward model/verifier
  group rewards

그래서 메모리와 구현 복잡도가 줄어든다. 대신 같은 prompt에서 여러 completion을 뽑아야 group baseline이 의미를 가진다.

GRPO의 실제 데이터 흐름

prompt batch
  -> prompt마다 G개 completion 생성
  -> 각 completion reward 계산
  -> prompt group별 advantage 계산
  -> old/current/reference logprob 계산
  -> clipped policy loss + KL penalty
  -> policy update

여기서 G가 group size다. G가 크면 비교 기준은 좋아지지만 rollout compute가 늘어난다.

조심할 점

모든 completion reward가 같으면 학습 신호가 사라진다.

[0, 0, 0, 0] -> 차이가 없다
[1, 1, 1, 1] -> 차이가 없다

그래서 curriculum, sampling temperature, prompt 난이도, verifier 설계가 중요해진다.

참고 자료

  • DeepSeek-AI, DeepSeekMath
  • DeepSeek-AI, DeepSeek-R1
  • Hugging Face, TRL GRPOTrainer
  • 로컬 참고: reference-books/rlhf-book/ch06-Reinforcement-Learning.md
  • 로컬 참고: reference-books/reasoning-model-from-scratch/ch06-Training-reasoning-models-with-reinforcement-learning.md
  • 로컬 참고: trl/README.md

확인

  • GRPO가 value model을 없앨 수 있는 이유는 무엇인가?
  • group size를 키우면 어떤 장점과 비용이 생기는가?
  • 모든 rollout reward가 같으면 왜 update signal이 약해지는가?