Secrets of RLHF II: 선호 데이터의 노이즈와 reward model의 일반화

Secrets of RLHF in Large Language Models Part II: Reward Modeling (Binghai Wang et al., Fudan University, arXiv 2024)

Introduction

시리즈 #1에서는 사람의 선호로 보상을 배운다는 아이디어의 원형을 봤고, 거기서 이미 policy가 학습되며 분포가 이동하면 reward model이 낡아버린다는 문제가 예고됐다. #4은 그렇게 만든 reward model의 표준 학습 도구인 Bradley-Terry 손실이 이론적으로 타당한 가정 위에 서 있는지를 캐물었다. 이번 글이 던지는 질문은 결이 다르다. BT 손실이 수학적으로 옳다고 쳐도, 애초에 그 손실이 먹는 데이터가 믿을 만한가?

Fudan 대학 MOSS 팀이 쓴 이 논문은 두 가지를 동시에 문제 삼는다. 첫째, 사람이 만든 선호 쌍(preference pair) 자체가 오염돼 있다. 실제로 라벨이 뒤바뀐 쌍(incorrect pair)도 있고, 애초에 사람도 우열을 가리기 힘든 쌍(ambiguous pair)도 있다. 이 둘을 구분하지 않고 그냥 다 똑같은 가중치로 BT 손실에 넣으면 reward model(이하 RM)은 정확히 잘못된 방향으로, 혹은 존재하지 않는 신호를 향해 학습된다. 둘째, RLHF는 한 번에 끝나지 않는다. policy가 PPO로 업데이트될수록 그 policy가 뱉는 응답의 분포는 RM이 학습됐던 원래 선호 데이터의 분포에서 점점 멀어진다. 즉 RM은 자기가 만들어낸 policy에 의해 스스로 OOD(out-of-distribution) 상황에 놓이게 된다.

이 논문의 답은 두 갈래다. 데이터 쪽에서는 여러 RM의 투표로 각 쌍의 선호 강도(preference strength) 를 측정하고, 그 강도에 따라 라벨을 뒤집거나(flip), soft label을 주거나, margin을 부여한다. 모델 쪽에서는 contrastive learning으로 표현력을 단단히 하고, meta-learning(MetaRM)으로 policy 분포 이동에 RM이 스스로 적응하게 만든다. 결론부터 말하면 이 논문이 보여주는 것은 “RM 설계의 진짜 병목은 손실 함수나 아키텍처가 아니라 데이터 품질”이라는 사실이고, 이 결론은 뒤에서 다룰 6편 Skywork-Reward의 데이터 큐레이션 이야기로 곧장 이어진다.

Background

RM 학습의 표준 형태부터 복기하자. 프롬프트 \(x\)에 대해 사람이 두 응답 \(y_c\)(chosen)와 \(y_r\)(rejected) 중 하나를 골랐다고 하면, RM \(r_\psi\)는 Bradley-Terry 모델을 따라 다음 손실로 학습된다(#4 참고).

\[\mathcal{L}_{BT}(r_\psi) = -\mathbb{E}_{(x,y_c,y_r)\sim\mathcal{D}_{rm}}\Big[\log \sigma\big(r_\psi(x,y_c) - r_\psi(x,y_r)\big)\Big]\]

이 손실은 하나의 강한 가정을 깔고 있다. \(\mathcal{D}_{rm}\)의 모든 라벨이 옳고, 모든 쌍이 똑같이 명확하다는 가정이다. 그런데 현실의 라벨링 파이프라인은 그렇지 않다. 크라우드소싱 채점자 두 명에게 같은 답안지 두 장을 채점하게 하면, 어떤 답안 쌍은 두 채점자 모두 망설임 없이 같은 답을 고르지만(강한 선호), 어떤 쌍은 동전 던지듯 갈리고(애매한 선호), 어떤 쌍은 채점자가 지쳐서 실수로 반대로 체크하기도 한다(라벨 오류). 문제는 학습 파이프라인 입장에서 이 세 종류가 겉보기엔 구분이 안 된다는 점이다. 셋 다 그냥 “\(y_c \succ y_r\)“이라는 한 줄의 라벨로 들어온다.

이 논문이 쓰는 트릭은 온도계 비유로 이해하면 쉽다. 온도계 하나로 잰 36.9도는 오차가 있는지 없는지 알 수 없지만, 온도계 10개로 같은 지점을 재서 평균이 36.9도이고 편차가 0.1도 이내라면 신뢰할 수 있고, 편차가 크거나 평균 자체가 이상하면 뭔가 잘못됐다고 의심할 수 있다. RM도 마찬가지다. 독립적으로 학습된 RM을 여러 개 준비해서 같은 쌍에 투표를 시키면, 그 투표의 평균과 분산으로 “이 쌍이 얼마나 명백한 선호인지”를 정량화할 수 있다. 이것이 이 논문의 핵심 도구인 preference strength다.

상황 겉보기 라벨 실제 정체 RM 학습에 주는 피해
강한 선호 \(y_c \succ y_r\) 진짜로 명백한 우열 문제 없음(오히려 과최적화 위험)
애매한 선호 \(y_c \succ y_r\) 사람도 반반으로 갈리는 쌍 존재하지 않는 신호를 억지로 학습 → 노이즈 fitting
라벨 오류 \(y_c \succ y_r\) 실제로는 \(y_r \succ y_c\) 정반대 방향으로 그래디언트 → 직접적 성능 훼손

Method

다중 RM 투표로 선호 강도 측정하기

먼저 서로 다른 시드/데이터 서브셋으로 \(M\)개의 RM \(\{r_{\psi_1}, \ldots, r_{\psi_M}\}\)을 독립적으로 학습한다(논문은 \(M=10\)을 쓴다). \(i\)번째 선호 쌍 \((x^{(i)}, y_c^{(i)}, y_r^{(i)})\)에 대해 \(m\)번째 RM이 매긴 점수차는 다음과 같다.

\[d_{i,\psi_m} = r_{\psi_m}\big(x^{(i)}, y_c^{(i)}\big) - r_{\psi_m}\big(x^{(i)}, y_r^{(i)}\big)\]

이 \(M\)개의 점수차를 모아 평균과 표준편차를 낸다.

\[\hat\mu_i = \frac{1}{M}\sum_{m=1}^{M} d_{i,\psi_m}, \qquad \hat\sigma_i = \sqrt{\frac{1}{M}\sum_{m=1}^{M}\left(d_{i,\psi_m} - \hat\mu_i\right)^2}\]

기호를 하나씩 풀면:

  • \(x^{(i)}\): \(i\)번째 프롬프트.
  • \(y_c^{(i)}, y_r^{(i)}\): 사람이 chosen/rejected로 라벨을 붙인 두 응답.
  • \(r_{\psi_m}\): \(m\)번째로 독립 학습된 RM(파라미터 \(\psi_m\)).
  • \(d_{i,\psi_m}\): 그 RM이 이 쌍에 매긴 chosen − rejected 점수차. 라벨이 맞다면 양수여야 정상이다.
  • \(\hat\mu_i\): \(M\)개 RM 점수차의 평균 = 이 쌍의 평균 선호 강도. 크고 양수면 명백한 선호, 0 근처면 애매, 음수면 라벨이 거꾸로일 가능성.
  • \(\hat\sigma_i\): 그 표준편차 = RM들 사이의 의견 불일치 정도. 서로 다르게 학습된 RM 10개가 이 쌍에서도 의견이 갈린다면 쌍 자체가 불안정한 신호라는 뜻이다.

실제로 전체 학습 데이터에 이 측정을 돌려보면 전체 쌍의 약 25%에서 \(\hat\mu_i < 0\)이 나온다. 즉 라벨 그대로 학습하면 4분의 1의 쌍에서 RM이 반대 방향으로 그래디언트를 받는다는 뜻이다. 그리고 \(\hat\mu_i\)와 \(\hat\sigma_i\)의 관계는 U자형을 보인다. \(\hat\mu_i\)가 중간 정도인 쌍에서는 RM들 사이 의견이 비교적 일치하지만, \(\hat\mu_i\)가 극단으로 갈수록(아주 강하거나 아주 이상하거나) 오히려 \(\hat\sigma_i\)도 커진다.

위 그림은 전체 선호 쌍의 \(\hat\mu_i\) 분포다. 봉우리가 0보다 약간 오른쪽에 있다는 건 대다수 쌍에서 10개 RM이 “사람 라벨이 맞다”에 동의한다는 뜻이다. 하지만 0 왼쪽으로 뻗은 꼬리가 만만치 않다 — 이 영역이 곧 RM 10개가 입을 모아 “라벨이 거꾸로다”라고 말하는 쌍들이고, 앞서 말한 25%가 여기 해당한다. 동시에 봉우리가 0 근처에 두껍게 몰려 있다는 점도 중요하다. \(\hat\mu_i \approx 0\)인 쌍은 “틀린 라벨”이 아니라 애초에 우열을 가릴 수 없는 쌍이며, 이 둘은 뒤에서 서로 다른 처방을 받는다.

이쪽은 \(\hat\sigma_i\) 분포다. 대부분의 쌍이 0.2~0.4 구간에 몰려 있다 — RM들이 대체로 비슷하게 판단한다는 뜻이다. 그런데 오른쪽으로 길게 늘어진 꼬리가 있고, 여기 들어간 쌍들이 위험 신호다. 같은 데이터로 학습한 RM 10개가 유독 이 쌍들에서만 의견이 갈린다면, 문제는 RM이 아니라 쌍 자체에 있다고 보는 게 자연스럽다.

두 분포를 같이 읽는 것이 핵심이다. \(\hat\mu_i\)는 “어느 쪽이 좋은가”를, \(\hat\sigma_i\)는 “그 판단을 얼마나 믿을 수 있는가”를 말한다. 건강검진에 비유하면 \(\hat\mu_i\)는 측정된 수치이고 \(\hat\sigma_i\)는 그 측정의 오차범위다. 수치가 정상 범위를 벗어난 것과, 측정 자체가 들쭉날쭉한 것은 전혀 다른 문제이고 처방도 달라야 한다.

선호 강도로 데이터를 재단하기

논문은 \(\hat\mu_i\) 기준으로 정렬한 뒤 데이터를 층으로 나눠 서로 다른 처방을 준다. 정확한 경계는 배타적 파티션이라기보다 두 단계 처리로 이해하는 게 맞다. 먼저 강도 순위로 하위 20% / 다음 20% / 나머지로 나눠 flip과 smoothing을 적용하고, 그 나머지 안에서 강도가 극단적으로 높은 상위 10%를 따로 골라 margin을 추가한다.

그룹 \(\hat\mu_i\) 기준 대략적 비율 문제 처방
라벨 오류(incorrect) \(\hat\mu_i < 0\), 특히 하위권 하위 20% 정반대 신호 라벨 뒤집기(flip) — \(y_c, y_r\)를 교환
애매(ambiguous) \(\hat\mu_i \approx 0\) 다음 20% 존재하지 않는 신호를 억지 학습 label smoothing
정상(normal) 적당히 양수 나머지 대부분 문제 없음 그대로 BT 손실
강한 선호(strong) 크게 양수, 상위권 상위 10% 손실이 너무 빨리 0에 수렴 → 표면 패턴 과적합 soft label + adaptive margin

라벨 뒤집기는 말 그대로다. \(\hat\mu_i\)가 충분히 음수면 애초에 사람이 반대로 표시했다고 보고 \(y_c\)와 \(y_r\)을 맞바꿔서 다시 학습 데이터에 넣는다. 폐기(discard)하지 않고 뒤집어서 재활용하는 이유는, 뒤집힌 쌍도 응답 자체는 여전히 유용한 비교 정보를 담고 있기 때문이다.

soft label은 정답을 \(1.0\)이 아니라 \(0.9\) 같은 중간값으로 주는 것이다. “이 쌍은 확실히 \(y_c\)가 낫다”가 아니라 “90% 정도 낫다”고 가르친다. label smoothing과 헷갈리기 쉬운데, soft label은 목표값이고 label smoothing은 그 목표값을 만드는 방법이다. 아래 식의 \(\alpha\)가 smoothing 강도이고 목표 확률이 \(1-\alpha\)가 되니, 결국 \(t = 1-\alpha\)인 soft label을 주는 셈이다.

왜 이게 필요한지는 hard label의 문제를 보면 드러난다. BT 손실 \(-\log\sigma(\Delta)\)(\(\Delta = r_\psi(x,y_c) - r_\psi(x,y_r)\))는 목표가 \(1.0\)일 때 \(\Delta \to \infty\)에서만 최소가 된다. 즉 점수 차이를 아무리 벌려도 항상 더 벌리라는 압력이 남는다. 도달할 목표점이 없는 것이다.

목표를 \(t\)로 낮추면 손실은 \(-[t\log\sigma(\Delta) + (1-t)\log(1-\sigma(\Delta))]\)가 되고, 이때 기울기는 \(\sigma(\Delta) - t\)다. 여기서 결정적인 차이가 생긴다.

현재 상태 hard label (\(t=1\)) soft label (\(t=0.9\))
\(\sigma(\Delta)=0.7\) 더 벌려라 더 벌려라
\(\sigma(\Delta)=0.9\) 더 벌려라 멈춰라 (기울기 0)
\(\sigma(\Delta)=0.99\) 더 벌려라 되돌려라 (기울기 음수)

최적 지점이 유한한 값으로 고정된다. \(t=0.9\)면 \(\Delta^\ast = \log(0.9/0.1) = \log 9 \approx 2.20\)이다. 너무 벌리면 오히려 끌어당기는 복원력이 생긴다는 것이 핵심이다.

논문이 이 처방을 강한 선호 그룹에 쓰는 이유도 여기서 나온다. 그 그룹은 \(\sigma(\Delta)\)가 금방 1 근처로 가서 “더 벌려라” 압력만 남는 구간인데, 모델은 그 압력을 가장 싸게 해소할 방법 — 길이나 형식 같은 표면 패턴 — 을 찾아낸다. soft label이 그 폭주를 유한한 지점에서 끊는다.

label smoothing은 애매한 쌍에서 모델이 100% 확신을 갖지 않도록 목표 확률을 완화한다. 같은 원리를 반대쪽 극단에 적용하는 것이다.

\[\mathcal{L}_{LS}(r_\psi) = -\mathbb{E}_{(x,y)\sim\mathcal{D}_{rm}}\Big[(1-\alpha)\log p_\psi(y_c \succ y_r \mid x) + \alpha \log\big(1 - p_\psi(y_c \succ y_r \mid x)\big)\Big]\]

여기서 \(p_\psi(y_c \succ y_r \mid x) = \sigma\big(r_\psi(x,y_c) - r_\psi(x,y_r)\big)\)는 보통의 BT 확률이고, \(\alpha \in [0,1)\)는 smoothing 강도다. \(\alpha=0\)이면 원래 BT 손실과 같다. \(\alpha\)가 커질수록 목표 확률이 1이 아니라 \(1-\alpha\)가 되므로, 모델이 애매한 쌍에서 억지로 극단적인 점수차를 만들려는 유인이 줄어든다.

adaptive margin은 반대로 이미 명백한 쌍에서 모델이 너무 쉽게 손실을 0으로 만들어버리는 것을 막는다.

\[\mathcal{L}_{margin}(r_\psi) = -\log \sigma\Big(r_\psi(x,y_c) - r_\psi(x,y_r) - \hat\mu(x,y)\Big)\]

측정된 선호 강도 \(\hat\mu(x,y)\)를 시그모이드 안쪽에서 빼주는 형태다. 그냥 두면 이미 \(\hat\mu_i\)가 큰 쌍은 손실이 금방 0 근처로 떨어져 그래디언트가 사라지는데, margin을 강도만큼 요구하면 “이미 벌어진 만큼 더 벌려야 손실이 0이 된다”는 조건이 걸려서 모델이 표면적인 패턴(길이, 형식 등)에 안주하지 않고 계속 판별력을 벼리게 된다.

soft label과 adaptive margin은 같은 문제를 정반대 방향에서 잡는다는 점이 재미있다. soft label은 “목표를 낮춰” 멈추게 하고, margin은 “요구를 높여” 안주하지 못하게 한다. 강한 선호 그룹에 둘을 함께 적용하는 이유가 여기 있다 — 과하게 벌리는 것도 막고, 쉽게 만족하는 것도 막는다. 이 margin 아이디어는 8편에서 다룰 Llama 2의 RM 학습에서 프로덕션 버전으로 단순화되어 실제로 쓰인다.

토이 예제: 3개의 쌍, 3개의 RM

논문은 \(M=10\)을 쓰지만 손으로 계산해보기 위해 \(M=3\)으로 줄여보자. 세 개의 선호 쌍 A(강한 선호), B(애매), C(라벨 오류 의심)에 대해 RM 3개가 매긴 점수차 \(d\)는 다음과 같다고 하자.

RM1 RM2 RM3 \(\hat\mu_i\) \(\hat\sigma_i\) 분류 처방
A (강한 선호) 2.1 2.4 1.9 2.13 0.21 상위권 강한 선호 soft label + margin
B (애매) 0.3 −0.2 0.1 0.07 0.21 \(\hat\mu \approx 0\) label smoothing
C (라벨 오류 의심) −1.5 −1.8 −1.2 −1.50 0.24 \(\hat\mu < 0\) flip

세 쌍의 \(\hat\sigma_i\)가 0.21~0.24로 거의 같다는 점에 주목하자. RM들의 의견 일치도는 셋 다 비슷한데, \(\hat\mu_i\)의 위치만으로 처방이 완전히 갈린다. C는 세 RM이 입을 모아 “라벨이 거꾸로다”라고 말하는 경우라 폐기가 아니라 뒤집기 대상이고(뒤집으면 점수차 \(+1.5\)의 정상 쌍이 된다), B는 판단 자체가 서지 않는 쌍이며, A는 이미 충분히 벌어져 더 짜낼 신호가 없는 쌍이다.

contrastive learning으로 표현을 단단히 하기

왜 표현을 따로 손봐야 하나

앞의 처방들은 전부 손실에 들어가는 라벨을 손봤다. flip은 방향을 고치고, smoothing과 margin은 목표값을 조절한다. 그런데 이걸 아무리 잘해도 건드리지 못하는 층이 하나 남는다. RM이 응답을 어떤 벡터로 표현하는가다.

BT 손실은 \(r_\psi(x,y_c) > r_\psi(x,y_r)\)만 요구한다. 이 조건을 만족시키는 가장 싼 방법은 무엇일까. 응답을 실제로 이해하는 것이 아니라, 정답과 상관된 표면 신호를 찾는 것이다. 길이가 길면 대체로 chosen이더라, 목록 형식이면 chosen이더라 — 이런 지름길이 학습 데이터에서 통하면 RM은 거기 안주한다. 그러면 은닉 표현 \(h\) 자체가 “길이·형식” 축으로만 조직되고, 내용은 비슷한데 길이만 같은 두 응답은 표현 공간에서 거의 겹쳐버린다. 구분할 수 없는 것을 구분하라고 요구해봐야 소용없다.

그래서 논문은 라벨이 아니라 표현에 직접 손을 댄다. 목표는 하나다. 비슷해 보이는 응답들이 표현 공간에서 뭉개지지 않게 밀어내는 것.

두 가지 방식

첫 번째는 SimCSE 스타일이다. 같은 입력을 dropout만 다르게 해서 두 번 통과시키면 약간 다른 두 벡터가 나오는데, 이 둘을 양성 쌍(같은 것이어야 함)으로 놓고 배치 안의 다른 응답들을 음성 쌍(달라야 함)으로 놓는다.

\[\ell_i = -\log \frac{\exp\big(\mathrm{sim}(h_s^{(i)}, h_t^{(i)})/\tau\big)}{\sum_{j=1}^{N'} \exp\big(\mathrm{sim}(h_s^{(i)}, h_t^{(j)})/\tau\big)}\]

기호를 풀면 \(h_s^{(i)}, h_t^{(i)}\)는 같은 응답 \(i\)를 두 번 통과시켜 얻은 두 표현, \(\mathrm{sim}\)은 코사인 유사도, \(\tau\)는 온도(temperature)다. 분자는 “자기 자신의 두 버전이 얼마나 닮았나”, 분모는 “배치 안 모든 응답과 얼마나 닮았나”다. 이 비율을 키우려면 자기 짝과는 붙고 남들과는 떨어져야 한다.

여기서 dropout이 하는 역할이 영리하다. 텍스트는 이미지처럼 자르거나 회전시킬 수 없어서 augmentation을 만들기 어려운데, dropout이라는 이미 있는 노이즈를 augmentation으로 재활용한다. 별도 장치 없이 양성 쌍을 공짜로 얻는 것이다.

두 번째는 SwAV 스타일이다. 표현을 직접 비교하는 대신 프로토타입 \(\{c_1, \ldots, c_K\}\)이라는 기준점 \(K\)개를 두고, “이 응답이 어느 프로토타입에 속하는가”라는 클러스터 할당을 매긴다. 그리고 서로 다른 뷰에서 나온 할당이 일치하도록 강제한다.

  SimCSE 방식 SwAV 방식
무엇을 맞추나 표현 벡터끼리 직접 비교 프로토타입 할당이 일치하는지
음성 쌍 배치 안 다른 응답 전부 필요 프로토타입이 대신함
성격 개별 비교 군집 수준 비교

둘 다 원래 RM 손실에 가중치 \(\beta\)로 더해진다.

\[\mathcal{L}_{total} = \mathcal{L}_{rm} + \beta \cdot \mathcal{L}_{cl}\]

데이터 처방과 어떻게 다른가

층이 다르다는 점이 중요하다.

  데이터 처방(flip/smoothing/margin) contrastive 항
건드리는 것 라벨 — 어떤 쌍을 얼마나 믿을지 표현 — 응답을 어떤 벡터로 볼지
해결하는 문제 잘못되거나 애매한 신호 애초에 구분이 안 되는 표현
비유 채점 기준표를 고친다 채점자의 시력을 교정한다

기준표가 아무리 정확해도 답안지가 흐릿하게 보이면 소용없다. 반대로 시력이 좋아도 기준표가 틀렸으면 엉뚱하게 채점한다. 그래서 논문은 둘을 함께 쓴다.

이 구분이 특히 중요한 이유는 OOD 상황이다. RLHF가 진행되면 policy가 학습 데이터에 없던 응답을 만들어내는데, 이때 라벨 처방은 아무 도움이 안 된다. 그 응답에는 애초에 라벨이 없기 때문이다. 반면 표현이 잘 조직되어 있으면 처음 보는 응답도 제대로 배치되어 점수가 나온다. 논문이 PPO 학습 곡선에서 contrastive RM이 더 안정적으로 수렴한다고 보고하는 것도 이 맥락이고, 바로 다음 절의 MetaRM이 같은 OOD 문제를 또 다른 각도에서 공략한다.

meta-learning으로 policy 분포 이동을 뒤쫓기(MetaRM)

여기서부터가 #1이 예고했던 문제, 즉 policy가 이동하면 RM이 낡는다는 문제에 대한 답이다. RLHF는 보통 한 번에 끝나지 않고 “PPO로 policy 업데이트 → 새 policy로 응답 샘플링 → 다시 선호 라벨링 → RM 재학습”을 여러 라운드 반복한다(iterative RLHF). 문제는 라운드가 진행될수록 policy \(\pi^{RL}\)이 뱉는 응답의 분포가 원래 RM이 학습했던 분포에서 멀어진다는 점이다. RM이 새 분포의 응답들을 서로 구분하지 못하면(다 비슷한 점수를 주면) 더 이상 유용한 학습 신호를 주지 못한다.

이사를 자주 다니는 상황을 생각하면 이해가 쉽다. 예전 동네 지도만 들고 새 동네를 돌아다니면 길을 못 찾는다. 그렇다고 예전 지도를 통째로 버리고 새로 그리면 그동안 쌓은 방향 감각을 낭비하는 셈이다. 합리적인 방법은 새 동네를 몇 바퀴 둘러보며 “감”만 빠르게 업데이트하고, 그 감을 기준으로 기존 지도를 미세 조정하는 것이다. MetaRM이 하는 일이 정확히 이거다.

먼저 새 policy \(\pi^{RL}\)에서 같은 프롬프트에 대해 \(k\)개의 응답 \(s_1, \ldots, s_k\)를 뽑아, 라벨 없이 RM이 이들을 얼마나 서로 다르게 평가하는지를 재는 목적함수를 만든다.

\[\mathcal{J}_\theta = \frac{2}{k^2}\sum_{i=1}^{k}\sum_{j=i+1}^{k} \sigma\Big(\big\lvert r_\theta(x, s_i) - r_\theta(x, s_j)\big\rvert\Big)\]

\(\mathcal{J}_\theta\)가 크다는 것은 RM이 새 분포에서도 응답들을 잘 구분하고 있다는 뜻이고, 작다는 것은 다 비슷한 점수를 줘서 판별력이 죽었다는 뜻이다. 이 신호로 두 단계 메타 업데이트를 한다.

\[\theta_t' = \theta_t + \eta \frac{\partial \mathcal{J}_\theta(X_s)}{\partial \theta} \qquad \text{(1단계: 새 분포 표본 } X_s \text{에서 판별력을 키우는 방향으로 임시 이동)}\] \[\theta_{t+1} = \theta_t - \alpha \nabla_\theta \mathcal{L}_{\theta'}(X_t) \qquad \text{(2단계: 그 임시 파라미터 } \theta' \text{ 기준 그래디언트로 원래 라벨 데이터 } X_t \text{를 학습)}\]

직관은 이렇다. 1단계는 라벨 없이 “새 동네 감”만 잠깐 익힌 임시 파라미터 \(\theta'\)를 만든다. 2단계는 그 감을 가진 상태에서 원래 라벨 데이터 \(X_t\)를 학습하는데, 이때 \(X_t\) 안에서 “이 예시를 학습하는 방향이 새 분포 판별력을 키우는 방향과 일치하는” 예시일수록 더 큰 그래디언트를 받는다. 즉 원래 있던 라벨 데이터 중에서도 지금 policy가 처한 새 분포에 도움이 되는 예시를 암묵적으로 재가중치하는 셈이다. RM을 통째로 새로 학습하지 않고도 매 라운드 가볍게 적응시킬 수 있다는 게 이 방법의 실용적 장점이다.

Experiments

측정한 선호 강도가 실제로 의미 있는 신호인지부터 GPT-4를 심판 삼아 검증한다. 강도 상위 500개 쌍은 GPT-4 판정과 95.6% 일치하고, 하위 500개(라벨 오류 의심)는 16.4%만 일치하며, \(\hat\mu_i \approx 0\)인 애매 구간은 54.4%로 사실상 동전 던지기 수준이다.

그룹(선호 강도 기준) 표본 수 GPT-4 라벨과 일치율
상위 500 (강한 선호) 500 95.6%
\(\hat\mu_i \approx 0\) 구간 (애매) 54.4%
하위 500 (라벨 오류 의심) 500 16.4%

이 결과가 그대로 RM 성능에도 반영된다. 하위 20% 데이터만 따로 떼서 학습하면 검증 정확도가 랜덤(50%)보다도 낮게 나오고, 20~40% 구간만 학습하면 대략 랜덤 수준에 머문다. 반면 나머지 데이터로 학습하면 뚜렷하게 높은 정확도를 낸다. flip + margin + soft label을 모두 적용한 조합은 원본(노이즈 포함) 데이터로 학습한 baseline과 달리 GPT-4 라벨 검증셋, 원본 검증셋, 재필터링한 검증셋 세 종류 모두에서 안정적인 성능을 유지한다. baseline은 원본 검증셋에서만 성능이 높고 나머지 두 검증셋에서는 무너지는데, 이는 원본 데이터의 노이즈 패턴 자체를 외워버렸다는 뜻이다.

정제된 RM으로 실제 PPO를 3라운드 돌린 결과, SFT 대비 승률은 다음과 같다.

벤치마크 Win Tie Loss
Anthropic-Harmless 69% 28% 3%
Anthropic-Helpful 73% 23% 4%
Summary (TL;DR) 78% 5% 17%

MetaRM을 적용한 iterative RLHF는 요약 태스크에서 라운드를 거듭할수록 승률이 꾸준히 올라, 1라운드 51%에서 4라운드 78%까지 개선된다. 논문은 이를 “3~4라운드에 걸친 꾸준한 개선”으로 요약한다.

Round Summary 승률
1 51%
4 78%

가장 인상적인 부수 발견은 KL penalty 관련 ablation이다. 노이즈가 낀 원본 RM으로 PPO를 돌리면 KL penalty 계수를 제거했을 때 KL divergence가 요동치며 학습이 불안정해지는데, flip + margin + soft label로 정제한 RM은 KL penalty를 완전히 빼도 KL divergence가 선형적으로 완만하게 증가할 뿐 학습이 안정적으로 유지된다. 이는 RM 노이즈가 곧 reward hacking과 학습 불안정의 근본 원인 중 하나임을 시사하고, 10편에서 다룰 과최적화 스케일링 법칙과 정확히 맞닿아 있다. 실험은 영어 RM은 LLaMA-7B, 중국어 RM은 OpenChineseLLaMA-7B를 백본으로 사용했다.

Conclusion

이 논문의 결론은 단순하지만 파급력이 크다. RM 학습에서 손실 함수나 아키텍처를 아무리 정교하게 다듬어도, 학습 데이터의 4분의 1이 잘못됐거나 애매하다면 그 위에서 배운 reward는 태생적으로 흔들린다. 다중 RM 투표로 측정한 선호 강도라는 지표 하나로 이 문제를 정량화하고, flip·label smoothing·adaptive margin이라는 세 가지 처방으로 나눠 대응한다는 것이 이 글의 핵심이었다. 여기에 contrastive learning으로 표현력을, meta-learning(MetaRM)으로 policy 분포 이동에 대한 적응력을 더해, iterative RLHF 전 과정에서 RM이 계속 쓸모 있게 만든다.

이걸 실무에 그대로 옮기면 아래와 같은 자가 진단표가 된다. 거창한 인프라 없이도 지금 가진 선호 데이터셋이 얼마나 건강한지 점검할 수 있다.

점검 항목 확인 방법 위험 신호 조치
RM 앙상블 확보 seed·서브셋을 바꿔 \(M \geq 3\text{–}10\)개 RM 독립 학습 앙상블을 만들 여력이 없음 최소 dropout 앙상블로라도 \(\hat\mu_i, \hat\sigma_i\) 근사
\(\hat\mu_i\) 분포 점검 전체 쌍에 대해 \(\hat\mu_i\) 히스토그램 \(\hat\mu_i < 0\) 비율이 20% 이상 하위권부터 사람이 재검수 후 flip
\(\hat\sigma_i\) 분포 점검 U자형 여부 확인 극단 구간에서 \(\hat\sigma_i\) 급증 해당 outlier 쌍만 별도로 재라벨링
애매 구간 처리 \(\hat\mu_i \approx 0\) 비율 확인 20% 이상이 애매 label smoothing 적용, BT 손실로 억지 학습 금지
강한 선호 과최적화 상위권 쌍의 학습 loss 수렴 속도 관찰 몇 스텝 만에 loss가 0 근처로 붕괴 adaptive margin 추가
OOD·iterative 대응 여러 라운드 RLHF를 계획 중인가 RM을 한 번만 학습해 여러 라운드 재사용 MetaRM류 meta-update 또는 라운드마다 재학습

이 표에서 하나라도 “위험 신호” 칸에 걸린다면, 그 다음으로 손댈 곳은 아키텍처가 아니라 데이터 파이프라인이라는 게 이 논문의 주장이다.

이 결론이 남기는 부채는 두 가지다. 첫째, 이 논문은 여전히 선호를 1차원 스칼라로 다룬다. helpful과 harmless가 충돌하는 쌍, 즉 애초에 “무엇을 기준으로 우열을 가릴지”가 다차원적인 문제는 건드리지 않는다. 이 문제는 뒤에서 다룰 다목적 분해(ArmoRM)나 helpfulness·safety RM을 아예 분리해버리는 8편 Llama 2의 실무적 해법으로 이어진다. 둘째, 이 논문의 20%/20%/60%/10%라는 경계는 이 논문이 쓴 HH-RLHF 데이터셋에서 튜닝된 값이지 보편 상수가 아니다. 대규모로 이 문제를 시스템화해서 데이터 큐레이션 파이프라인 자체를 만든 사례가 바로 다음 6편 Skywork-Reward다. 그리고 이렇게 정제된 RM이 실제로 PPO 루프 안에서 어떻게 굴러가는지는 자매편인 Part I에서 다룬다.

참고 문헌


RL Reward 설계 시리즈

이 글은 RL Reward 설계 시리즈의 다섯 번째 글이다.

1부. 지형도

  1. Deep RL from Human Preferences (Christiano 2017) — 선호로 보상을 배우는 원형
  2. InstructGPT (Ouyang 2022) — RLHF 3단계 표준 레시피
  3. HH-RLHF (Bai 2022) — helpful·harmless preference model

2부. 스칼라 RM 해부

  1. Rethinking Bradley-Terry (2024) — reward 변환의 수학적 기반
  2. (현재 글) Secrets of RLHF II (2024) — 선호 데이터 노이즈와 RM 일반화
  3. Skywork-Reward (2024) — 데이터 큐레이션이 아키텍처를 이긴다
  4. ArmoRM (2024) — 다목적 분해와 MoE 게이팅
  5. Llama 2 (2023) — helpfulness·safety RM 분리 프로덕션 레시피
  6. RewardBench 2 (2025) — RM을 어떻게 평가할 것인가

3부. Reward Hacking

  1. Overoptimization Scaling Laws (2022) — Goodhart의 법칙 정량화
  2. Length Correlations in RLHF (2023) — 성능 향상의 얼마가 길이인가
  3. ODIN (2024) — 길이를 reward에서 분리
  4. Sycophancy (2023) — RM은 사실보다 동의를 좋아한다
  5. WARM (2024) — weight averaging으로 hacking 방어

4부. 안전성 정렬

  1. Safe RLHF (2023) — 안전성을 reward가 아니라 제약으로
  2. Rule-Based Rewards (2024) — 안전 규칙을 reward로 직접 번역
  3. Deliberative Alignment (2024) — 안전 명세를 모델의 추론 안으로
  4. Shallow Safety Alignment (2024) — 정렬은 첫 몇 토큰에만 얹혀 있다
  5. OR-Bench (2024) — 과잉 거절을 어떻게 측정할 것인가

5부. reward를 정책으로

  1. PPO (2017) — clipped surrogate objective
  2. Secrets of RLHF I (2023) — PPO 학습 안정화 트릭
  3. GRPO / DeepSeekMath (2024) — value network를 버리다
  4. RLOO (2024) — REINFORCE로 충분한가
  5. DPO (2023) — reward를 없애면 어떻게 되는가
  6. SimPO (2024) — reference-free + 길이 정규화
  7. KTO (2024) — 선호 쌍 없이 이진 신호만으로
  8. GSPO (2025) — importance ratio를 시퀀스 단위로
  9. DAPO (2025) — 신호 없는 프롬프트를 버린다
  10. BOND (2024) — Best-of-N을 추론 비용 없이
  11. WARP (2024) — 정책을 weight space에서 병합

6부. Process & Verifiable Reward

  1. Let's Verify Step by Step (2023) — 과정 감독이 결과 감독을 이긴다
  2. Math-Shepherd (2023) — 사람 라벨 없는 PRM
  3. DeepSeek-R1 (2025) — RLVR, 규칙이 reward가 될 때

7부. Generative Reward Model

  1. Prometheus 2 (2024) — 오픈 평가자 모델과 rubric 조건부 평가
  2. Generative Verifiers (2024) — reward를 next-token prediction으로
  3. Generative Reward Models (2024) — GenRM과 선호 학습의 결합
  4. Self-Taught Evaluators (2024) — 사람 라벨 없이 judge를 키우다
  5. DeepSeek-GRM / SPCT (2025) — inference-time scaling

8부. 생각하는 Judge

  1. ReasonGRM (2025) — reasoning 능력을 judge에 이식
  2. J1 (2025) — RL로 judge를 생각하게 만들기
  3. Rubrics as Rewards (2025) — 비검증 도메인으로
  4. CriticEval (2024) — judge 자체를 어떻게 평가하나
  5. One Token to Fool LLM-as-a-Judge (2025) — GenRM도 뚫린다

9부. 에이전트는 무엇이 다른가

  1. 에이전트 RL은 무엇이 다른가 — 장기 지평·희소 보상·긴 궤적
  2. 공을 어디에 돌릴 것인가 — credit assignment 47개 방법의 지도
  3. 멀티턴 RL 실무 가이드 — 무엇이 실제로 작동하는가

10부. credit assignment — 공을 어디에 돌릴 것인가

  1. 결과만으로는 부족하다 — 장기 지평에서 증폭되는 RLVR의 한계
  2. 턴 단위로 공을 나눈다 — turn-level reward 설계
  3. 스텝을 단위로 삼는다 — 행동 단위 궤적 표현과 credit
  4. 토큰과 세그먼트로 더 잘게 — 세밀한 입도의 득과 실
  5. shaping은 약인가 독인가 — 중간 보상의 효율과 위험

11부. 에이전트의 reward는 어디서 오나

  1. 환경이 곧 reward다 — 샌드박스·테스트·상태 검증
  2. 도구 호출을 어떻게 채점하나 — ToolRL·ToolRM
  3. 궤적을 judge가 채점한다 — rubric 생성형 reward의 확장

12부. 에이전트 도메인별 설계

  1. 검색 에이전트 — Search-R1에서 DeepDive까지
  2. 코드 에이전트 — SWE-RL과 테스트라는 reward
  3. 웹·GUI 에이전트 — end-to-end 멀티턴 RL

13부. 에이전트의 실패와 방어

  1. 에이전트의 reward hacking — 판정기가 뚫린다, 그리고 조합의 실패

14부. 실전 종합

  1. 프론티어의 helpfulness reward 설계 — 열한 개 모델이 능력 축에서 택한 것
  2. 프론티어의 harmlessness reward 설계 — 안전 축과 over-refusal 트레이드오프
  3. 프론티어 모델은 실제로 어떻게 하나 — 최신 모델들의 agentic RL 설계
  4. reward를 어떻게 설계할 것인가 — 시리즈를 관통한 RM 설계 원칙 한 장

본 시리즈는 62편으로 구성된다.




Enjoy Reading This Article?

Here are some more articles you might like to read next: