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.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