J1: RL로 judge를 생각하게 만들다
J1: Incentivizing Thinking in LLM-as-a-Judge via Reinforcement Learning (Whitehouse et al., Meta FAIR, arXiv 2025)
Introduction
이 시리즈는 이번 글에서 크게 세 갈래가 한 지점에 모인다.
- #21 DeepSeek-R1은 정답이 있는 문제(수학, 코드)에서 규칙 기반 verifiable reward로 모델을 RL로 학습시켜 생각하게 만들었다. J1은 같은 RLVR 레시피를 judge 자신에게 적용한다 — 판정을 내리는 모델도 생각을 하면 더 정확해진다는 가설이다.
- #29 Rubrics as Rewards는 애초에 정답이 없는 도메인(의료 상담, 개방형 질의)을 사람이 쓴 채점 기준표로 검증 가능하게 바꾼다. J1은 같은 문제 — “비검증 프롬프트를 어떻게 RL로 학습할 것인가” — 를 전혀 다른 방식으로 푼다. 기준표를 쓰는 대신 판정 태스크의 구조 자체를 조작해 정답을 자동으로 만들어낸다.
- #31 One Token to Fool LLM-as-a-Judge는 GenRM judge가 얼마나 쉽게 흔들리는지, 특히 어느 응답이 먼저 제시되느냐(position)에 얼마나 취약한지를 보여준다. J1은 이 취약성 중 하나인 position bias 완화를 설계 단계에서부터 명시적 목표로 못박는다.
지금까지 이 시리즈 6부(#22~#26)는 judge를 생성 모델(GenRM)로 바꾸면 스칼라 reward model보다 유연해진다는 것을 보였다. #26 DeepSeek-GRM은 judge가 스스로 평가 원칙(principle)을 만들고 그에 따라 비평(critique)을 쓰도록 학습시켰고, #27 ReasonGRM은 reasoning 능력이 뛰어난 모델의 풀이 흔적을 골라내 judge에 주입했다. 두 글 모두 “judge가 더 잘 판정하려면 더 잘 생각해야 한다”는 전제는 같지만, 그 생각하는 능력을 어떻게 얻게 할 것인가에서 갈렸다 — 원칙 생성이라는 행동을 SFT로 심거나(GRM), 좋은 추론 경로를 골라내거나(ReasonGRM).
J1은 세 번째 길을 연다. judge의 CoT 자체를 RL로 직접 최적화하는 것이다. 그런데 RL은 reward가 있어야 돌아가고, “이 판정이 맞았는가”는 애초에 정답이 없는 프롬프트(에세이 첨삭, 여행 코스 추천 같은)에서는 정의하기 어렵다. J1의 전부는 이 문장 하나로 요약된다 — 검증 가능한 프롬프트와 검증 불가능한 프롬프트를 모두 하나의 형식으로 바꿔, 판정 자체에 verifiable reward를 붙인다. 그 결과 8B·32B·70B 세 규모의 judge가 만들어졌고, 그중 J1-Qwen-32B는 RewardBench에서 93.6점을 받아 o1-mini(87.1), o3(86.4), 그리고 20배 넘게 큰 DeepSeek-R1-671B(90.6)를 모두 앞질렀다 — 그것도 합성 데이터 22K건만으로 학습해서다.
Background
RLVR 레시피를 다시 꺼내며
#21 DeepSeek-R1에서 정리했듯 RLVR(Reinforcement Learning from Verifiable Rewards)의 골자는 간단하다. 정답을 채점 함수로 확인할 수 있는 문제(수학 답, 코드 테스트 통과 여부)라면, 사람이 개입하지 않아도 규칙만으로 reward를 줄 수 있다. 모델은 이 reward를 높이려고 스스로 생각의 길이를 늘리고, 중간에 스스로를 되짚는 행동(self-verification)을 학습한다.
문제는 judge를 학습시키려는 순간 발생한다. judge가 맞혀야 할 “정답”은 “어느 응답이 더 나은가”인데, 이건 수학 답과 달리 채점 함수가 없다. 특히 WildChat류의 일반 대화 프롬프트(“이직 이력서 어떻게 써?”, “제주도 여행 코스 짜줘”)에는 애초에 절대적으로 옳은 응답이 없다.
pairwise와 pointwise, 그리고 judge 포맷
judge를 만드는 방식은 크게 두 갈래다. pairwise는 두 응답을 동시에 보여주고 우열을 가리게 하고(#23 Generative Verifiers), pointwise는 응답 하나에 절대 점수를 매기게 한다(#24 Generative Reward Models). pairwise는 상대 비교라 정확하지만 두 응답의 제시 순서에 따라 판정이 흔들리는 position bias에 취약하다 — 같은 두 응답을 순서만 바꿔 다시 보여주면 judge가 다른 결론을 낸다. pointwise는 순서 문제는 없지만 절대 점수의 캘리브레이션이 어렵다.
J1은 이 둘을 모두 학습하고 결국 하나의 모델로 합친다(MultiTask-J1). 그 전에 먼저, 이 두 포맷 모두가 요구하는 재료 — “정답이 알려진 (프롬프트, 우수 응답, 열등 응답)” 삼중항 — 을 어떻게 조달하는지가 이 논문의 핵심이다.
Method
핵심 트릭: 판정을 검증 가능한 태스크로 바꾸기

그림 위쪽 절반이 원래도 검증 가능한 프롬프트(MATH 같은), 아래쪽 절반이 검증 불가능한 프롬프트(WildChat 같은)를 다루는 경로다. 두 경로 모두 결국 같은 상자로 합류한다 — “User Prompt \(x\), Chosen Response \(a\), Rejected Response \(b\), Winner \(a\)”. judge 입장에서는 이 삼중항이 어느 경로에서 왔는지 알 수 없다. 그냥 정답이 달린 (프롬프트, 응답 쌍)이 하나 도착할 뿐이다.
검증 가능한 프롬프트(MATH): 정답과 대조해서 고른다
- 프롬프트 \(x\)를 LLM에 여러 번 샘플링해 응답 \(R_1, \dots, R_N\)을 만든다.
- 각 응답을 정답과 대조해 채점한다(Verification) — 맞으면 통과, 틀리면 탈락.
- 맞은 응답 중 하나를 \(a\)(chosen), 틀린 응답 중 하나를 \(b\)(rejected)로 뽑는다(Pair Selection).
이 경로는 새로울 게 없다 — #19 Let’s Verify Step by Step, #20 Math-Shepherd에서부터 봐온 “정답과 대조” 방식 그대로다.
검증 불가능한 프롬프트(WildChat): 질문을 일부러 흐려서 정답을 만든다
여기가 이 논문의 전부다. 정답이 없는 프롬프트에 어떻게 “이 응답이 저 응답보다 낫다”는 자동으로 확인 가능한 정답을 붙일 수 있을까? J1의 답은 이렇다.
- 원래 프롬프트 \(x\)를 LLM에 그대로 넣어 응답 \(a\)를 받는다. 이게 chosen이다.
- 같은 LLM에게 \(x\)의 “노이즈가 낀 버전” \(x'\)를 만들게 한다 — 원래 질문의 핵심 조건을 흐리거나 엉뚱한 방향으로 비튼 변형이다.
- \(x'\)를 LLM에 넣어 응답 \(b\)를 받는다. \(b\)는 \(x'\)에는 성실하게 답한 글이지만, 원래 질문 \(x\) 입장에서 보면 핵심을 비껴간 답이다. 이게 rejected다.
- 이제 \((x, a, b)\) 삼중항이 완성됐고, 정답(winner)은 항상 \(a\)다 — \(b\)는 애초에 다른 질문에 답한 글이기 때문이다.
일상 비유로 옮기면 이렇다. 편집장이 두 기자에게 같은 취재를 시킨다고 하자. 한 명에게는 원래 취재 브리핑을 그대로 주고, 다른 한 명에게는 브리핑의 핵심 조건 하나를 몰래 바꿔치기해서 준다. 두 기자 모두 성실하게, 문장력도 비슷하게 기사를 써 온다. 하지만 원래 브리핑을 기준으로 채점하면 바꿔치기된 브리핑을 받은 기자의 기사가 구조적으로 열등할 수밖에 없다 — 애초에 다른 질문에 답했으니까. 편집장은 두 기사를 힘들게 다시 읽고 우열을 가릴 필요가 없다. 어느 기자가 원래 브리핑을 받았는지는 이미 알고 있기 때문이다.
토이 예제: 프롬프트 하나가 판정 태스크로 바뀌는 과정
원래 프롬프트 \(x\): “이직 준비 중인데, 이력서 프로젝트 경험 항목을 어떻게 써야 좋을지 알려줘.”
| 단계 | 내용 |
|---|---|
| 1. chosen 생성 | \(x\)를 LLM에 그대로 입력 → 응답 \(a\): 성과를 정량 지표로 적고 STAR(문제-행동-결과) 구조로 쓰라는 구체적 조언 |
| 2. 노이즈 프롬프트 생성 | LLM이 \(x\)를 변형 → \(x'\): “이력서에 학력 항목을 어떻게 배치해야 좋을지 알려줘” (프로젝트 경험이라는 핵심 조건이 학력으로 바뀜) |
| 3. rejected 생성 | \(x'\)를 LLM에 입력 → 응답 \(b\): 학력 배치 요령에 대한, 그 자체로는 훌륭한 조언 |
| 4. 삼중항 완성 | \((x, a, b)\), winner \(= a\) — \(b\)는 유창하지만 원래 질문 \(x\)에는 답하지 않았다 |
judge가 이 삼중항을 pairwise로 받으면 \(a\)와 \(b\) 둘 다 표면적으로는 매끄러운 조언문이다. 문장 길이나 형식만 보고 판정하면 반반 확률로 틀린다. 원래 질문 \(x\)가 무엇을 물었는지를 진짜로 이해해야만 \(b\)가 핵심을 비껴갔다는 걸 잡아낼 수 있다. 그래서 이 태스크는 “정답을 아는” judge를 만들면서도, judge가 표면적 휴리스틱이 아니라 실제 내용을 판정하도록 강제한다.
reward 설계: 정답을 맞히는 것과 흔들리지 않는 것
이제 이 삼중항으로 GRPO를 돌린다(GRPO 자체는 #16 GRPO/DeepSeekMath 참고). judge 모델 \(\pi_\theta\)는 \((x, a, b)\)를 받아 사고 과정 \(t\)와 판정 \(y\)를 함께 생성한다.
\[J_{(a,b)} = \pi_\theta(t, y \mid x, a, b), \quad J_{(b,a)} = \pi_\theta(t, y \mid x, b, a)\]같은 삼중항을 순서만 바꿔 두 번 판정하게 한다는 점이 핵심이다. 여기에 세 가지 reward가 걸린다.
verdict correctness reward — 각 순서에서 정답을 맞혔는가:
\[R_{\text{correct}}(J_{(a,b)}) = \mathbb{1}[\text{Verdict}(J_{(a,b)}) = a], \quad R_{\text{correct}}(J_{(b,a)}) = \mathbb{1}[\text{Verdict}(J_{(b,a)}) = a]\]\(\text{Verdict}(\cdot)\)은 judge가 최종적으로 고른 응답, \(\mathbb{1}[\cdot]\)은 괄호 안 조건이 참이면 1, 아니면 0인 지시함수다. 두 순서 모두 “진짜 정답 \(a\)“를 골라야 reward를 받는다.
verdict consistency reward — 순서를 바꿔도 같은 결론을 냈는가:
\[R_{\text{consist}} = \mathbb{1}[\text{Verdict}(J_{(a,b)}) = \text{Verdict}(J_{(b,a)}) = a]\]이 항이 바로 position bias 완화가 설계에서 저절로 따라 나오는 지점이다. correctness reward만 있으면 judge는 두 순서 각각에서 독립적으로 정답만 맞히면 된다 — 예컨대 “먼저 제시된 응답을 선호”하는 얕은 휴리스틱을 쓰더라도 순서가 무작위로 섞인 배치에서는 평균적으로 어느 정도 정답률을 우연히 넘길 수 있다. 하지만 같은 삼중항이 반드시 \((a,b)\)와 \((b,a)\) 두 순서로 모두 배치에 들어가고(그림의 “Position-agnostic Pairwise Batch”), consistency reward는 두 순서 모두에서 같은 응답을 답해야만 1을 준다. 비유하면 블라인드 시음 실험과 같다. 같은 두 음료를 컵 위치만 바꿔 두 번 내놓고, 위치와 무관하게 매번 같은 음료를 고를 때만 그 사람의 미각을 신뢰한다 — 왼쪽 컵을 습관적으로 고르는 사람은 이 테스트를 통과할 수 없다. “어느 자리에 놓였는가”가 아니라 “내용이 무엇인가”를 봐야만 두 reward를 동시에 최대화할 수 있도록 설계된 것이다.
score 기반 reward(PaS 포뮬레이션) — 판정 대신 점수를 매기는 경우:
\[R_{\text{score}} = \mathbb{1}[s_a^{(a,b)} > s_b^{(a,b)}]\]이때 \(s_a^{(a,b)}\)는 순서 \((a,b)\)로 제시했을 때 judge가 응답 \(a\)에 매긴 점수다. pointwise 포맷은 응답을 하나씩 독립적으로 채점하므로 순서 문제가 아예 없다. reward는 더 단순하다.
\[R_{\text{point}} = \mathbb{1}[s_a > s_b]\]다섯 가지 학습 포뮬레이션
| 이름 | 입력 → 출력 | reward | 특징 |
|---|---|---|---|
| Pairwise-Verdict(PaV) | \((x,a,b) \to (t,y)\) | correctness + consistency | 판정만 출력, 가장 단순 |
| Pairwise-Scores(PaS) | \((x,a,b) \to (t,s_a,s_b)\) | score 기반 | 두 응답에 실수 점수를 매김 |
| Pairwise-Scores&Verdict(PaVS) | \((x,a,b) \to (t,s_a,s_b,y)\) | correctness + consistency + score | 점수와 판정을 동시에 출력 |
| Pointwise(PoS) | \((x,a) \to (t,s)\) | score 기반 | pairwise 데이터를 원격 지도로 재사용 |
| MultiTask(MT) | pairwise + pointwise 조합 | 위 전부 | 하나의 모델이 두 포맷 모두를 학습 |
Pointwise(PoS)는 별도의 pointwise 라벨이 없다. 같은 \((x,a,b,\text{winner}=a)\) 데이터를 “\(a\)는 높게, \(b\)는 낮게 채점되어야 한다”는 제약으로 재사용한다 — 이것이 논문이 말하는 “distant supervision”이다.
RaR과 무엇이 다른가
| 항목 | Rubrics as Rewards(#29, Gunjal et al. 2025) | J1 |
|---|---|---|
| 무엇을 검증 가능하게 만드는가 | 채점 기준(rubric) 자체 | 판정 태스크(어느 응답이 나은가) 자체 |
| 정답의 출처 | 사람(도메인 전문가)이 작성한 rubric 항목 | LLM이 스스로 만든 노이즈 프롬프트로부터 자동 생성 |
| RL로 학습되는 대상 | 응답을 생성하는 policy 모델 | 응답을 판정하는 judge 모델 |
| 사람 개입 | rubric 설계 단계에 필요 | 없음 — 파이프라인 전체가 LLM 생성 |
| 검증 대상 도메인 | HealthBench(의료), GPQA-Diamond(과학) 등 특정 분야 | WildChat(범용 대화) + MATH |
두 논문 모두 “비검증 도메인을 어떻게 RLVR화할 것인가”라는 같은 문제에서 출발하지만, RaR은 사람이 여전히 정답의 기준을 정의하고 J1은 정답의 존재 자체를 자동으로 조작해낸다. 그만큼 J1은 사람 개입이 없어 확장성이 좋지만, “노이즈 프롬프트가 실제로 더 나쁜 질문인가”를 보장하는 별도 장치가 없다는 약점도 함께 짊어진다 — 이 지점은 #29 Rubrics as Rewards에서 다시 다뤄질 부채다.
judge의 자기 성찰 행동들

RL로 학습된 judge의 사고 과정을 들여다보면 반복적으로 등장하는 네 가지 행동이 있다(위 그림, 논문 Figure 1).
- 동적 평가 기준 생성(Evaluation Criteria): “정확성, 설명의 명료성, 사용자 질문과의 부합도를 기준으로 판단하겠다”처럼 프롬프트마다 다른 채점 기준을 스스로 세운다.
- 참조 답안 생성(Reference Answer): 두 응답을 비교하기 전에 “이 문제라면 이렇게 풀린다”는 자기만의 정답을 먼저 만든다.
- 자기 판단의 반복적 교정(Re-evaluation): 한 번 세운 결론을 다시 검산한다. “이 단계를 다시 확인해보면…” 같은 문장이 등장하며 스스로 되짚는다.
- 저품질 응답에 대한 피드백 생성(Feedback): pointwise 판정에서 특히 두드러지는데, 낮은 점수를 준 응답에 “정확한 계산법은 사실 이렇다”처럼 구체적으로 무엇이 틀렸는지를 짚는다.
이 네 행동은 #26 DeepSeek-GRM/SPCT의 자기 원칙 생성(self-principled critique)과 닮은 점이 많다 — 둘 다 “판정 기준을 모델이 스스로 만든다”는 발상을 공유한다. 다른 점은 그 행동이 어디서 나왔는가다.
| 항목 | DeepSeek-GRM / SPCT(#26) | J1 |
|---|---|---|
| 기준 생성 방식 | rejection sampling으로 원칙 생성 능력을 SFT로 심고 RL(GRPO)로 다듬음 | verdict correctness/consistency reward만으로 RL 도중 자연 발생 |
| 명시적 목표 함수 | 원칙(principle) 품질에 대한 별도 보상 없이 principle+critique를 함께 생성하도록 학습 | reference answer·재평가는 reward에 명시된 목표가 아니라 부산물로 관찰됨 |
| inference-time 확장 | 여러 원칙·critique 세트를 샘플링해 meta RM으로 투표 | 여러 rollout을 샘플링해 다수결(self-consistency)로 투표 |
J1 쪽이 흥미로운 지점은 참조 답안 생성이나 재평가 같은 행동을 reward로 직접 요구하지 않았는데도 RL 학습 과정에서 스스로 나타났다는 것이다 — verdict correctness를 극대화하는 가장 쉬운 경로가 결국 “정답부터 만들고 대조하기”였다는 뜻이다.
Experiments
벤치마크: 32B가 671B를 이기는 순간
다섯 벤치마크는 조금씩 다른 능력을 잰다. RewardBench는 범용 선호 판정, RM-Bench는 스타일에 흔들리지 않는 판정, JudgeBench는 미묘한 사실·계산 오류 탐지, PPE는 실제 사용자 선호와의 상관, FollowBenchEval은 지시사항 이행 여부 판정을 각각 겨냥한다.
| 모델 | 크기 | Overall | PPE | RewardBench | RM-Bench | JudgeBench† | FollowBenchEval† |
|---|---|---|---|---|---|---|---|
| J1-Llama-8B | 8B | 61.9 | 59.8 | 85.7 | 73.4 | 42.0 | 48.3 |
| J1-Llama-70B | 70B | 75.0 | 69.6 | 93.3 | 82.7 | 60.0 | 69.3 |
| J1-Qwen-32B-MultiTask | 32B | 80.8 | 71.8 | 93.6 | 90.3 | 71.4 | 77.1 |
| o1-mini | – | 72.7 | 68.5 | 87.1 | 80.8 | 64.2 | 62.9 |
| o3 | – | 77.4 | 72.1 | 86.4 | 86.1 | 75.7 | 66.8 |
| DeepSeek-R1 | 671B | 78.4 | 72.3 | 90.6 | 88.6 | 68.9 | 71.7 |
†: 논문은 JudgeBench와 FollowBenchEval에서 position-consistent accuracy를 기본 지표로 쓴다.
- J1-Qwen-32B-MultiTask는 다섯 벤치마크 평균(Overall)에서 80.8점으로 o1-mini(72.7), o3(77.4), 그리고 20배 넘게 큰 DeepSeek-R1-671B(78.4)를 모두 앞선다.
- RewardBench(93.6), RM-Bench(90.3), FollowBenchEval(77.1)에서는 표에 있는 모든 모델 중 1위다.
- JudgeBench(71.4)에서만 o3(75.7)에 못 미친다 — 논문은 JudgeBench가 미묘한 사실 오류·계산 실수를 잡아내야 하는, 특히 어려운 벤치마크라고 밝힌다.
- J1-Llama-8B조차 base 모델(RL 이전, zero-shot judge) 대비 RewardBench에서 +16.2점, RM-Bench에서 +19.4점을 얻는다 — RL 자체의 효과가 크다는 뜻이다.
training data는 22K개(WildChat 17K + MATH 5K) 합성 선호 쌍이 전부다 — 사람이 새로 라벨링한 선호 데이터는 하나도 없다. 이 규모는 비교 대상인 DeepSeek-GRM-27B가 쓴 237K건보다 10배 이상 적다.
position bias는 사라졌는가
| 포맷 | (a,b) 순서 정확도 | (b,a) 순서 정확도 | 두 순서 모두 정답(consistent) | 순서 바뀌면 뒤집힘 |
|---|---|---|---|---|
| J1-Qwen-32B-MultiTask, pairwise | 76.8 | 76.2 | 67.0 | 17.0% |
| J1-Qwen-32B-MultiTask, pointwise | – | – | 70.6 | 10.5% |
- 한쪽 순서만 놓고 보면 정확도가 76%대로 높아 보이지만, 두 순서 모두 정답을 내야 하는 consistent accuracy는 67.0%로 뚝 떨어진다. 순서를 바꿨을 때 판정이 뒤집히는 경우가 17.0%나 된다는 뜻이다 — consistency reward를 넣어도 position bias가 완전히 사라지진 않는다.
- pointwise가 pairwise보다 일관적이다(70.6 > 67.0, 뒤집힘 비율도 10.5% < 17.0%) — 애초에 응답을 하나씩 독립적으로 채점하니 “순서”라는 변수 자체가 없어서다. 대신 pairwise는 두 응답을 나란히 놓고 비교하는 만큼 단일 순서 정확도가 더 높아 미세한 우열을 더 잘 잡아낸다. 그래서 논문은 둘을 합친 MultiTask-J1을 최종 모델로 쓴다.
- test-time에 같은 판정을 \(N\)번 반복하고 다수결(self-consistency)을 취하면 이 격차가 줄어든다. \(N=32\)까지 늘리면 pointwise-J1-70B의 평균 점수 다수결 정확도가 greedy 65.0%에서 74.8%까지 오른다.
ReasonGRM과 어떻게 다른 길을 갔나
| 항목 | ReasonGRM(#27, Chen et al. 2025) | J1 |
|---|---|---|
| 문제의식 | judge의 reasoning 흔적 품질이 들쭉날쭉함 | 비검증 프롬프트엔 reward를 줄 수 없음 |
| 핵심 장치 | \(R^*\) 지표로 좋은 추론 경로를 사후에 골라냄(데이터 선별) | 노이즈 프롬프트로 정답이 있는 학습 데이터 자체를 생성(데이터 생성) |
| 학습 단계 | 1) Zero-RL로 후보 경로 생성 2) \(R^*\)로 선별 3) 어려운 예제에 RL 추가 | 검증 가능/불가능 프롬프트를 통합 형식으로 만든 뒤 단일 RL(GRPO) |
| RL의 역할 | 선별된 데이터 위에서 판별력을 다듬는 보조 수단 | reward 설계의 중심, 처음부터 끝까지 judge를 직접 최적화 |
두 논문 모두 “reasoning이 judge 품질을 좌우한다”는 전제를 공유하지만, ReasonGRM은 이미 있는 추론 경로 중 좋은 것을 고르는 데이터 큐레이션 문제로 풀었고 J1은 애초에 정답이 있는 학습 데이터를 만들어내는 문제로 풀었다. 두 접근은 배타적이지 않다 — \(R^*\)식 선별을 J1의 GRPO rollout에 얹는 조합도 자연스러운 다음 단계로 보인다.
Conclusion
핵심을 한 줄로: J1은 “판정 자체를 검증 가능한 형식으로 바꾸면 judge도 RLVR로 직접 학습할 수 있다”는 것을 22K개의 합성 데이터만으로 증명했다. 비검증 프롬프트는 노이즈 낀 변형 질문으로 정답 있는 선호 쌍을 만들고, 검증 프롬프트는 정답 대조로 선호 쌍을 만들어 같은 파이프라인에 태운다. 그 결과 나온 judge는 순서를 바꿔도 (완전하지는 않지만) 더 일관되게 판정하고, 참조 답안 생성이나 재평가 같은 행동을 reward로 명시하지 않아도 스스로 학습한다.
한계도 분명하다.
- 노이즈 프롬프트의 품질이 보장되지 않는다. \(x'\)가 정말로 \(x\)보다 나쁜 질문인지 검증하는 장치가 없다 — 이 약점은 사람이 직접 기준을 쓰는 #29 Rubrics as Rewards와 대비되는 지점이자, 뒤 글에서 다시 짚을 부채다.
- position bias가 완전히 없어지지 않았다. consistent accuracy(67.0~70.6%)는 여전히 단일 순서 정확도(76%대)보다 한참 낮다. #31 One Token to Fool LLM-as-a-Judge가 다루는 judge의 구조적 취약성은 J1 같은 RL 학습으로도 완전히 닫히지 않는 문제라는 뜻이다.
- format reward는 도움이 안 됐다.
<think>태그를 강제하는 reward를 추가로 줘봐도 유의미한 성능 차이가 없었다 — 사고의 “형식”이 아니라 reward 구조 자체가 사고의 질을 만든다는 시사점이다.
RLHF Reward 설계 시리즈
이 글은 RLHF Reward 설계 시리즈의 스물여덟 번째 글이다.
1부. 지형도
- Deep RL from Human Preferences (Christiano 2017) — 선호로 보상을 배우는 원형
- InstructGPT (Ouyang 2022) — RLHF 3단계 표준 레시피
- HH-RLHF (Bai 2022) — helpful·harmless preference model
2부. 스칼라 RM 해부
- Rethinking Bradley-Terry (2024) — reward 변환의 수학적 기반
- Secrets of RLHF II (2024) — 선호 데이터 노이즈와 RM 일반화
- Skywork-Reward (2024) — 데이터 큐레이션이 아키텍처를 이긴다
- ArmoRM (2024) — 다목적 분해와 MoE 게이팅
- Llama 2 (2023) — helpfulness·safety RM 분리 프로덕션 레시피
- RewardBench 2 (2025) — RM을 어떻게 평가할 것인가
3부. Reward Hacking
- Overoptimization Scaling Laws (2022) — Goodhart의 법칙 정량화
- Length Correlations in RLHF (2023) — 성능 향상의 얼마가 길이인가
- ODIN (2024) — 길이를 reward에서 분리
- WARM (2024) — weight averaging으로 hacking 방어
4부. reward를 정책으로
- PPO (2017) — clipped surrogate objective
- Secrets of RLHF I (2023) — PPO 학습 안정화 트릭
- GRPO / DeepSeekMath (2024) — value network를 버리다
- RLOO (2024) — REINFORCE로 충분한가
- DPO (2023) — reward를 없애면 어떻게 되는가
5부. Process & Verifiable Reward
- Let’s Verify Step by Step (2023) — 과정 감독이 결과 감독을 이긴다
- Math-Shepherd (2023) — 사람 라벨 없는 PRM
- DeepSeek-R1 (2025) — RLVR, 규칙이 reward가 될 때
6부. Generative Reward Model
- Prometheus 2 (2024) — 오픈 평가자 모델과 rubric 조건부 평가
- Generative Verifiers (2024) — reward를 next-token prediction으로
- Generative Reward Models (2024) — GenRM과 선호 학습의 결합
- Self-Taught Evaluators (2024) — 사람 라벨 없이 judge를 키우다
- DeepSeek-GRM / SPCT (2025) — inference-time scaling
7부. 생각하는 Judge, 그리고 그 신뢰
- ReasonGRM (2025) — reasoning 능력을 judge에 이식
- (현재 글) J1 (2025) — RL로 judge를 생각하게 만들기
- Rubrics as Rewards (2025) — 비검증 도메인으로
- CriticEval (2024) — judge 자체를 어떻게 평가하나
- One Token to Fool LLM-as-a-Judge (2025) — GenRM도 뚫린다
본 시리즈는 31편으로 구성된다.
참고 문헌
- Whitehouse et al., 2025. J1: Incentivizing Thinking in LLM-as-a-Judge via Reinforcement Learning.
- Gunjal et al., 2025. Rubrics as Rewards: Reinforcement Learning Beyond Verifiable Domains.
- Chen et al., 2025. ReasonGRM: Enhancing Generative Reward Models through Large Reasoning Models.
Enjoy Reading This Article?
Here are some more articles you might like to read next: