본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

검증 가능한 보상 강화 학습

IT 위키
Reinforcement Learning with Verifiable Rewards, RLVR; 검증 가능한 보상 강화 학습
학습된 보상 모델 대신 정답 일치, 테스트 통과, 형식 준수처럼 프로그램으로 확인할 수 있는 규칙을 보상으로 써서 언어 모델을 강화 학습하는 방법

검증 가능한 보상 강화 학습(Reinforcement Learning with Verifiable Rewards, RLVR)은 인간 피드백 기반 강화 학습(RLHF)의 목적 함수를 그대로 두고 보상 모델 자리에 검증 함수를 넣은 방법이다. 이름은 2024년 11월 앨런 AI 연구소의 튈루 3(Tülu 3) 논문이 붙였다.[1] 수학 문제의 최종 답, 코드의 단위 테스트, "세 문단으로 써라" 같은 형식 제약처럼 맞고 틀림을 기계적으로 가를 수 있는 과제에서 쓴다.

2025년 1월 딥시크가 GRPO와 정답·형식 규칙 보상만으로 기반 모델을 학습한 DeepSeek-R1-Zero를 공개하면서 추론 모델 학습의 중심 방법이 되었다.[2] 추론 모델 안에서의 위치와 결과 보상·과정 보상의 구분은 추론 모델 (인공지능) 문서에 있고, 이 문서는 목적 함수, 검증기 설계, 실제 레시피, 실패 양상을 다룬다.

튈루 3의 정의는 다음과 같다.[1]

maxπθ𝔼y∼πθ(x)[v(x,y)−βKL[πθ(y|x)‖πref(y|x)]],v(x,y)={α정답일 때0그 밖

KL 제약 RLHF 목적 함수에서 학습된 보상 rϕ(x,y)를 검증 함수 v(x,y)로 바꾼 것이다. 튈루 3는 예비 실험으로 α=10을 정했고, 최적화에는 PPO를 썼다. DeepSeek-R1-Zero는 같은 발상을 GRPO로 구현하고 정확도 보상과 형식 보상을 같은 가중치로 더했다.[2]

rrule=racc+rformat

알고리즘은 PPO, GRPO, RLOO 등 무엇이든 쓸 수 있다. 바뀌는 것은 보상의 출처뿐이다.

영역 검증 방법 주의할 점
수학(정답형) 정해진 형식(예: \boxed{})에서 답을 추출해 정답과 비교. 기호 계산으로 동치 판정(1/2와 0.5, 순서가 다른 집합 등) 추출 실패, 동치 판정 오류로 맞은 답을 틀렸다고 하거나 그 반대
코드 격리된 환경에서 실행해 테스트 케이스 통과 여부 확인 테스트가 빈약하면 하드코딩이나 테스트 조작으로 통과. 실행 시간과 보안 격리 필요
지시 따르기 제약 템플릿마다 검사 함수(글자 수, 키워드 포함, 형식 등) 제약만 지키고 내용은 엉망인 응답에 보상
형식 정규식으로 <think>…</think> 구조 확인 형식만 맞추는 학습에 그치기 쉬움
언어 일관성 사고 과정 중 목표 언어 단어 비율 성능을 약간 떨어뜨릴 수 있음

딥시크는 R1 학습에서 사고 과정에 여러 언어가 섞이는 문제를 줄이려고 목표 언어 단어 비율을 보상으로 더했고, 이 보상이 성능을 조금 낮추지만 가독성을 높인다고 밝혔다.[2]

수학 검증 함수 예

편집 원본 편집

허깅 페이스 TRL v1.16.0의 accuracy_reward는 math-verify 패키지로 정답과 모델 답을 파싱해 비교하고, 정답 자체를 파싱하지 못하면 그 예제를 건너뛰도록 None을 돌려준다.[3] 원리를 보이기 위한 단순한 예는 다음과 같다(실제로는 동치 판정이 이보다 훨씬 까다롭다).

import re
from fractions import Fraction

def extract_boxed(text):
    """마지막 \\boxed{...} 안의 문자열을 꺼낸다(중첩 괄호는 단순화)."""
    m = re.findall(r"\\boxed\{([^{}]*)\}", text)
    return m[-1].strip() if m else None

def to_number(s):
    try:
        return Fraction(s.replace(",", ""))
    except (ValueError, ZeroDivisionError):
        return None

def math_reward(completions, solution, **kwargs):
    """GRPOTrainer 보상 함수 규약: 응답별 float 목록을 돌려준다."""
    rewards = []
    for text, gold in zip(completions, solution):
        pred = extract_boxed(text)
        if pred is None:
            rewards.append(0.0)                       # 형식 위반
            continue
        a, b = to_number(pred), to_number(gold)
        ok = (a == b) if (a is not None and b is not None) else (pred == gold)
        rewards.append(1.0 if ok else 0.0)
    return rewards

print(math_reward(["... 따라서 \\boxed{0.5}", "답은 \\boxed{3/4}", "모름"],
                  ["1/2", "0.75", "2"]))   # [1.0, 1.0, 0.0]

튈루 3 레시피

편집 원본 편집

튈루 3는 SFT, DPO 다음의 마지막 단계로 RLVR을 넣었다.[1]

  • 데이터: GSM8K 학습 세트(8샷 연쇄적 사고 프롬프트를 붙임), MATH 학습 세트(3샷), 튈루 2 SFT 지시문에 IFEval식 제약을 붙인 프롬프트. 합쳐 약 3만 개.
  • PPO 구현 세부: 가치 모델을 일반 보상 모델에서 초기화, 드롭아웃 끄기, 에포크마다 프롬프트 섞기, EOS로 끝나지 않은 응답에 -10 벌점, 어드밴티지 정규화.
  • 발견: 세 영역 모두 해당 시험 점수가 올랐지만 전체 평균 점수가 오른다는 보장은 없었다. 검증 보상에 보상 모델 점수를 더하면 잡음만 늘었다. 가치 모델은 일반 보상 모델에서 초기화할 때 가장 좋았다. KL 계수를 낮춰 초기 모델에서 멀어질수록 평균 점수가 떨어지는 과최적화가 나타났다. 약한 SFT 모델에서 시작해도 같은 수준의 검증 보상에 도달했지만 KL이 더 컸고, 강한 모델에서 시작할 때 시험 성능이 대체로 좋았다.

R1-Zero는 SFT 없이 DeepSeek-V3-Base에 바로 RLVR을 적용했다. 수학 문제는 지정 형식의 최종 답으로, 코드 경시 문제는 컴파일러와 테스트 케이스로 채점했고, 결과 기반이든 과정 기반이든 신경망 보상 모델은 추론 과제에 쓰지 않았다. 신경망 보상 모델은 대규모 강화 학습에서 보상 해킹에 취약하고, 다시 학습하는 데 자원이 많이 들어 공정을 복잡하게 만든다는 이유였다.[2] 학습이 진행되며 응답 길이가 저절로 늘었고 AIME 2024 pass@1은 15.6%에서 77.9%로, 16개 표본 자기 일관성으로는 86.7%까지 올랐다. 중간 체크포인트가 "잠깐, 잠깐. 잠깐. 여기서 짚을 아하 순간이다" 같은 문장으로 스스로 풀이를 다시 검토하는 모습도 보고되었다.[2]

무엇을 학습하는가: 논쟁

편집 원본 편집

RLVR은 효과가 분명하지만, 그 효과가 새 추론 능력인지 기반 모델이 이미 가진 능력을 끌어내는 것인지를 두고 연구가 이어지고 있다.

연구 관찰 함의
DeepSeekMath(2024)[4] 강화 학습 뒤 Maj@K는 올랐지만 Pass@K는 그대로 분포를 안정시킬 뿐 근본 능력은 그대로일 수 있음
Yue 외(2025)[5] k가 작을 때는 RLVR 모델이, k가 클 때는 기반 모델이 pass@k가 높음. 6개 RLVR 알고리즘의 성과가 비슷하고 기반 모델 잠재력에 한참 못 미침. 반면 증류는 새 추론 패턴을 들여옴 현재 RLVR은 기반 모델 범위 안에서 표본 효율을 높임
1샷 RLVR(2025)[6] Qwen2.5-Math-1.5B에 학습 예제 하나로 RLVR을 해 MATH500이 36.0%에서 73.6%로 오름. 1,200개 예제로 학습한 것과 비슷 데이터 양보다 정책 경사 자체와 탐험(엔트로피)이 중요할 수 있음
가짜 보상(2025)[7] 무작위 보상으로 GRPO를 해도 Qwen2.5-Math-7B의 MATH-500이 21.4%p 오름(정답 보상은 29.1%p). 라마 3나 OLMo2에서는 효과 없음 GRPO 클리핑 편향이 사전 학습 행동을 증폭. 한 모델 계열로만 검증하면 오해할 수 있음
ProRL(2025)[8] 강화 학습을 충분히 오래 하면 기반 모델이 못 찾던 전략이 나타남 Yue 외에 대한 반론

한계와 실패 양상

편집 원본 편집
  • 적용 영역: 글쓰기, 요약, 대화 품질처럼 정답이 없는 과제에는 바로 쓸 수 없다. 딥시크도 R1의 2차 강화 학습에서 추론 데이터에는 규칙 보상을, 일반 데이터에는 선호 보상 모델을 함께 썼다.[2]
  • 검증기의 허점: 검증이 느슨하면 보상 해킹이 그대로 나타난다. 테스트 코드를 고치거나 특정 입력만 하드코딩하는 코드, 형식만 맞춘 답이 대표적이다. 튈루 3는 IFEval식 제약 프롬프트에서 제약만 지키는 과최적화 사례를 부록에 실었다.[1]
  • 희소 보상: 0/1 보상은 너무 어렵거나 쉬운 문제에서 신호가 없다. GRPO 계열은 이런 문제를 걸러내는 동적 표본 추출을 쓰기도 한다.[9]
  • 과정의 질: 결과만 맞으면 엉터리 풀이도 보상받는다. 단계별 보상을 주는 과정 보상 모델이 대안이지만, R1은 해킹 위험 때문에 쓰지 않았다.
  • 평가 오염: 학습 문제가 시험 문제와 겹치면 성능이 부풀려진다. 튈루 3는 공개 데이터셋에서 시험 문제와 겹치는 것을 대대적으로 제거했다고 밝혔다.[1] 벤치마크 오염 참고.
  1. ↑ 1.0 1.1 1.2 1.3 1.4 Nathan Lambert 외, 〈Tulu 3: Pushing Frontiers in Open Language Model Post-Training〉, 2024. arXiv:2411.15124
  2. ↑ 2.0 2.1 2.2 2.3 2.4 2.5 DeepSeek-AI, 〈DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning〉, 2025. 《네이처》 645권 633~638쪽에 게재. arXiv:2501.12948
  3. ↑ trl/rewards/accuracy_rewards.py, 허깅 페이스 TRL v1.16.0.
  4. ↑ Zhihong Shao 외, 〈DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models〉, 2024. arXiv:2402.03300
  5. ↑ Yang Yue 외, 〈Does Reinforcement Learning Really Incentivize Reasoning Capacity in LLMs Beyond the Base Model?〉, NeurIPS 2025. arXiv:2504.13837
  6. ↑ Yiping Wang 외, 〈Reinforcement Learning for Reasoning in Large Language Models with One Training Example〉, 2025. arXiv:2504.20571
  7. ↑ Rulin Shao 외, 〈Spurious Rewards: Rethinking Training Signals in RLVR〉, 2025. arXiv:2506.10947
  8. ↑ Mingjie Liu 외, 〈ProRL: Prolonged Reinforcement Learning Expands Reasoning Boundaries in Large Language Models〉, 2025. arXiv:2505.24864
  9. ↑ Qiying Yu 외, 〈DAPO: An Open-Source LLM Reinforcement Learning System at Scale〉, 2025. arXiv:2503.14476