ICML 2026. [Paper] [Page] [Github]
Shih-Yang Liu, Xin Dong, Ximing Lu, Shizhe Diao, Peter Belcak, Mingjie Liu, Min-Hung Chen, Hongxu Yin, Yu-Chiang Frank Wang, Kwang-Ting Cheng, Yejin Choi, Jan Kautz, Pavlo Molchanov
NVIDIA
8 Jan 2026

Introduction

최근 연구들은 주로 reward 설계 자체에 초점을 맞추었으며, 다양한 reward 조합을 최적화하는 데 GRPO를 직접 적용하는 경우가 많았지만, GRPO가 다양한 reward 조합에 적합한지에 대한 검토는 부족했다. 본 논문에서는 multi-reward 환경에서 GRPO의 적용 가능성을 재검토하고, rollout reward의 다양한 조합을 정규화하기 위해 GRPO를 직접 적용하면 모든 조합이 동일한 advantage 값으로 수렴되어 학습 신호의 정확도가 저하됨을 보여주었다. 이러한 수렴 현상은 reward 차원 간의 중요한 차이를 없애고, 부정확한 policy 업데이트, 최적화되지 않은 reward 수렴, 그리고 많은 경우 조기 학습 실패로 이어진다.

이러한 문제점을 극복하기 위해, 본 논문에서는 각 개별 reward에 대한 그룹별 정규화를 분리하는 Group reward-Decoupled Normalization Policy Optimization (GDPO)를 제안하였다. 이를 통해 서로 다른 reward 조합 간의 차이를 더 잘 보존하고 모델 응답의 상대적 차이를 더 정확하게 반영할 수 있다. 결과적으로 더욱 정밀한 multi-reward 최적화가 가능하며 학습 수렴 속도가 크게 향상된다. 분리된 그룹별 정규화 후에는 batch별 advantage 정규화를 적용하여 개별 reward의 개수가 증가함에 따라 advantage의 크기가 커지지 않도록 하였다.

도구 호출, 수학적 추론, 코드 추론의 세 가지 task 모두에서 GDPO는 GRPO보다 더 나은 수렴 성능을 보였다.

GRPO’s propensity for reward signal collapse in multi-reward RL

기존의 multi-reward RL 접근 방식은 일반적으로 모든 reward 성분을 합산하고 GRPO를 직접 적용하는 간단한 전략을 채택하였다. 주어진 질문-응답 쌍 $(q_i, o_j)$에 대해, action policy \(\pi_{\theta_\textrm{old}}\)가 $G$개의 응답 \(\{o_j\}_{j=1}^G\)을 샘플링하고 $n$개의 objective가 있다고 가정할 때, $j$번째 응답에 대한 총 reward는 각 objective의 reward를 합산하여 계산된다.

\[\begin{equation} r_\textrm{sum}^{(i,j)} = r_1^{(i,j)} + \cdots + r_n^{(i,j)} \end{equation}\]

$j$번째 응답에 대한 group-relative advantage는 다음과 같이 계산된다.

\[\begin{equation} A_\textrm{sum}^{(i,j)} = \frac{r_\textrm{sum}^{(i,j)} - \textrm{mean} \{ r_\textrm{sum}^{(i,1)}, \ldots, r_\textrm{sum}^{(i,G)} \}}{\textrm{std} \{ r_\textrm{sum}^{(i,1)}, \ldots, r_\textrm{sum}^{(i,G)} \}} \end{equation}\]

저자들은 먼저 multi-reward RL 최적화에 GRPO를 적용하는 일반적인 관행을 재검토하고, 이전에는 간과되었던 문제점, 즉 GRPO가 본질적으로 reward 신호를 압축하여 advantage 추정치에서 정보 손실을 초래한다는 점을 지적하였다.

각 질문에 대해 group-relative advantage를 계산하기 위한 두 번의 rollout을 생성하고, task에 두 개의 binary reward \(r_1, r_2 \in \{0, 1\}\)이 포함되는 시나리오를 고려해 보자. 결과적으로 각 rollout의 총 reward는 \(\{0, 1, 2\}\)의 값을 가질 수 있다.


위 그림은 그룹 내에서 가능한 모든 rollout reward 조합을 (rollout 1의 총 reward, rollout 2의 총 reward)로 나타내고, 이에 해당하는 정규화된 advantage를 나타낸 것이다. 순서를 무시했을 때 6개의 서로 다른 조합이 존재함에도 불구하고, 그룹별 reward 정규화를 적용한 후에는 단 두 개의 고유한 advantage 그룹만 나타난다.

이는 GRPO의 multi-reward 최적화에서의 advantage 계산에 내재된 근본적인 한계를 보여준다. GRPO는 풍부한 그룹별 reward 신호를 과도하게 압축한다. 직관적으로, 총 reward 2는 두 가지 reward를 동시에 만족하는 것을 의미하고, reward 1은 한 가지 reward만 만족하는 것을 의미하므로, $(0, 2)$는 $(0, 1)$보다 더 강력한 학습 신호를 생성해야 한다. 따라서 $(0, 2)$는 $(0, 1)$보다 더 큰 상대적 advantage를 가져야 한다. 이러한 한계는 부정확한 advantage 추정으로 인해 학습 불안정성을 초래할 위험이 있다.

최근 Dr.GRPODeepSeek-v3.2는 GRPO에서 표준편차 정규화 항을 제거했다.

\[\begin{equation} A_\textrm{sum}^{(i,j)} = r_\textrm{sum}^{(i,j)} - \textrm{mean} \{ r_\textrm{sum}^{(i,1)}, \ldots, r_\textrm{sum}^{(i,G)} \} \end{equation}\]

이러한 연구들은 문제 수준의 난이도 편향을 완화하기 위해 이 수정을 도입했지만, 언뜻 보기에 저자들이 지적한 문제도 해결하는 것처럼 보인다. 구체적으로, 표준편차 정규화를 제거하면 $(0, 1)$과 $(0, 2)$는 이제 각각 $(−0.5, 0.5)$와 $(−1.0, 1.0)$의 advantage를 제공한다. 그러나 reward 개수를 고정한 상태에서 rollout 횟수를 늘리는 방식으로 일반화하면, GRPO에 비해 서로 다른 advantage 그룹의 수가 약간만 증가한다. Rollout 횟수를 4로 고정하고 reward 개수를 점진적으로 증가시키는 경우에서도 유사한 경향이 관찰된다.

Method

1. Group reward-Decoupled normalization Policy Optimization

본 논문에서는 다양한 reward 조합 간의 차이를 더 잘 유지하고 최종 advantage의 상대적 차이를 더 정확하게 포착하도록 설계된 GDPO를 제안하였다. 그룹별 정규화를 reward 합계에 직접 적용하는 GRPO와 달리, GDPO는 집계 전에 각 reward에 대해 개별적으로 그룹별 정규화를 수행함으로써 이 과정을 분리한다.

구체적으로, 먼저 모든 $n$개의 reward를 합산한 다음 그룹별 정규화를 적용하여 \(A_\textrm{sum}\)을 얻는 대신, GDPO는 $i$번째 질문의 $j$번째 rollout에 대한 각 reward의 정규화된 advantage를 다음과 같이 계산한다.

\[\begin{equation} A_1^{(i,j)} = \frac{r_1^{(i,j)} - \textrm{mean} \{ r_1^{(i,1)}, \ldots, r_1^{(i,G)} \}}{\textrm{std} \{ r_1^{(i,1)}, \ldots, r_1^{(i,G)} \}}, \; \ldots, \; A_n^{(i,j)} = \frac{r_n^{(i,j)} - \textrm{mean} \{ r_n^{(i,1)}, \ldots, r_n^{(i,G)} \}}{\textrm{std} \{ r_n^{(i,1)}, \ldots, r_n^{(i,G)} \}} \end{equation}\]

Policy 업데이트에 사용되는 advantage는 먼저 모든 objective에 걸쳐 정규화된 advantage를 합산한 다음, multi-reward advantage의 합에 batch별 advantage 정규화를 적용하여 얻는다.

\[\begin{equation} A_\textrm{sum}^{(i,j)} = A_1^{(i,j)} + \cdots + A_n^{(i,j)} \\ \hat{A}_\textrm{sum}^{(i,j)} = \frac{A_\textrm{sum}^{(i,j)} - \textrm{mean} \{ A_\textrm{sum}^{(i^\prime,j^\prime)} \mid i^\prime \in D_\textrm{batch}, j^\prime = 1, \ldots, G \} }{\textrm{std} \{ A_\textrm{sum}^{(i^\prime,j^\prime)} \mid i^\prime \in D_\textrm{batch}, j^\prime = 1, \ldots, G \} + \epsilon} \end{equation}\]

이는 최종 advantage \(\hat{A}_\textrm{sum}^{(i,j)}\)의 수치적 스케일이 안정적으로 유지되고 추가 reward가 도입되더라도 증가하지 않도록 보장한다. 경험적으로, 이 정규화 단계는 학습 안정성을 향상시키며, batch별 정규화를 제거하면 수렴 실패가 발생하는 경우가 있다.

2. Effective incorporation of priority variation

지금까지는 모든 objective가 동일한 중요도를 가진다고 가정했다. 하지만 실제로는 이러한 가정이 항상 성립하지 않는다. 일반적으로 objective 간의 우선순위를 나타내기 위해 각 reward에 서로 다른 가중치를 부여하여 각 reward가 policy 업데이트에 사용되는 최종 advantage에 기여하는 정도를 제어할 수 있다.

\[\begin{equation} r_\textrm{sum} = w_1 r_1 + \cdots + w_n r_n \end{equation}\]

GDPO의 경우, 이러한 가중치는 다음과 같이 각 reward의 정규화된 advantage에 적용된다.

\[\begin{equation} A_\textrm{sum}^{(i,j)} = w_1 A_1^{(i,j)} + \cdots + w_n A_n^{(i,j)} \end{equation}\]

그러나, objective들의 난이도가 상당히 다를 경우 reward 가중치를 조정하는 것만으로는 의도한 동작을 항상 얻을 수 있지는 않다. 만약 한 objective가 다른 objective들보다 훨씬 쉽다면, 모델은 할당된 가중치와 관계없이 해당 objective에 대한 reward를 최대화하는 데 집중하는 경향이 있다. 따라서, 모델이 더 어려운 objective와 관련된 reward에 더 많은 관심을 기울이도록 유도하려면, 난이도 차이를 상쇄할 만큼 가중치 차이를 충분히 크게 만들어야 한다.

최근 논문들에서는 더 어려운 reward에 더 쉬운 reward를 조건부로 부여하는 방식으로 이러한 문제를 해결하고자 하였다. 구체적으로, 두 reward $r_k$와 $r_l$이 주어졌을 때, 다음과 같이 $r_k$를 $r_l$에 조건부로 부여한다.

\[\begin{equation} r_k = \begin{cases} r_k, & \textrm{if } r_l \ge t \\ 0, & \textrm{otherwise} \end{cases} \end{equation}\]

이러한 reward function 설계를 통해 모델은 reward $r_l$이 미리 정의된 threshold $t$를 만족할 때만 reward $r_k$를 받을 수 있으며, 결과적으로 모델은 항상 인간이 우선시하는 reward를 먼저 최대화하도록 강제되어 앞서 언급한 문제를 완전히 완화한다. 또한, reward이 쉽게 지배되는 문제를 해결한 후, 세밀한 우선순위 조정을 위해 서로 다른 reward 가중치를 할당하는 것이 최종 모델 동작에 더 충실하게 반영될 수 있다.

Experiments

1. Tool calling

  • Format reward \(\mathcal{R}_\textrm{format} \in \{0, 1\}\): 모델 출력이 요구되는 구조를 만족하고 모든 필수 필드가 올바른 순서로 포함되어 있는지 확인
  • Correctness reward \(\mathcal{R}_\textrm{correct} \in [-3, 3]\): 도구 이름 일치, 파라미터 이름 일치, 파라미터 내용 일치라는 세 가지 지표를 사용하여 모델이 생성한 도구 호출을 실제 호출과 비교 평가

다음은 GDPO를 GRPO, 표준편차 없는 GRPO와 비교한 결과이다.

2. Mathematical reasoning

  • Length reward \(\mathcal{R}_\textrm{length} \in \{0, 1\}\): 모델의 출력이 타겟 길이 (4000 토큰) 내에 유지되는지 여부
  • Correctness reward \(\mathcal{R}_\textrm{correct} \in \{0, 1\}\): 모델의 응답에서 추출한 최종 답변이 정답과 일치하는지 여부

다음은 GDPO를 GRPO와 비교한 결과이다. (Pass@1 정확도, 길이 초과 비율)


다음은 학습이 진행됨에 따른 각 reward와 최대 응답 길이를 비교한 결과이다.


다음은 conditioned length reward \(\tilde{\mathcal{R}}_\textrm{length}\)에 대한 비교 결과이다. \(\tilde{\mathcal{R}}_\textrm{length}\)는 \(\mathcal{R}_\textrm{correct} = 1\)이고 길이가 초과되지 않았을 때만 1이다.


다음은 \(\tilde{\mathcal{R}}_\textrm{length}\)을 사용했을 때의 training curve를 비교한 것이다.


다음은 다양한 length reward 가중치에 따른 비교 결과이다.

3. Coding reasoning

  • Passrate reward \(\mathcal{R}_\textrm{pass} \in [0, 1]\): 모델이 통과한 테스트 케이스 비율
  • Conditioned length reward \(\tilde{\mathcal{R}}_\textrm{length} \in \{0, 1\}\): 길이가 초과되지 않았고 \(\mathcal{R}_\textrm{pass} = 1\)일 때만 1인 조건부 reward
  • Bug reward \(\mathcal{R}_\textrm{bug} \in \{0, 1\}\): 생성된 코드가 런타임 오류나 컴파일 오류 없이 실행되는지 여부