logo
aillmreasoning

추론 모델과 Test-Time Compute - LLM이 '생각'한다는 것

같은 문제를 줘도 어떤 모델은 곧바로 답을 뱉고, 어떤 모델은 한참 "생각"한 뒤 답을 냅니다. 후자가 요즘 말하는 추론 모델(reasoning model) 이고, 그 배경에는 test-time compute라는 개념이 있습니다.

이 글에서는 LLM이 답 전에 생각을 길게 하는 게 왜 성능을 올리는지, 그리고 언제 추론 모델을 쓰고 언제 일반 모델이 나은지를 정리합니다.


1. Chain-of-Thought - 생각을 말로 풀어쓰기

시작점은 CoT(Chain-of-Thought, 생각의 사슬) 입니다. 어려운 문제에 대해 모델에게 "바로 답하지 말고 단계별로 풀어봐" 라고 시키면 정확도가 오르는 현상입니다.

[일반 프롬프트] Q: 사과 3개에 2400원, 5개는 얼마? A: 4000원 ← 종종 틀림 [CoT 프롬프트] Q: 사과 3개에 2400원, 5개는 얼마? 단계별로 생각해봐. A: 사과 1개 = 2400 / 3 = 800원. 5개 = 800 × 5 = 4000원. 답: 4000원 ← 중간 계산을 거쳐 안정적

왜 통할까요. LLM은 토큰을 하나씩 순차적으로 생성합니다. 답을 곧장 내면 한 번의 예측에 모든 계산을 압축해야 하지만, 중간 과정을 토큰으로 풀어쓰면 각 단계가 다음 단계의 근거가 되어 사실상 더 많은 계산 단계를 확보합니다.

비유하자면, 암산으로 답을 외치는 것과 종이에 풀이를 써가며 푸는 것의 차이입니다.


2. 추론 모델은 뭐가 다른가

CoT는 원래 프롬프트 기법이었습니다. 추론 모델은 이 "길게 생각하기"를 모델 자체에 학습시킨 것입니다.

  • 답을 내기 전에 내부적으로 긴 사고 과정(reasoning/thinking) 을 먼저 생성합니다.
  • 이 과정에서 스스로 접근을 시도하고, 검토하고, 틀리면 방향을 바꾸기도 합니다.
  • 사고 과정은 보통 사용자에게 최종 답과 분리되어 보이거나 요약되어 제공됩니다.
[일반 모델] 질문 ──▶ 답변 [추론 모델] 질문 ──▶ [긴 사고 과정: 시도 → 검토 → 수정 → …] ──▶ 답변

핵심은 이 사고 과정이 눈속임이 아니라 실제 연산이라는 점입니다. 모델이 더 많은 토큰을 생성하며 문제를 풀 공간을 확보하고, 그 자체가 성능으로 이어집니다.


3. Test-Time Compute - "추론할 때 더 계산하기"

여기서 test-time compute(추론 시 연산량) 개념이 나옵니다. LLM 성능을 올리는 축은 크게 둘입니다.

언제 투입방식
학습 시 연산 (train-time)모델을 만들 때더 큰 모델, 더 많은 데이터로 학습
추론 시 연산 (test-time)질문에 답할 때답하기 전에 더 많이 생각/시도

전통적으로는 성능을 올리려면 더 크게 학습해야 했습니다. test-time compute의 통찰은, 모델은 그대로 두고 답할 때 연산을 더 쓰면 성능이 오른다는 것입니다.

추론 시 연산을 늘리는 대표적인 방법들:

  • 더 길게 생각하기: 사고 과정 토큰을 더 많이 생성.
  • 여러 번 시도 후 다수결: 같은 문제를 여러 경로로 풀고 가장 많이 나온 답 선택(self-consistency).
  • 탐색: 여러 풀이 경로를 트리처럼 펼쳐 유망한 쪽을 더 파고들기.
성능 │ ___/‾‾ ← 생각(연산)을 늘릴수록 정확도 상승 │ __/ (단, 어느 지점부터 완만해짐) │ __/ └───────────────▶ 추론 시 투입 연산(생각 길이)

즉 "답하기 전에 얼마나 생각하게 할지"를 다이얼처럼 조절해 정확도와 비용을 맞바꿀 수 있게 된 것입니다.


4. 언제 추론 모델이고 언제 일반 모델인가

여기가 실무에서 가장 중요합니다. 추론 모델이 항상 좋은 게 아닙니다.

추론 모델이 유리한 경우 — 단계가 많고 논리가 필요한 문제:

  • 수학·알고리즘, 복잡한 코딩(설계·디버깅)
  • 다단계 논리 추론, 제약 조건이 얽힌 계획 수립
  • "왜 그런지" 검증이 필요한 분석

일반 모델이 나은 경우 — 빠르고 단순하거나, 지연·비용이 중요한 문제:

  • 요약, 번역, 분류, 정보 추출
  • 정해진 형식의 단순 변환, 챗봇 응답
  • 실시간성이 중요한 사용자 대면 기능
기준추론 모델일반 모델
문제 난이도높음(다단계)낮음~중간
응답 지연느림빠름
비용높음낮음
대표 용도수학/코딩/계획요약/분류/대화

감각: "사람이라면 잠깐 멈춰서 생각할 문제" 면 추론 모델, "보자마자 답이 나오는 문제" 면 일반 모델.

단순 작업에 추론 모델을 쓰면 답은 비슷한데 느리고 비싸기만 한 경우가 흔합니다.


5. 비용과 지연의 트레이드오프

추론 모델의 대가는 명확합니다. 생각하는 토큰도 전부 비용이고 시간입니다.

  • 사고 과정 토큰은 최종 답에 안 보여도 생성 비용에 포함됩니다. 짧은 답 하나에 수천 토큰을 생각할 수 있습니다.
  • 응답까지 수 초~수십 초가 걸릴 수 있어 실시간 UX와 안 맞을 수 있습니다.
  • 그래서 많은 API가 생각의 양을 조절하는 옵션(예: 추론 강도/사고 예산)을 제공합니다.

실무 전략:

  • 난이도로 라우팅: 쉬운 요청은 일반 모델, 어려운 요청만 추론 모델로 보냅니다.
  • 사고 예산 제한: 무한정 생각하지 않도록 상한을 둡니다.
  • 캐싱·비동기: 느린 추론은 미리 계산하거나 백그라운드로 돌립니다.
요청 ─┬─(단순)─▶ 일반 모델 (빠름/저렴) └─(복잡)─▶ 추론 모델 (느림/정확)

마무리

추론 모델은 "답하기 전에 길게 생각하도록 학습된 모델", test-time compute는 "추론할 때 연산을 더 써서 성능을 올린다" 는 개념입니다. CoT가 프롬프트 기법이었다면, 추론 모델은 그 사고 능력을 모델에 내재화한 결과입니다.

실무에서 기억할 것.

  1. 모든 문제에 추론 모델을 쓰지 않는다. 난이도에 맞춰 고른다.
  2. 사고 과정도 비용과 지연이라는 걸 잊지 않는다.
  3. 쉬운 건 일반 모델, 어려운 건 추론 모델로 라우팅하는 게 대개 최선이다.

"무조건 더 똑똑한 모델"이 아니라 "문제에 맞는 만큼만 생각하게 하기" 가 요령입니다.

me

강경원

Backend Developer

성능과 안정성으로 신뢰받는 백엔드 개발자 · 요즘은 AI/LLM을 서비스에 접목합니다

이력서 보기