Deep RL from Human Preferences: 보상 함수를 사람의 선호로 배우다

Deep Reinforcement Learning from Human Preferences (Christiano et al., OpenAI/DeepMind, NeurIPS 2017)

Introduction

로봇에게 “테이블을 치워라” 혹은 “계란을 스크램블해라”를 시키고 싶다고 하자. 강화학습으로 풀려면 보상 함수 \(r(o, a)\)가 있어야 하는데, 이걸 로봇의 센서 값(카메라 픽셀, 관절 각도)만으로 어떻게 수식으로 적을 수 있을까? “계란이 완전히 뒤집혔다”를 픽셀 값의 함수로 짜는 것부터가 막막하다. 대충 비슷한 근사 보상을 손으로 짜면, 에이전트는 그 근사식을 곧이곧대로 최적화해서 원래 의도와는 다른 행동으로 새버린다. 이게 이 논문이 1절에서 던지는 문제, reward specification 문제다.

이 논문의 해결책은 단순하다. 보상 함수를 사람이 직접 설계하지 않고, 사람에게 두 개의 짧은 행동 영상을 보여주고 어느 쪽이 더 나은지 물어서 그 비교 데이터로부터 보상 함수를 배운다. 그리고 그렇게 배운 보상 함수로 정책을 강화학습으로 최적화한다. 저자들은 이 방법으로 사람이 시연조차 할 수 없는 태스크 — 예를 들어 관절이 여러 개인 비인간형 로봇에게 백플립을 시키는 것 — 를 단 900번의 비교 질문, 한 시간이 채 안 되는 사람 노동으로 학습시켰다.

이 구조에서 눈여겨봐야 할 선택이 세 가지 있다.

  1. 점수(scalar)가 아니라 비교(pairwise)를 묻는다. 사람은 “이 클립에 8.3점을 줘라”보다 “이 클립이 저 클립보다 낫다”를 훨씬 일관되게 답한다. 이 선택 하나가 이후 모든 RLHF 파이프라인의 라벨링 방식을 결정했다.
  2. 정책 학습과 보상 모델 학습이 동시에, 비동기로 돈다. 정책이 새로운 궤적을 만들고, 그 궤적 일부가 사람에게 비교 질의로 나가고, 그 라벨이 다시 보상 모델을 갱신하고, 갱신된 보상 모델이 다시 정책을 학습시킨다. 이 루프를 끊고 보상 모델을 한 번만 오프라인으로 학습시키면 무슨 일이 벌어지는지, 이 논문은 정확히 보여준다 — 그리고 그게 reward hacking의 첫 증거다.
  3. 사람 피드백은 전체 상호작용의 1% 미만만 쓴다. Atari 환경에서 에이전트는 최대 5천만(5×10⁷) 프레임을 경험하는데, 사람이 라벨을 붙인 것은 5,500개의 1~2초짜리 클립뿐이다.

이 세 가지 선택은 5년 뒤 InstructGPT에서 “SFT → reward model → PPO” 3단계로 정식화된다. Conclusion에서 이 연결을 다시 짚는다.

Background

왜 손으로 짠 보상이 위험한가

전통적인 심층 강화학습은 잘 정의된 보상 함수가 있는 도메인(Atari 점수, 바둑 승패)에서 성공했다. 문제는 실세계 태스크 대부분이 그런 명확한 보상이 없다는 점이다. 사람이 얼추 의도를 반영한 근사 보상을 손으로 짜면, 에이전트는 그 근사식의 허점을 정확히 찾아내 원래 의도와 다른 방식으로 점수를 올린다. 저자들은 이걸 최근 부상하던 AI 안전 논의(Bostrom 2014, Russell 2016, Amodei et al. 2016의 “Concrete Problems in AI Safety”)와 직접 연결한다 — 값과 목적함수의 불일치(misalignment)라는 더 큰 문제의 축소판이라는 것이다.

기존에 있던 두 가지 대안도 각각 한계가 있다.

방식 사람이 제공하는 것 한계
직접 설계한 reward function 없음 (엔지니어가 수식을 짬) 의도와 실제 최적화 대상이 어긋나기 쉬움
Demonstration / Imitation / Inverse RL 시연(demonstration) 사람이 직접 수행할 수 없는 태스크엔 못 씀 (예: 자유도가 많고 사람과 다른 몸을 가진 로봇)
TAMER류 rating (Knox 2012) 상태·행동에 대한 절대 점수 절대 점수는 스케일이 흔들리고 일관성 유지가 어려움. 사람 시간도 훨씬 더 필요
Pairwise preference (본 논문) “이게 낫다” 상대 비교 비교만으로 학습 가능. 절대 점수보다 훨씬 일관됨

왜 비교가 절대 점수보다 나을까. 와인 감별사에게 “이 와인에 10점 만점에 몇 점을 줄 것인가”를 물으면 사람마다, 심지어 같은 사람도 시점마다 기준이 흔들린다. 반면 “이 와인과 저 와인 중 뭐가 낫냐”는 훨씬 안정적으로 답한다. 절대 척도를 유지하는 것 자체가 인지적으로 부담이 크기 때문이다. 이 논문도 3.3절 실험에서 “연속 제어 태스크에서 비교를 예측하는 쪽이 점수를 직접 회귀하는 것보다 훨씬 잘 됐다”고 명시한다 — 점수의 절대 스케일이 태스크마다 크게 달라 회귀 문제가 어려워지는데, 비교만 예측하면 이 문제가 사라진다.

궤적 세그먼트와 두 종류의 평가

에이전트는 매 스텝 관측 \(o_t\)를 받고 행동 \(a_t\)를 내보낸다. 전통적 RL이라면 환경이 보상 \(r_t\)를 주지만, 여기서는 그 대신 사람 오버시어가 궤적 세그먼트(trajectory segment) 쌍에 대해 선호를 표현한다. 세그먼트는 길이 \(k\)의 관측·행동 시퀀스다.

\[\sigma = ((o_0, a_0), (o_1, a_1), \ldots, (o_{k-1}, a_{k-1}))\]

\(\sigma^1 \succ \sigma^2\)는 “사람이 \(\sigma^1\)을 \(\sigma^2\)보다 선호했다”는 뜻이다. 저자들은 알고리즘의 성능을 두 방식으로 평가한다.

  • Quantitative(정량): 실제 보상 함수 \(r\)이 존재하는 벤치마크 태스크에서, 알고리즘이 그 \(r\)을 몰라도 \(r\)을 아는 것처럼 학습하는지 본다.
  • Qualitative(정성): 백플립처럼 애초에 보상 함수가 없는 태스크에서, 자연어로 목표를 던지고 사람이 결과 영상을 보고 만족스러운지 판단한다.

Method

세 개의 프로세스가 비동기로 돈다

이 방법은 정책 \(\pi: O \to A\)와 보상 함수 추정치 \(\hat r: O \times A \to \mathbb{R}\)을 동시에 유지한다. 둘 다 심층신경망이다. 세 프로세스가 서로 다른 속도로 병렬 실행된다.

프로세스 하는 일 담당 알고리즘
(1) 정책 롤아웃 \(\pi\)가 환경과 상호작용해 궤적 \(\{\tau^1, \ldots, \tau^i\}\) 생성. \(\pi\)는 \(r_t = \hat r(o_t, a_t)\)의 합을 최대화하도록 갱신 Atari는 A2C, MuJoCo는 TRPO
(2) 라벨 수집 (1)에서 나온 궤적들 중 세그먼트 쌍 \((\sigma^1, \sigma^2)\)을 골라 사람에게 질의 앙상블 불일치 기반 uncertainty sampling
(3) 보상 모델 학습 지금까지 쌓인 비교 데이터베이스 \(D\)로 \(\hat r\)을 지도학습으로 갱신 Bradley-Terry cross-entropy

흐름은 (1)→(2)로 궤적이, (2)→(3)으로 사람 라벨이, (3)→(1)로 갱신된 \(\hat r\) 파라미터가 흐른다. 세 프로세스가 동시에 돈다는 것이 핵심이다 — 정책이 계속 새로운 상태를 방문하면, 보상 모델도 그 새 상태에 대한 라벨을 계속 받아 따라간다.

정책 최적화: 흔들리는 목표를 쫓기

\(\hat r\)로 보상을 계산하고 나면 남은 건 평범한 RL 문제다. 다만 \(\hat r\)이 계속 갱신되므로 비정상(non-stationary) 보상이라는 게 특이점이다. 이 때문에 저자들은 정책 그래디언트 계열(A2C, TRPO)을 골랐고, TRPO에서 유일하게 손댄 하이퍼파라미터가 엔트로피 보너스다. TRPO는 신뢰 영역(trust region)에 의존해 탐색을 확보하는데, 보상이 계속 바뀌면 이 신뢰 영역만으로는 탐색이 부족해질 수 있어서다. 또한 \(\hat r\)이 출력하는 보상은 평균 0, 표준편차 일정하게 정규화해서 쓴다 — 보상의 절대 위치 자체가 학습 문제상 정해져 있지 않기 때문이다.

사람에게는 1~2초 클립을 보여준다

사람 오버시어는 두 궤적 세그먼트를 짧은 영상(1~2초)으로 본다. 응답은 세 가지 — “1번이 낫다”, “2번이 낫다”, “둘 다 비슷하다/비교 불가”다. 이 판단은 삼중항(triple) \((\sigma^1, \sigma^2, \mu)\)로 데이터베이스 \(D\)에 쌓인다. \(\mu\)는 \(\{1, 2\}\) 위의 분포로, 한쪽을 선택하면 그쪽에 확률 1을 몰아주고, 동률이면 균등분포(0.5, 0.5)를 준다. 비교 불가로 표시된 경우는 아예 \(D\)에 넣지 않는다.

왜 클립이 1~2초일까. 저자들은 단일 프레임(길이 1)으로 비교시키면 같은 성능을 내기 위해 훨씬 많은 비교가 필요함을 확인했다. 반대로 클립이 길수록 클립당(per clip) 정보량은 늘지만, 1~2초 밑으로 짧게 자른다고 라벨링에 걸리는 시간이 별로 줄지 않아 초당(per second) 정보량은 오히려 나빠진다. 그래서 1~2초가 실측으로 찾은 균형점이다.

Bradley-Terry 모델과 cross-entropy loss

\(\hat r\)을 궤적 세그먼트에 대한 잠재 보상으로 보고, 사람이 \(\sigma^1\)을 선호할 확률이 그 잠재 보상 합의 지수함수에 비례한다고 가정하면 다음 식이 나온다.

\[\hat P[\sigma^1 \succ \sigma^2] = \frac{\exp \sum \hat r(o_t^1, a_t^1)}{\exp \sum \hat r(o_t^1, a_t^1) + \exp \sum \hat r(o_t^2, a_t^2)}\]

기호를 하나씩 풀면:

  • \(\sum \hat r(o_t^1, a_t^1)\): 세그먼트 \(\sigma^1\)을 이루는 각 스텝의 예측 보상을 전부 더한 값. “이 1~2초 동안 얼마나 좋았는가”의 총점이다.
  • 분자: \(\sigma^1\)의 총점을 지수함수에 태운 값.
  • 분모: 두 세그먼트 총점을 각각 지수함수에 태워 더한 값.

즉 두 총점의 차이가 클수록 \(\hat P\)는 0 또는 1에 가까워지고, 비슷하면 0.5 근처에 머문다. 이건 페어와이즈 비교로부터 점수 함수를 추정하는 Bradley-Terry 모델(1952)이자, Luce-Shephard 선택 규칙의 특수 케이스다. 이 식이 그대로 수년 뒤 RLHF 보상 모델(InstructGPT, HH-RLHF 등)의 손실 함수로 재사용된다.

이 예측과 실제 사람 라벨 사이의 cross-entropy를 최소화하도록 \(\hat r\)을 학습한다.

\[\text{loss}(\hat r) = -\sum_{(\sigma^1, \sigma^2, \mu) \in D} \Big( \mu(1) \log \hat P[\sigma^1 \succ \sigma^2] + \mu(2) \log \hat P[\sigma^2 \succ \sigma^1] \Big)\]

\(\mu(1) = 1\)이면(사람이 1번을 선택) 손실은 \(-\log \hat P[\sigma^1 \succ \sigma^2]\) 하나만 남는다 — 모델이 1번을 낮게 예측했을수록 손실이 커지고, 그래디언트는 \(\hat r\)이 \(\sigma^1\)에 더 높은 값을 주도록 밀어붙인다.

토이 예제: 손실이 어떻게 움직이는가

작은 숫자로 직접 계산해보자. 어떤 시점에 보상 모델이 두 세그먼트에 대해 \(\sum \hat r(\sigma^1) = 2.0\), \(\sum \hat r(\sigma^2) = 0.5\)를 예측했다고 하자.

\[\hat P[\sigma^1 \succ \sigma^2] = \frac{e^{2.0}}{e^{2.0} + e^{0.5}} = \frac{7.39}{7.39 + 1.65} \approx 0.817\]

모델은 지금 “82% 확률로 사람이 1번을 고를 것”이라 예측한 상태다. 이제 실제 사람 라벨에 따라 손실이 어떻게 갈리는지 보자.

실제 사람 라벨 손실 계산 손실 값 해석
1번 선호 (\(\mu(1)=1\)) \(-\log(0.817)\) 약 0.20 모델 예측이 맞았다 → 작은 그래디언트
2번 선호 (\(\mu(2)=1\)) \(-\log(0.183)\) 약 1.70 모델이 크게 틀렸다 → 큰 그래디언트, \(\hat r(\sigma^1)\)을 낮추고 \(\hat r(\sigma^2)\)를 올리는 방향
동률 (\(\mu(1)=\mu(2)=0.5\)) \(0.5 \times 0.20 + 0.5 \times 1.70\) 약 0.95 중간 크기 손실

모델이 확신을 가지고 틀렸을 때(2번째 행) 손실과 그래디언트가 가장 크다는 걸 숫자로 확인할 수 있다.

개선 사항 세 가지

기본 식만으로는 부족해서 저자들은 세 가지를 더했다.

  1. 앙상블 + 부트스트랩: 예측기 여러 개를 각각 \(D\)에서 복원추출한 \(\lvert D \rvert\)개 샘플로 학습시키고, 각각을 독립적으로 정규화한 뒤 평균낸다. 학습에 쓰인 부트스트랩 샘플에서 평균적으로 \(1/e \approx 36.8\%\)는 뽑히지 않는데, 이 남는 부분을 예측기별 검증 세트로 쓴다(전통적인 bagging의 out-of-bag 비율과 동일한 값이다). \(L_2\) 정규화 계수는 검증 손실이 학습 손실의 1.1~1.5배가 되도록 조정한다.
  2. 10% 무작위 응답 가정: 순수 소프트맥스만 쓰면 보상 차이가 극단적으로 벌어질 때 확률이 0이나 1로 수렴하는데, 실제 사람은 아무리 명백한 비교에서도 일정 확률로 실수를 한다. 그래서 “사람이 10% 확률로 완전히 무작위로 답한다”는 가정을 섞어 극단 확신을 누그러뜨린다.
  3. 불일치 기반 질의 선택: 최근 궤적에서 세그먼트 쌍을 대량으로 뽑고, 앙상블의 각 예측기가 어느 쪽을 선호하는지 예측시킨 뒤, 예측기들끼리 의견이 가장 갈리는(분산이 큰) 쌍만 사람에게 보낸다. 오디션 심사위원 세 명이 만장일치면 재심사가 필요 없고, 의견이 갈리는 참가자만 다시 불러 세밀히 보는 것과 같은 원리다. 저자들 스스로 “정보가치 기대값(expected value of information)을 직접 쓰는 게 이상적이지만 이건 조악한 근사”라 인정하며, 실제로 일부 태스크에서는 무작위 질의보다 오히려 성능이 떨어지기도 했다.

Distribution shift와 reward hacking의 첫 증거

세 프로세스를 비동기로 돌리는 이유가 여기서 드러난다. 만약 보상 모델을 학습 초반에만 모은 라벨로 딱 한 번 학습시키고(오프라인), 그 뒤로는 고정한 채 정책만 계속 학습시키면 어떻게 될까. 정책은 시간이 지나며 보상 모델이 한 번도 보지 못한 새로운 궤적 분포로 이동한다(distribution shift). 이 낯선 영역에서 보상 모델의 예측은 더 이상 신뢰할 수 없는데, 정책은 개의치 않고 그 부정확한 예측치를 계속 최대화한다.

저자들이 실제로 관찰한 사례가 Pong이다. 보상 모델을 오프라인으로 학습시켰더니, 에이전트는 점수를 얻으려 하지 않고 점수를 잃지 않으려고만 했다 — 랠리를 비정상적으로 길게 끄는 행동으로 수렴한 것이다. 참 보상(true reward) 기준으로는 명백히 이상한 행동인데, 고정된 \(\hat r\) 입장에서는 최적이었던 셈이다. 이게 학습된 보상을 정책이 과최적화하는 현상, 즉 reward hacking의 초기 사례다. 온라인(비동기)으로 라벨을 계속 흘려 넣어 보상 모델이 정책을 따라가게 하는 것이 이 문제에 대한 이 논문의 유일한 방어선이었다.

Experiments

실험 세팅

라벨링은 계약직 작업자(contractor)가 담당했다. 각 태스크에 대해 1~2문장짜리 설명만 받고 수백~수천 쌍의 세그먼트를 비교했다. 질의 하나당 평균 응답 시간은 3~5초였고, 실험 하나에 든 총 인간 시간은 30분에서 5시간 사이였다.

MuJoCo: 700건으로 실제 보상에 근접, 1400건으로는 앞선다

Walker, Hopper, Swimmer, Cheetah, Ant, Reacher, Double-pendulum, Pendulum 8개 태스크에서 실험했다.

조건 결과
사람 라벨 700건 안팎(그림 범례 750건) 8개 태스크 전반에서 실제 보상으로 학습한 RL을 거의 따라잡음
합성 라벨 1,400건 실제 보상으로 직접 학습한 RL보다 오히려 살짝 더 나은 성능 — 배운 보상 함수가 더 매끄럽게 형태를 잡아준 덕
실제 사람 라벨 vs 합성 라벨 같은 라벨 수 기준 사람 라벨은 합성 라벨의 절반~동등 수준 효율
Ant 태스크 사람 라벨이 합성 라벨을 크게 앞섬 — 사람이 “로봇이 똑바로 서 있는” 자세를 선호했고, 이게 훌륭한 보상 셰이핑으로 작용

Ant의 경우가 흥미롭다. 손으로 짠 보상 함수에도 “똑바로 서 있으면 보너스”를 넣었지만 효과가 크지 않았는데, 사람이 비교로 암묵적으로 표현한 “직립”에 대한 선호가 오히려 더 유용한 셰이핑이 됐다. 사람이 자연어 보너스 항으로 명시하기 어려운 선호를 비교로는 쉽게 전달했다는 뜻이다.

Atari: 게임마다 편차가 크다

BeamRider, Breakout, Pong, Qbert, Seaquest, SpaceInvaders, Enduro 7개 게임, 사람 라벨 5,500건으로 학습시켰다.

게임 결과
BeamRider, Pong 합성 라벨은 3,300건만으로도 RL에 근접·필적
Seaquest, Qbert 합성 라벨로 결국 RL 수준에 도달(느리게)
Breakout, SpaceInvaders 합성 라벨로도 RL을 못 따라잡지만 확실히 학습은 함 (Breakout 점수 20~50, SpaceInvaders 1단계 통과)
Qbert (사람 라벨) 1단계도 못 넘음 — 짧은 클립이 헷갈리고 평가하기 어려운 게임이라서
Enduro 합성 라벨은 전혀 학습 못 함(무작위 탐색으로는 추월이 거의 안 일어남). 사람 라벨은 오히려 원 RL 베이스라인(A3C)보다 나은 성능(DQN과 비슷한 수준) — 차를 추월하려는 아주 작은 진전에도 보상을 줘서 자연스러운 셰이핑 효과를 냄

정리하면 사람 라벨은 대부분의 게임에서 같은 개수의 합성 라벨과 비슷하거나 살짝 못한 성능을 냈지만, 합성 라벨보다 40% 적은 라벨로도 비슷한 성능을 내는 경우가 흔했다. 사람의 판단이 단순 점수 차이보다 풍부한 정보를 담고 있다는 방증이다.

새로운 행동: 보상 함수가 아예 없던 태스크

위 그림은 Hopper 로봇이 실제로 배운 백플립 동작의 연속 프레임이다. 참 보상 함수가 아예 없는 상태에서, 오직 사람의 비교 라벨만으로 학습시킨 세 가지 사례를 소개한다.

행동 사용한 라벨 수 소요 시간
Hopper 백플립 반복 900건 1시간 이내
Half-Cheetah가 한 다리로 서서 전진 800건 1시간 이내
Enduro에서 다른 차와 나란히 주행 유지 약 1,300건 (+ 400만 프레임 상호작용)

900건, 800건이라는 숫자가 특히 인상적이다. 사람에게 “백플립을 시켜라”라는 지시를 코드로 옮기는 건 사실상 불가능에 가깝지만, “이 클립이 저 클립보다 백플립에 가깝다”는 판단을 900번 받는 건 한 사람이 커피 한 잔 마시는 시간에 끝나는 일이다.

라벨 예산을 숫자로 보면

Abstract가 던진 “<1% 라벨”이라는 주장을 실제 숫자로 감을 잡아보자. Atari 실험은 최대 \(5 \times 10^7\) 프레임의 환경 상호작용을 쓰는데, 사람이 라벨을 붙인 건 5,500개의 1~2초 클립뿐이다. 60fps 기준 클립 하나가 대략 60~120프레임이라 치면 사람이 “본” 프레임 수는 대략 \(5{,}500 \times 100 \approx 5.5 \times 10^5\) 프레임 — 전체 상호작용의 1%를 겨우 넘는 수준이다. Discussion에서 저자들은 이를 “상호작용 복잡도를 대략 3자릿수(3 orders of magnitude) 줄였다”고 요약한다. 손으로 보상 함수를 짜는 대신, 이 정도 예산으로 사람의 의도를 심층 RL에 주입할 수 있다는 게 이 논문의 핵심 주장이다.

Ablation이 보여주는 것

제거한 요소 결과
무작위 질의(random queries) 태스크에 따라 성능 저하 또는 무영향 — uncertainty sampling의 효과가 보편적이지 않음을 시사
앙상블 제거(no ensemble) 단일 예측기만 사용, 질의도 무작위로 전환
온라인 질의 제거(no online queries) 학습 초반에만 라벨 수집 → Pong에서 앞서 설명한 긴 랠리 이상 행동 발생
정규화 제거(no regularization) \(L_2\) 대신 dropout만 사용
세그먼트 제거(no segments) 로보틱스에서 길이 1짜리 스텝 단위로 비교
비교 대신 절대값(target) 오라클이 세그먼트의 실제 총 보상을 알려주고 MSE로 학습 — 비교 기반과 우열이 태스크마다 갈림

이 표에서 가장 중요한 행은 “온라인 질의 제거”다. 보상 모델이 정책을 따라가지 못하면(distribution shift가 방치되면) 참 보상 기준으로는 이상한 행동이 최적으로 둔갑한다는 걸 이 ablation이 정량적으로 확인해준다.

Conclusion

한 줄로 요약하면: 이 논문은 “사람에게 점수 대신 비교를 묻고, 그 비교로 보상 모델을 학습시키고, 그 보상 모델로 정책을 강화학습시키되, 이 세 과정을 비동기로 계속 맞물리게 돌린다”는 구조를 제시했고, 이 구조가 이후 모든 RLHF의 골격이 됐다.

핵심을 정리하면,

  1. 문제: 보상 함수를 손으로 짜는 건 어렵고 위험하다(reward hacking). 시연도, 절대 점수도 대안으로는 부족하다.
  2. 해법: Bradley-Terry 형태의 선호 확률 모델 \(\hat P[\sigma^1 \succ \sigma^2]\)와 cross-entropy loss로 보상 모델을 학습한다. 앙상블·불일치 기반 질의 선택·10% 노이즈 가정으로 안정화한다.
  3. 비용: MuJoCo는 700건, Atari는 5,500건, 백플립 같은 새 행동은 900건 — 전체 상호작용의 1% 미만으로 충분했다.
  4. 위험의 씨앗: 보상 모델을 정책과 분리해 오프라인으로 고정하면 정책이 그 부정확함을 파고들어 참 보상 기준으로는 이상한 행동(Pong 무한 랠리)에 수렴한다. 이게 이후 시리즈 전체를 관통할 reward overoptimization/hacking의 첫 관찰이다.

이 구조는 5년 뒤 거의 그대로 LLM에 이식된다. InstructGPT(Ouyang et al., 2022)의 3단계 레시피 — SFT로 초기 정책을 만들고, 사람이 여러 응답 중 순위를 매긴 데이터로 정확히 이 논문과 같은 Bradley-Terry cross-entropy 손실로 reward model을 학습하고, 그 reward model로 PPO 정책을 최적화하는 구조 — 는 이 논문의 (1)(2)(3) 프로세스를 대화형 텍스트 생성에 맞게 재배치한 것에 가깝다. 다만 LLM에서는 온라인 3-프로세스 비동기 루프 대신 라운드를 나눠 반복하는 형태로 단순화됐고, distribution shift 문제는 KL 페널티로 다른 방식으로 억제한다. 이 시리즈의 다음 글들이 그 변형들을 하나씩 따라간다.


RLHF Reward 설계 시리즈

이 글은 RLHF 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. WARM (2024) — weight averaging으로 hacking 방어

4부. 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를 없애면 어떻게 되는가

5부. Process & Verifiable Reward

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

6부. Generative Reward Model

  1. Generative Verifiers (2024) — reward를 next-token prediction으로
  2. Generative Reward Models (2024) — GenRM과 선호 학습의 결합
  3. DeepSeek-GRM / SPCT (2025) — inference-time scaling
  4. Rubrics as Rewards (2025) — 비검증 도메인으로
  5. One Token to Fool LLM-as-a-Judge (2025) — GenRM도 뚫린다

참고 문헌




Enjoy Reading This Article?

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

  • One Token to Fool: GenRM도 결국 뚫린다
  • Rubrics as Rewards: 정답이 없는 도메인에 reward를 만드는 법
  • DeepSeek-GRM: reward model이 평가 기준을 스스로 만든다
  • Generative Reward Models: GenRM과 선호 학습을 잇다
  • Generative Verifiers: reward를 분류가 아니라 생성으로 풀다