RLVR: 검증기가 보상 모델을 대신한다
이제 보상 쪽이다. 보상 모델은 사람 선호 데이터로 따로 학습해야 하고, 학습해 놓아도 "좋은 답"의 불완전한 대리인이다. 강화학습은 수천 스텝 동안 그 대리인의 빈틈을 파고든다. DeepSeek-R1 팀이 신경망 보상 모델을 쓰지 않은 까닭도 그것이었다: 큰 규모의 강화학습에서는 보상 모델이 리워드 해킹을 당할 수 있고, 보상 모델을 다시 학습하려면 자원이 더 들고 학습 과정이 복잡해진다. 그런데 수학 문제라면 정답이 있다. 채점을 학습된 모델 대신 규칙에 맡기면 안 될까?
역사: 「검증 가능한 보상」이라는 이름
정답을 맞혔는지로 보상을 주는 생각은 오래전부터 있었다. 이 방식에 이름을 붙인 것은 2024년 11월 앨런 AI 연구소의 툴루 3(Tülu 3) 팀(램버트(Nathan Lambert)와 동료들)이다. 그들은 공개 모델의 학습 과정을 처음부터 끝까지 공개하면서 마지막 단계에 강화학습을 넣었는데, 보상 모델 대신 검증 함수를 썼다. 수학 문제는 답을 꺼내 정답과 맞춰 보고, 「응답을 다섯 문단으로」 같은 지시는 조건을 검사하는 함수로 확인해, 맞으면 10, 아니면 0을 주었다. 학습 알고리즘은 비평가가 있는 PPO 그대로였다. 논문은 이것을 RLVR이라 부르고, 기존 방법을 단순하게 만든 꼴이라고 스스로 적었다. 실험에서는 검증 보상에 보상 모델 점수를 섞어 주면 잡음이 더해져, 검증 보상만 쓴 쪽이 더 나았다.
정답을 규칙으로 채점하기
RLVR은 보상을 규칙 기반 검증기로 준다. 검증기는 정답 여부를 판정하는 코드다.
| 도메인 | 검증기 | 보상 |
|---|---|---|
| 수학 | 최종 답을 꺼내 정답과 비교 | 1 / 0 |
| 코드 | 테스트 케이스 실행 | 통과 비율 또는 1 / 0 |
| 지시 따르기 | 조건 검사 함수 (문단 수, 글자 수, 들어가야 할 낱말) | 1 / 0 |
| 논리 퍼즐 | 규칙 검사기 | 1 / 0 |
| 객관식 (예: 의학 MCQA) | 선택지 비교 | 1 / 0 |
| SQL | 실행 결과 비교 | 1 / 0 |
전제는 하나다: 정답 여부를 자동으로 판정할 수 있어야 한다. 이 전제가 충족되면 세 가지가 동시에 따라온다. 사람 라벨이 필요 없으니 문제만 있으면 데이터가 무한하고, 보상 모델을 학습할 필요가 없고, 매번 현재 모델이 답하니 분포 이동(데이터를 만든 모델과 지금 학습 중인 모델이 달라져 생기는 어긋남)이 없다.
리워드 해킹이 (거의) 사라지는 이유
보상 모델을 쓰는 곳에서는 리워드 해킹이 되풀이해 나타난다. 보상 모델은 "좋은 답"의 불완전한 대리인이라서, 최적화 압력이 그 빈틈을 찾아낸다.
| 보상 | 빈틈 | RLVR에서는 |
|---|---|---|
| 사람 선호로 학습한 보상 모델 | 아첨하면 점수가 오른다 | "1+1=3이군요, 맞습니다"라고 해도 검증기는 0점 |
| 여러 차원의 보상 | 한 차원을 극대화하고 나머지를 희생 | 보상이 1차원 이진값 — 희생할 다른 차원이 없다 |
| 형식 편향이 있는 보상 모델 | 목록·굵은 글씨·이모지를 쓰면 점수가 오른다 (장(Xuanchang Zhang)과 동료들, 2024) | 형식과 무관하게 답이 맞아야 1 |
| 이미지 생성의 CLIP 점수 (그림과 글이 얼마나 맞는지 재는 모델) | CLIP은 그림 속 글자를 읽어 판단에 쓴다 (고(Gabriel Goh)와 동료들, 2021). 글자를 그려 넣어 점수를 올릴 틈이 생긴다 | 해당 없음 — "아름다움"은 이진 검증이 불가능해서 애초에 RLVR을 못 쓴다 |
검증기는 정답의 정의에 가깝기 때문에 속일 틈이 좁다. 좁을 뿐 없지는 않다. 툴루 3 팀이 지시 따르기 검사를 보상으로 쓰면서 KL 강도
적용할 수 있는 곳과 없는 곳
| 구분 | 예 | 이유 |
|---|---|---|
| 작동한다 | 수학, 코딩, 논리 퍼즐, 객관식, SQL | 정답이 있고 판정이 자동 |
| 작동하지 않는다 | 역할극의 자연스러움, 창작 글쓰기, 브랜드 말투, 설득력 있는 논증 | "정답"이 없거나 판정이 주관적 |
| 경계 | 내용 모순 검사 | 검사기는 만들 수 있지만 보상이 극도로 희소 (아래) |
희소 보상의 벽
모순 검사기를 보상으로 쓴다고 하자. 프롬프트 100개에 8개씩 800개 응답을 뽑았더니 모순이 있는 응답은 12개(1.5%)뿐이다. 대부분의 그룹은 8개 모두 보상 1이다. 그룹 안의 보상이 모두 같으면 평균을 빼는 순간 어드밴티지가 모두 0이라, 그런 그룹의 학습 신호(시그널)는 0이다. 모순이 하나라도 섞인 그룹은 최대 12개, 전체의 12%에 불과하다. 수학 문제에서 8개 중 3개쯤 맞히는 경우와 비교하면 배울 거리가 거의 없다.
이 벽을 넘으려는 시도들:
- 과정 보상 모델(PRM, Process Reward Model): 최종 답이 아니라 풀이의 중간 단계마다 점수를 준다. OpenAI의 라이트먼(Hunter Lightman)과 동료들은 2023년 풀이 단계 80만 개에 사람이 맞음·틀림을 단 자료(PRM800K)로 이런 모델을 학습했다. 스텝마다 보상을 받는 밀집 보상이 되지만, 결국 또 하나의 학습된 보상 모델이라 해킹 위험이 돌아온다.
- 평가기준 기반 보상(Rubrics-as-Rewards): 사람이 쓴 체크리스트 항목들을 LLM 심사 모델이 하나씩 판정해 점수화한다. 스케일 AI의 군잘(Anisha Gunjal)과 동료들이 2025년 의료·과학 문제에 썼다. 검증기를 주관적 도메인으로 넓히려는 시도다.
문제 5 — 다 칠한 답안지
객관식 20문항(보기 다섯 개)을 채점기로 채점한다. 채점기는 「칠한 칸 가운데 정답 칸이 있으면 맞음」으로 센다. 한 학생은 문항마다 한 칸씩 칠해 12문항을 맞혔다. 다른 학생은 모든 문항의 다섯 칸을 다 칠했다. (가) 두 학생의 점수는? (나) 이 채점기가 실제로 판정하는 명제를 한 문장으로 적고, 시험이 알고 싶었던 명제와 견주시오.





정리 (가) 12점과 20점. (나) 채점기가 판정하는 명제는 「칠한 칸 가운데 정답이 있다」, 시험이 알고 싶은 명제는 「정답 하나를 골랐다」. 두 명제가 다르면 그 차이로 점수를 딸 수 있다. 「두 칸 이상이면 틀림」 규칙이 두 명제를 맞춘다.
문제 6 — 숫자를 흩뿌리는 답
어떤 수학 검증기는 응답에 등장하는 모든 숫자 중 하나라도 정답과 같으면 1점을 준다. (가) GRPO로 오래 학습하면 어떤 응답이 늘어날까? (나) 이 검증기를 「마지막에 쓴 답 하나만 꺼내 정답과 비교」로 고쳤다. 고친 검증기가 판정하는 명제를 한 문장으로 적고, 우리가 바라는 명제(「문제를 옳게 풀었다」)와 아직 어긋나는 곳을 하나 찾으시오.










정리 (가) 모든 숫자를 확인하는 검증기는 "정답을 말한다"가 아니라 "정답이 어딘가 등장한다"를 판정한다. 후보를 나열하는 응답이 늘어난다. (나) 고친 검증기는 「마지막에 쓴 답이 정답과 같다」를 판정한다. 답의 가짓수가 적은 문제에서는 엉터리 풀이가 찍어서 1점을 받고, 표기가 다른 정답은 0점을 받는다. RLVR이 해킹에 강한 것은 검증기의 판정 명제가 원하는 명제와 정확히 일치할 때뿐이다. 실무에서는 정해진 칸에 답 쓰게 하기, 표기 맞추기로 이 차이를 좁힌다.