Pipeline GDPO ma cztery etapy. Etap 1: Rollout — polityka πθ generuje grupę K candidates {y1, …, yK} dla wejścia x. Etap 2: Per-reward standardization — dla każdej nagrody R_j i każdego candidate y_i obliczany jest znormalizowany skalar r'_ji = (R_j(y_i) − μ_j) / (σ_j + ε), gdzie μ_j i σ_j są obliczone niezależnie dla każdego kanału nagrody w obrębie grupy. Etap 3: Sum and batch-normalize — sumuje się znormalizowane rewards per candidate (s_i = Σ_j r'_ji), a następnie stosuje się drugą normalizację group-relative na zsumowanym sygnale: A_i = (s_i − μ_s) / (σ_s + ε). Etap 4: PPO-style policy update — model aktualizowany jest standardową formułą L = -E[A_i × log(πθ(y_i|x)/πref(y_i|x))], z importance sampling clipping i KL regularization względem πref.
Standardowy GRPO (a wcześniej PPO/RLHF) został zaprojektowany dla pojedynczej skalarnej nagrody. Gdy współczesne pipelines RL wymagają jednoczesnej optymalizacji wielu heterogenicznych nagród (np. correctness + format + length), naiwne sumowanie i normalizacja prowadzi do collapse'u różnych kombinacji rewards do tych samych advantage values. To redukuje rozdzielczość signal treningowego, powoduje suboptymalną konwergencję i czasem early training failure. GDPO rozwiązuje to przez decoupled normalization — każda nagroda jest standardyzowana osobno przed sumowaniem.
Dla każdej nagrody R_j obliczane są niezależnie μ_j i σ_j w obrębie group of K candidates. Każdy raw reward jest następnie standardyzowany: r'_ji = (R_j(y_i) − μ_j) / (σ_j + ε). To kluczowa różnica względem GRPO, w którym wszystkie nagrody sumowane są przed jakąkolwiek normalizacją.
Po per-reward normalization, znormalizowane wartości są sumowane per candidate: s_i = Σ_j r'_ji. Następnie stosowana jest druga normalizacja — group-relative batch normalization na zsumowanym sygnale: A_i = (s_i − μ_s) / (σ_s + ε). Końcowa A_i jest advantage używanym w policy update.
Standardowa formuła PPO/GRPO policy update z importance sampling clipping i KL regularization względem frozen reference policy πref: L = -E[A_i × min(ratio, clip(ratio, 1-ε, 1+ε))] + β × KL(πθ || πref), gdzie ratio = πθ(y_i|x) / πref(y_i|x). Ta warstwa jest niezmieniona względem GRPO — różnica wyłącznie w sposobie obliczania A_i.
Oficjalna
Opcjonalne rozszerzenie dla constrained formulation gdzie część nagród traktowana jest jako constraints z target thresholds τ_c. Składowy reward jest wtedy: R(y_i) = R_primary(y_i) − Σ_c λ_c(t) × ReLU(τ_c − R_c(y_i)), gdzie λ_c(t) to PID-controlled time-varying Lagrange multipliers. Wzorzec użyty w Kuaishou RaG/SCRL.
Oficjalna
Per-reward standardization wymaga rozsądnych statystyk μ_j, σ_j w obrębie grupy. Dla małych K (np. K=2, 4) statystyki są niestabilne — wariancja wewnątrz grupy może być zero lub bardzo mała, prowadząc do explosion advantage values lub NaN.
Per-reward standardization niweluje informacje o relative magnitudes między różnymi rewards. Jeśli jeden reward jest o rząd ważniejszy niż inny, GDPO nie ma sposobu na wyrażenie tego — wszystkie są skalowane do podobnego zakresu.
Dla constrained problems (constraint thresholds + Lagrangian multipliers) naive zastosowanie GDPO bez PID-controlled update Lagrangians może prowadzić do oscylacji i overshoot — λ_c rośnie zbyt agresywnie po naruszeniu constraint, potem nadkorekcja.
Schulman et al. wprowadzają Proximal Policy Optimization — fundament wszystkich późniejszych on-policy RL methods dla LLM, w tym GRPO i GDPO.
OpenAI publikuje InstructGPT używający RLHF (reward model + PPO) do alignment LLM z preferencjami ludzkich annotatorów — standardowy pipeline post-training.
DeepSeek wprowadza Group Relative Policy Optimization — eliminuje value model przez group-relative normalization advantage. Krytyczny prekursor GDPO.
Liu et al. (NVIDIA Tech Report, arXiv 2601.05242) wprowadzają GDPO — bezpośrednie rozszerzenie GRPO z decoupled per-reward normalization. Rozwiązuje collapse różnych kombinacji rewards do tych samych advantage values w multi-reward settings.
GDPO trafia do ms-swift (modelscope) jako oficjalna opcja rlhf_type alongside GRPO, dając community open-source implementację dla Megatron training framework.
Kuaishou Technology używa GDPO jako rdzenia Synergistic Cross-Domain Reward Learning (SCRL) w produkcyjnym paradygmacie Recommendation-as-Generation. Pierwsze duże produkcyjne wdrożenie GDPO (400M+ DAU).
Liczba candidates K w group rollout. Większe K = lepsze statystyki per-reward, ale wyższy compute cost.
Waga regularyzacji KL względem πref. Zachowana z PPO/GRPO. Większa β = wolniejsze odchodzenie od reference policy.
PPO-style clip epsilon dla importance sampling ratio. Zachowane z PPO.
Opcjonalne (tylko dla constrained formulation). Target thresholds dla każdego constraint reward. RaG kalibruje je względem SFT baseline distribution jako τ_c = μ_c + k_c × σ_c.
GDPO to algorytm optymalizacji, nie modyfikacja architektury modelu. Wszystkie reward channels są zawsze aktywne i normalizowane niezależnie — brak conditional routing czy sparse activation.
Per-reward normalization i suma są lekkimi operacjami statystycznymi, w pełni zrównoleglone w obrębie group of candidates (na GPU) oraz across multiple groups (across devices). Bottleneck pozostaje rollout phase (forward passes polityki dla K candidates), nie sama optymalizacja GDPO.
GDPO to drop-in replacement dla GRPO/PPO — wszystkie operacje są standardowymi GEMM-ami i reduce operations na GPU. NVIDIA opracowała metodę z myślą o własnym training stack (Megatron).
Algorytm jest hardware-agnostic — można go zaimplementować na dowolnym sprzęcie wspierającym standardowe operacje policy optimization (TPU, Habana, AMD MI300 itp.).