Content is user-generated and unverified.

추론 모델(Reasoning Models)은 어떻게 작동하는가

RL과 일반화의 메커니즘에 대한 완전한 이해


목차

  1. 문제의식: 프리트레이닝의 한계
  2. 해결책: RLVR
  3. RL 학습 과정 (Phase 2)
  4. 배포 후 추론 (Phase 3)
  5. 핵심 통찰: 왜 추론이 일반화에 도움이 되는가
  6. 한계와 트레이드오프
  7. 요약

1. 문제의식: 프리트레이닝의 한계

1.1 프리트레이닝 데이터의 편향

웹에서 수집한 데이터는 대부분 결과 중심입니다:

웹 데이터의 분포:
- "2+2=4" (정답만) ────────────── 90%
- "먼저 2를 보고, 2를 더하면... 4" (과정 포함) ── 5%
- "2+2=5" + 그럴듯한 설명 (틀린 답) ───── 5%

왜 과정이 적은가?

  • 사람들은 주로 최종 결과를 공유 (Stack Overflow 답변, 계산 결과 등)
  • 추론 과정을 상세히 기록하는 것은 비용이 높음
  • 교과서, 증명 과정 등은 상대적으로 소수

1.2 결과적 한계

프리트레이닝만으로는:

  • 훈련 데이터와 유사한 문제는 잘 풀지만
  • 일반화가 필요한 새로운 문제에서는 실패
  • "2+2=4"를 외운 모델이 "347+347=?"을 추론하지 못할 수 있음

2. 해결책: RLVR (Reinforcement Learning with Verifiable Rewards)

2.1 Verifiable이란?

Verifiable 도메인: 답의 정확성을 객관적으로 검증 가능

  • ✅ 수학 문제: 2+2=4 (계산으로 검증)
  • ✅ 코딩 문제: 테스트 케이스 실행
  • ❌ 에세이 작성: 주관적 평가

2.2 RLHF vs RLVR

측면RLHFRLVR
보상 기준인간의 선호객관적 검증
False Positive그럴듯한 설명에 속을 수 있음답이 틀리면 무조건 탈락
적용 도메인범용검증 가능한 문제에 한정

핵심 차이:

RLHF: "2+2=5"를 정말 그럴듯하게 설명 
      → 사람이 속을 수 있음 
      → 보상 받을 수 있음

RLVR: "2+2=5" 
      → 계산기: "틀림" 
      → 보상 없음 (끝)

3. RL 학습 과정 (Phase 2)

3.1 타임라인

Phase 1: 프리트레이닝 (완료)
   └─> 웹 데이터로 기본 지식 학습

Phase 2: RL 학습 (OpenAI/Anthropic이 수행) ← 여기!
   └─> 추론 능력 강화

Phase 3: 배포 (유저 사용)
   └─> 학습된 모델로 추론

3.2 RL 학습 중 일어나는 일

1단계: 문제 제시

시스템: "123 × 456 = ?"
모델: [답변 생성 시작]

2단계: 모델의 답변

모델: "먼저 100×456을 계산하면 45600
      그다음 20×456은 9120
      마지막으로 3×456은 1368
      합치면 56088"

3단계: 보상 결정 - 두 가지 방식

ORM (Outcome Reward Model): 결과만 검증

검증 시스템: 56088 == 123×456 ? 
           → True → 보상 +1

장점: 간단, 구현 쉬움
단점: 잘못된 과정도 우연히 답이 맞으면 보상

예시:

모델: "100×456 = 99999 (틀림)
      20×456 = 1 (틀림)
      3×456 = -44912 (틀림)
      합: 56088 (우연히 맞음!)"

ORM: 최종 답만 확인 → 맞음 → 보상 ✓
→ 문제: 잘못된 과정이 강화됨

PRM (Process Reward Model): 각 단계 검증

단계 1: "100×456 = 45600" → 검증 → ✓ → 보상 +0.3
단계 2: "20×456 = 9120" → 검증 → ✓ → 보상 +0.3
단계 3: "3×456 = 1368" → 검증 → ✓ → 보상 +0.3
최종: "56088" → 검증 → ✓ → 보상 +0.1

장점: 세밀한 피드백, 학습 효율 높음
단점: PRM 자체를 학습해야 함

PRM은 어떻게 만들어지는가?

  1. 사람이 일부 문제의 각 단계를 라벨링 (예: 1000개)
  2. 이 데이터로 PRM(신경망) 학습
  3. 학습된 PRM이 나머지 수백만 개를 자동 평가
  4. 주의: PRM도 완벽하지 않음 (신경망이므로 틀릴 수 있음)

ORM vs PRM: 학습 효율성 비교

100단계 추론에서 99단계가 맞고 마지막만 틀린 경우:

  • ORM: 전체를 틀린 경로로 판단 → 99개의 올바른 단계도 페널티
  • PRM: 99단계는 보상, 마지막만 페널티 → 올바른 패턴은 강화됨

3.3 학습 효과

수백만 개 문제 반복 후:

확률 분포 변화:

Before RL:
P("2+2=4") = 80%
P("먼저 2를 보고, 2를 더하면... 4") = 5%  ← 가치있지만 드물었음
P("2+2=5" + 그럴듯한 설명) = 15%

After RL:
P("2+2=4") = 40%  (여전히 높지만 상대적으로 감소)
P("과정 포함 정답") = 55%  ← 극적으로 증가!
P("그럴듯한 틀린 답") = 5%  ← False positive 제거

왜 과정 포함 정답이 증가했는가?

  1. False positive 제거: 그럴듯하지만 틀린 답들이 보상을 받지 못함
  2. 상대적 확률 증가: 틀린 답들이 줄어들면서 올바른 답의 확률이 자연스럽게 상승
  3. 긴 추론 과정 보상: 중간 단계가 많아도 검증을 통과하면 높은 보상
  4. 중간 단계 검증(PRM): 올바른 추론 패턴이 단계별로 강화됨

핵심 인사이트:

  • 프리트레이닝 때 이미 존재했지만 확률이 낮았던 "일반화 가능한 규칙"
  • RL을 통해 이것이 주류 패턴으로 부상
  • 새로운 지식을 만드는 게 아니라, 기존 지식의 확률 분포를 재조정

4. 배포 후 추론 (Phase 3)

4.1 Test-Time Compute

기존 모델:

질문 입력 → 2초 내 답변 생성 → 출력

추론 모델 (o1, QwQ 등):

질문 입력 → 30초간 내부 탐색 → 최종 답변 출력

30초 동안 무엇을 하는가?
여러 경로를 탐색하고, 각 경로를 검증하며, 최선의 답을 찾습니다.

4.2 트리 탐색 (Tree Search)

구체적 예시:

문제: x² + 5x + 6 = 0을 풀어라

[경로 1 시도]
"인수분해를 해보자..."
→ (x+2)(x+3) = 0
→ x = -2 또는 x = -3
→ [내부 검증] 대입: (-2)² + 5(-2) + 6 = 4 - 10 + 6 = 0 ✓
→ ✓ 성공! 이 경로 유지

[경로 2 시도]
"x = 1을 대입해보자..."
→ 1 + 5 + 6 = 12 ≠ 0
→ [내부 검증] 틀렸음 ✗
→ ✗ 막다른 길! 포기

[경로 3 시도]
"근의 공식을 써보자..."
→ x = (-5 ± √1)/2
→ x = -2 또는 -3
→ [내부 검증] 경로 1과 일치 ✓
→ ✓ 확신 증가!

최종 출력: x = -2 또는 x = -3 (높은 확신)

핵심 메커니즘:

  • 선택과 포기: 막다른 길은 버리고 유망한 경로만 진행
  • 중간 검증: 각 단계마다 올바른지 확인
  • 교차 검증: 여러 독립적 경로가 같은 답 → 확신 증가

4.3 내부 검증의 원리

중요: 배포 후에는 외부 도구(계산기, 코드 실행) 없이도 작동

어떻게 가능한가?

사람이 종이에 "17 × 20 = 340"을 쓰고 검증할 때:

  • 계산기를 쓰지 않음
  • 머릿속으로: "10×20=200, 7×20=140, 합쳐서 340"
  • 100% 완벽하지 않지만 충분히 신뢰 가능

모델도 마찬가지:

[토큰 생성 중]
"17 × 20 = ..."

[다음 토큰 예측 - 확률 분포]
- "340" 확률: 95%
- "300" 확률: 3%
- "400" 확률: 2%

→ "340" 선택

[자가 검증 패턴 활성화]
"이게 맞는지 확인해보자..."
"10×20 + 7×20 = 200 + 140 = 340"
"맞다! 계속 진행"

이것은 RL 학습 때 배운 휴리스틱입니다:

  • 완벽한 검증이 아님
  • 하지만 대부분의 경우 충분히 정확
  • 복잡한 계산은 여전히 Tool 호출 필요

4.3.1 "중간 검증"의 기술적 실체

중요한 명확화: "중간 검증"이라는 단일한 기술적 메커니즘은 존재하지 않습니다. 이는 여러 기법의 조합이며, 우리가 직관적으로 생각하는 "검증"과는 다릅니다.

실제로 일어나는 세 가지 메커니즘

1) 암묵적 검증 (Implicit Verification) - 가장 일반적

예시: "100 × 456 = ?"

컨텍스트: "100 × 456을 계산하면"

[모델 내부 - 보이지 않는 과정]
Attention 메커니즘:
  - "100", "456", "×" 토큰들에 주목
  - 프리트레이닝에서 학습한 곱셈 패턴 활성화
  - "100 × X" → "X" + "00" 규칙 적용

다음 토큰 확률 계산:
  - "45600" → 92%  ← RL 학습으로 강화됨
  - "45000" → 3%
  - "46000" → 2%
  - 기타 → 3%

선택: "45600"

핵심:

  • 별도의 "검증기"가 작동하는 게 아님
  • 단지 올바른 답의 확률이 매우 높을 뿐
  • RL 학습이 이 확률을 극적으로 높임

왜 높은 확률로 올바른 답이 나오는가?

  • 프리트레이닝: "100 × 456 = 45600" 패턴을 대량 학습
  • RL 학습: 틀린 중간 단계에 페널티 → 올바른 패턴 강화

2) 명시적 재확인 (Explicit Re-verification)

모델이 검증하는 텍스트를 생성:

[생성된 출력]
"100 × 456을 계산하면 45600입니다.
 이게 맞는지 확인해봅시다.
 100 × 456 = 100 × (400 + 56)
             = 100 × 400 + 100 × 56  
             = 40000 + 5600
             = 45600
 맞습니다!"

중요: 이것도 그냥 토큰 생성입니다:

  • "이게 맞는지 확인해봅시다" ← 토큰 생성
  • "100 × (400 + 56)" ← 토큰 생성
  • "= 40000 + 5600" ← 토큰 생성
  • "맞습니다!" ← 토큰 생성

실제 "계산"이 일어나는 게 아니라, 검증하는 과정의 텍스트를 생성하는 것입니다.

효과가 있는 이유:

  • 더 긴 컨텍스트 = 자기 일관성 체크 기회 증가
  • 틀린 중간 단계가 있으면 다음 토큰 확률이 낮아짐
  • RL 때 "재확인" 패턴이 강화됨

3) Self-Consistency (다중 샘플링)

여러 번 독립적으로 생성해서 비교:

[시도 1]
"100 × 456 = 45600"

[시도 2]  
"100 × 456을 계산하면...
 4 × 1 = 4, 5 × 1 = 5, 6 × 1 = 6
 그러니까 45600"

[시도 3]
"100 곱하기 456...
 100 × 400 = 40000
 100 × 56 = 5600
 합치면 45600"

[종합]
세 시도 모두 45600 → 확신도 매우 높음

이것도 "검증"이 아니라 **투표(Voting)**입니다.

우리가 상상하는 것 vs 실제

상상 (틀린 이해):

1. 모델: "100 × 456 = 45600" 생성
2. [검증기 실행] 100 × 456 실제 계산 → 45600
3. [비교] 45600 == 45600 ✓
4. 모델: "맞다! 계속 진행"

실제 (올바른 이해):

1. 모델: "100 × 456 = " [다음 토큰 예측]
2. 확률 분포: 45600 (92%), 45000 (3%), 46000 (2%)...
3. 샘플링: "45600" 선택
4. (선택사항) "확인해보면, 100×400=40000..." [또 토큰 생성]
5. 계속

"검증"처럼 보이는 것은 높은 확률로 올바른 패턴을 생성하는 것뿐입니다.

실제 계산이 일어나는 경우

오직 Tool 사용 시에만 진짜 "검증"이 일어납니다:

입력: "123456789 × 987654321 = ?"

[모델 판단]
"이건 너무 복잡해. Python을 써야겠다"

[Tool 호출]
def calculate():
    return 123456789 * 987654321
    
result = calculate()
# 121932631112635269

[모델 출력]  
"답은 121932631112635269입니다"

왜 그래도 작동하는가?

"검증"이 없는데도 추론 모델이 더 정확한 이유:

1) 더 긴 생성 = 자기 일관성 체크

짧은 버전: "123×456=56088"
→ 한 번의 토큰 생성, 틀리면 끝

긴 버전: "먼저 100×456=45600
         20×456=9120  
         3×456=1368
         45600+9120=54720
         54720+1368=56088"
→ 각 중간 단계마다 확률 체크
→ 틀린 단계 → 다음 확률 낮아짐 → 재시도 또는 다른 경로

2) RL 학습의 극적인 효과

Before RL:
P("100×456=45600" | 컨텍스트) = 80%
P("100×456=45000" | 컨텍스트) = 20%

After RL (틀린 중간 단계 페널티):
P("100×456=45600" | 컨텍스트) = 95%
P("100×456=45000" | 컨텍스트) = 5%

3) 여러 경로의 교차 검증

  • 독립적인 여러 방법으로 생성
  • 대부분이 같은 답 → 확률적으로 맞을 가능성 매우 높음
  • 우연히 같은 틀린 답일 확률은 매우 낮음

실전 예시: 단계별 비교

일반 모델 (짧은 추론):

입력: "123 × 456 = ?"

[생성]
토큰: "5" "6" "0" "8" "8"
출력: "56088"

끝.
  • 중간 검증 없음
  • 한 번에 답 생성
  • 확률 높으면 맞고, 낮으면 틀림

추론 모델 (긴 추론):

입력: "123 × 456 = ?"

[내부 사고 - 숨겨진 토큰들]
"먼저" "100" "×" "456" "을" "계산하면"
→ "45600" (확률 92% ✓)

"다음으로" "20" "×" "456" "은"  
→ "9120" (확률 88% ✓)

"그리고" "3" "×" "456" "은"
→ "1368" (확률 91% ✓)

"이제" "합치면" "45600" "+" "9120" "="
→ "54720" (확률 89% ✓)

"54720" "+" "1368" "="
→ "56088" (확률 94% ✓)

[최종 출력]
"답은 56088입니다"

각 중간 단계에서:

  • 높은 확률 → 계속 진행
  • 낮은 확률 → 다른 경로 시도 가능
  • RL 학습 덕분에 올바른 단계의 확률이 매우 높음

요약: "중간 검증"의 정체

"중간 검증"은 마케팅 용어에 가깝습니다.

실제로는:

  1. RL 학습으로 올바른 중간 단계의 확률이 극적으로 높아짐 (80% → 95%)
  2. 긴 생성으로 각 단계마다 확률 체크 (자기 일관성)
  3. 여러 경로 생성으로 교차 검증 (투표)
  4. 명시적 재확인 텍스트 생성 (검증 "과정"의 시뮬레이션)

진짜 검증은 Tool 호출 시에만 일어납니다.

4.4 언제 외부 Tool을 사용하는가?

작업내부 검증외부 Tool
17 × 23 = ?✓ 충분불필요
123456789 × 987654321 = ?✗ 불충분✓ 필요 (Python)
간단한 코드 검증✓ 대략 가능△ 선택적
복잡한 코드 실행✗ 불가능✓ 필수

트레이드오프:

  • 내부 검증: 빠름, 저렴, 덜 정확
  • 외부 Tool: 느림, 비쌈, 매우 정확

실제 전략:

  • o1: 주로 내부 검증, 필요시 Tool
  • Claude with tools: Tool 사용 적극 활용
  • DeepSeek R1: 내부 검증 극대화 (순수 추론)

5. 핵심 통찰: 왜 추론이 일반화에 도움이 되는가?

5.1 암기 vs 규칙 학습

결과만 학습한 모델 (RL 전):

프리트레이닝 데이터:
"2+2=4"
"3+3=6"
"4+4=8"
...
"7+7=14" (이것도 포함되어 있을 가능성 높음)

테스트 1: "7+7=?"
→ 프리트레이닝에서 봤을 가능성 높음
→ 패턴 매칭: "14" 출력
→ 이건 일반화가 아니라 암기!

테스트 2: "347+347=?" (이건 못 봤을 가능성 높음)
→ ???
→ 직접 패턴 매칭 실패 가능

과정을 학습한 모델 (RL 후):

RL 학습 데이터 (패턴):
"2+2는... 2를 2번 더하는 것... 4"
"3+3은... 3을 2번 더하는 것... 6"

학습된 규칙:
- X+X는 X를 2번 더하는 것
- 큰 수는 분해해서 계산 가능
- 덧셈은 곱셈으로 변환 가능

테스트: "347+347=?"
→ 규칙 적용 가능! (아래에서 설명)

5.2 Test-Time Compute의 진짜 위력

단순히 "같은 답을 두 번 계산"하는 게 아닙니다.

시나리오 A: 암기 모델 (RL 학습 전)

Q: 347+347=?

[내부 과정]
토큰 샘플링: "6" "9" "4"
출력: "694"

끝.
  • 단일 경로
  • 검증 없음
  • 확신도: 그냥 확률분포에 따라
  • 틀릴 수 있음

시나리오 B: 추론 모델 (RL 학습 후)

Q: 347+347=?

[경로 1: 직접 추론]
"347+347은..."
[프리트레이닝 패턴 검색... 없음]
[추론 시도] "대충 700 정도?"
"694" (확률 60%, 낮은 확신)

[경로 2: 분해 전략]
"분해해서 계산하자"
"300+300 = 600"
  [내부 검증] 3+3=6, 뒤에 00 → 600 ✓
"40+40 = 80"
  [내부 검증] 4+4=8, 뒤에 0 → 80 ✓
"7+7 = 14"
  [내부 검증] 프리트레이닝에서 본 패턴 → 14 ✓
"600+80+14 = ..."
  [내부 검증] 600+80=680, 680+14=694 ✓
"694" (확률 85%, 높은 확신)

[경로 3: 곱셈 변환]
"347+347 = 347×2로 바꿀 수 있지"
"347×2 = ..."
"300×2 = 600"
  [내부 검증] 3×2=6 → 600 ✓
"40×2 = 80"
  [내부 검증] 4×2=8 → 80 ✓
"7×2 = 14"
  [내부 검증] ✓
"600+80+14 = 694"
  [내부 검증] ✓
"694" (확률 90%, 매우 높은 확신)

[종합 판단]
- 세 경로 모두 694
- 각 경로마다 중간 검증 통과
- 서로 다른 논리적 접근인데 같은 답
→ 최종 확신도: 99%
→ 출력: "694"

5.3 왜 이게 일반화인가?

핵심 요소 4가지:

  1. 여러 독립적 경로 탐색
    • 단순히 같은 계산을 반복하는 게 아님
    • 서로 다른 논리적 접근 (분해, 변환)
    • 각 경로는 다른 프리트레이닝 지식을 활용
  2. 각 경로에서 중간 검증
    • "600+80=680 맞나?" 확인
    • "300×2=600 맞나?" 확인
    • RL 학습 때 배운 검증 휴리스틱 사용
  3. 교차 검증 효과
    • 경로 2와 3이 독립적인데 같은 답
    • 마치 두 명의 학생이 다른 방법으로 풀었는데 답이 같은 것
    • 우연히 같은 틀린 답일 확률 매우 낮음
  4. 일반화 가능한 규칙 적용
    • "분해" 전략: 큰 수를 작은 단위로
    • "변환" 전략: 덧셈을 곱셈으로
    • 이런 규칙들이 RL 때 강화됨

왜 RL 전에는 안 됐는가?

Before RL:
P("347+347=694" 직접) = 60%
P("분해 전략") = 5%  ← 프리트레이닝에 존재했지만 확률 낮음
P("변환 전략") = 3%  ← 마찬가지

→ 대부분 경로 1만 시도
→ 확신도 낮음
→ 틀릴 가능성 높음

After RL:
P("분해 전략") = 35%  ← 극적으로 증가!
P("변환 전략") = 25%  ← 극적으로 증가!
P("직접") = 40%

→ 여러 경로 시도 가능
→ 교차 검증 가능
→ 확신도 높음
→ 일반화 성공!

5.4 구체적 예시: 완전히 새로운 문제

문제: "1234 + 5678 = ?"

Before RL (암기 모델):
→ 프리트레이닝에 이 정확한 계산 없음
→ 비슷한 패턴 찾기 시도
→ "대충 6900?" (틀림: 정답은 6912)

After RL (추론 모델):
[경로 1: 단위별 분해]
1000+5000=6000
200+600=800
30+70=100
4+8=12
합: 6000+800+100+12=6912 ✓

[경로 2: 올림 고려]
1234+5678
끝자리: 4+8=12 (2 쓰고 1 올림)
십의자리: 3+7+1(올림)=11 (1 쓰고 1 올림)
백의자리: 2+6+1(올림)=9
천의자리: 1+5=6
답: 6912 ✓

두 경로 일치 → 확신도 높음 → 정답!

이게 진짜 일반화입니다. 프리트레이닝에 없던 계산을, 학습된 규칙을 조합해서 풀어냈습니다.


6. 한계와 트레이드오프

6.1 RLVR의 한계

적용 가능 도메인 제한:

  • ✅ 수학, 코딩, 논리 퍼즐
  • ❌ 창작, 주관적 평가가 필요한 작업
  • ❌ "좋은 소설"을 객관적으로 검증 불가능

완벽하지 않은 검증:

  • PRM도 신경망이므로 틀릴 수 있음
  • 내부 검증은 휴리스틱일 뿐 (100% 정확하지 않음)
  • 복잡한 문제일수록 검증도 어려움

프리트레이닝 의존성:

  • RL은 프리트레이닝 지식의 확률을 재조정할 뿐
  • 프리트레이닝에 아예 없는 지식은 만들 수 없음
  • "규칙"이 프리트레이닝 데이터에 존재해야 함

6.2 비용

Training-time:

  • RL 학습에 막대한 컴퓨팅 필요
  • 수백만 개 문제 반복
  • ORM보다 PRM이 더 비쌈 (라벨링 비용)

Test-time:

  • 긴 추론 시간 (30초 vs 2초)
  • 더 많은 토큰 생성 = 더 높은 비용
  • 여러 경로 탐색 = GPU 사용량 증가

6.3 왜 모든 모델이 이렇게 안 하는가?

현실적 이유:

  1. 비용: RL 학습 + 긴 추론 시간
  2. 도메인 제한: Verifiable 문제에만 효과적
  3. 사용자 경험: 느린 응답 (30초)
  4. 필요성: 대부분의 쿼리는 빠른 답변으로 충분

현실적 전략:

사용 케이스적합한 모델이유
일반 대화, 요약Claude Sonnet, GPT-4빠르고 저렴
복잡한 수학, 코딩o1, Claude Opus정확도 중요
창작, 브레인스토밍일반 모델검증 불가능

하이브리드 접근:

  • 쿼리 분석 → 추론 필요 여부 판단
  • 간단한 질문: 빠른 모델
  • 복잡한 문제: 추론 모델로 자동 전환

7. 요약

7.1 핵심 통찰 3가지

1. False Positive 제거가 핵심

  • RLVR은 틀린 답을 그럴듯하게 포장하는 것을 방지
  • 객관적 검증으로 "그럴듯한 틀린 답" 제거
  • 결과적으로 올바른 추론 과정의 확률 증가

2. 프리트레이닝 데이터의 재발견

  • 원래 5%만 존재하던 "일반화 가능한 규칙"
  • RL 후 주류 패턴으로 부상 (55%)
  • 새로운 지식 창조가 아닌 확률 재분배

3. Test-Time Compute의 가치

  • 더 긴 추론 = 더 많은 탐색
  • 여러 독립적 경로 시도
  • 내부 검증으로 좋은 경로 선택
  • 교차 검증으로 확신도 증가
  • 결과: 일반화 능력 향상

7.2 전체 메커니즘 요약

┌─────────────────────────────────────────────────────────┐
│ Phase 1: 프리트레이닝                                    │
├─────────────────────────────────────────────────────────┤
│ • 웹 데이터 학습                                         │
│ • 결과 중심 데이터 90%, 과정 포함 5%, 틀린 답 5%        │
│ • 일반화 규칙은 존재하지만 확률 낮음                     │
└─────────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────────┐
│ Phase 2: RL 학습 (핵심!)                                │
├─────────────────────────────────────────────────────────┤
│ 1. 수백만 개 문제로 학습                                │
│ 2. ORM/PRM으로 자동 검증                               │
│ 3. False positive 제거                                 │
│ 4. 올바른 추론 과정 강화                                │
│ 5. 중간 검증 패턴 학습                                  │
│                                                         │
│ 결과: 확률 분포 재조정                                  │
│ • 과정 포함 정답: 5% → 55%                             │
│ • 그럴듯한 틀린 답: 15% → 5%                           │
└─────────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────────┐
│ Phase 3: 배포 후 추론                                   │
├─────────────────────────────────────────────────────────┤
│ • Test-time compute: 30초간 탐색                       │
│ • 여러 독립적 경로 시도                                 │
│ • 각 경로에서 내부 검증 (학습된 휴리스틱)               │
│ • 교차 검증으로 확신도 증가                             │
│ • 필요시 외부 Tool 호출                                │
│                                                         │
│ 결과: 일반화 성공!                                     │
│ • 프리트레이닝에 없던 문제 해결                         │
│ • 규칙 조합으로 새로운 문제 접근                        │
└─────────────────────────────────────────────────────────┘

7.3 왜 작동하는가? (한 문장 요약)

RLVR이 false positive를 제거하면서, 프리트레이닝 때 5%였던 "일반화 가능한 추론 패턴"이 55%로 증가했고, test-time에 이 패턴들을 다양하게 조합/검증하면서 새로운 문제를 풀 수 있게 되었다.

7.4 실무적 시사점

모델 선택:

  • 빠른 답변 필요 → 일반 모델
  • 정확도 중요 → 추론 모델
  • 창작/주관적 평가 → 일반 모델

프롬프팅:

  • 추론 모델에게: "단계별로 생각해봐" (이미 내장됨)
  • 일반 모델에게: "단계별로 생각해봐" (명시 필요)

비용 최적화:

  • 쿼리 복잡도 분석 → 적절한 모델 선택
  • 간단한 질문에 추론 모델 낭비 말기

참고: 실제 모델 예시

  • OpenAI o1: RLVR + 긴 test-time compute
  • DeepSeek R1: 오픈소스 추론 모델
  • QwQ: Qwen 기반 추론 모델
  • Claude 3.5 Sonnet: 일반 모델 (빠름)
  • Claude Opus: 추론 능력 강화 모델

이 문서는 최신 ML 연구(2024-2025)를 바탕으로 작성되었습니다.

Content is user-generated and unverified.
    추론 모델 작동 원리: RL과 일반화 메커니즘 완전 가이드 | Claude