"LLM 추론 모드 (6/6) — 비교와 실전 가이드: 비용·지연·품질, 그리고 어느 다이얼을 언제"

지금까지 다이얼을 하나씩 분해했다 — 1편 원리, 2편 Claude Thinking, 3·4편 Claude effort, 5편 OpenAI reasoning_effort. 마지막 6편은 둘을 나란히 놓고, "더 생각하게 하면 늘 좋아지는가"라는 물음에 벤치마크와 함께 답한다. 그리고 과제마다 어느 눈금에 둘지를 표로 정리한다.

이 시리즈의 한 줄 결론을 먼저 말하면 이렇다 — 추론 다이얼은 품질 손잡이이자 비용 손잡이이며, 정답은 "항상 최대"가 아니라 "작업 난이도에 맞추기"다. 6편은 그 결론을 뒷받침하는 비교·수치·가이드를 모은다.

한 문단 요약

Claude의 effort는 사고·텍스트·도구 호출을 한 다이얼로(기본값 high), OpenAI는 사고 깊이(reasoning_effort, 기본값 medium)와 출력 길이(verbosity)를 두 다이얼로 나눠 조절한다. 벤치마크는 다이얼이 비용효율 레버임을 보여준다 — Anthropic 보고 기준, Opus 4.5는 SWE-bench Verified에서 medium effort로 Sonnet 4.5의 최고 점수를 출력 토큰 76% 절감으로 따라잡고, high에서는 4.3%p 앞서면서 48% 적은 토큰을 썼다. 더 생각하는 게 늘 이득은 아니다(overthinking). 실전 규칙: 단순 작업은 낮게, 어려운 추론·에이전트는 높게, 진짜 난제에만 최상단.


1. Claude vs OpenAI — 한 표 비교

두 플랫폼은 같은 트레이드오프(품질 ↔ 비용·지연)를 다루지만 설계 철학이 다르다.

항목 Claude effort OpenAI reasoning_effort
레벨 low · medium · high · xhigh · max none·minimal · low · medium · high · xhigh (모델마다 다름)
기본값 high medium
조절 범위 모든 토큰 (사고 + 텍스트 + 도구 호출) 사고 깊이. 출력 길이는 별개(verbosity)
사고 제어 adaptive thinking + effort (단일 다이얼) reasoning_effort + verbosity (두 다이얼)
가장 낮은 단계 low (어려운 문제엔 여전히 사고) none / minimal (≈ 추론 거의 없음)
사고 원문 요약만, 원문 비반환 가려진 추론 + 선택적 요약
루프 비용 손잡이 Task Budgets (카운트다운, 최소 20k) (별도 없음 — effort + 출력 상한)

핵심 차이 둘:

  • 단일 vs 분리. Claude는 손잡이 하나가 사고 깊이와 출력·도구 장황함을 함께 움직인다. OpenAI는 사고(reasoning_effort)와 출력 길이(verbosity)를 따로 돌린다. "깊게 생각하되 짧게 답하라"를 OpenAI는 두 파라미터로 직접 표현하고, Claude는 프롬프트로 보완한다.
  • 기본값. Claude는 high, OpenAI는 medium. 같은 "기본값으로 두기"가 서로 다른 사고량을 의미하므로, 두 플랫폼을 오갈 때 비용·지연 체감이 달라진다.

2. 비용·지연·품질 — 같이 움직이는 세 변수

1편에서 세운 곡선을 다시 불러오자. 테스트타임 컴퓨트를 \(C_{\text{test}}\)라 하면, 어려운 문제의 정답률은 대체로 \(C_{\text{test}}\)가 커질수록 오르되 한계 효용이 줄어드는 모양이다. 다이얼을 올린다는 것은 \(C_{\text{test}}\)를 키운다는 뜻이고, 그에 따라 세 변수가 동시에 움직인다.

  • 품질 ↑ — 단, 어려운 과제에서만, 그리고 점점 완만하게.
  • 비용 ↑ — 사고/추론 토큰은 비싼 출력 토큰 등급으로 과금된다(양 플랫폼 공통). 다이얼을 올리면 보이지 않는 토큰까지 늘어 청구서가 커진다.
  • 지연 ↑ — 답의 첫 글자가 나오기 전에 사고를 끝내야 하므로 time-to-first-token이 늘어난다.

그래서 다이얼은 순수한 "더 똑똑하게" 버튼이 아니라 "품질을 위해 비용·지연을 얼마나 지불할 것인가"의 손잡이다. 곡선이 완만해지는 구간에서는 더 올려도 품질은 거의 그대로인데 비용·지연만 커진다 — 이 구간이 다음 절의 overthinking이다.

3. 벤치마크가 말하는 것 — 더 똑똑한 모델 + 낮은 effort

다이얼의 진짜 가치는 "최대로 올려 점수를 짜내는 것"이 아니라 같은 점수를 더 싸게 내는 것에 있다. Anthropic이 보고한 Opus 4.5의 SWE-bench Verified 수치가 이를 잘 보여준다.

  • medium effort: Opus 4.5가 Sonnet 4.5의 최고 점수와 동급을 — 출력 토큰 76% 절감으로 달성.
  • high effort: Opus 4.5가 Sonnet 4.5를 4.3%p 앞서면서 — 그래도 48% 적은 토큰을 사용.

읽어야 할 함의는 둘이다.

  1. 더 똑똑한 모델을 낮은 effort로 돌리는 것이, 약한 모델을 최대로 돌리는 것보다 더 좋고 더 싸다. 모델 선택과 effort 선택은 함께 봐야 한다.
  2. effort를 올리는 것이 곧 토큰 폭증은 아니다. 같은 작업을 더 적은 토큰으로 더 잘 끝낼 수도 있다 — 더 나은 추론이 헛도는 시도를 줄이기 때문이다.

즉 effort는 "비용을 태워 품질을 산다"는 단순 교환이 아니라, 모델·effort 조합에 따라 품질과 비용이 함께 좋아지는 지점이 존재하는 최적화 문제다.

4. overthinking — 더 생각이 해가 되는 곳

곡선이 완만해지는 구간을 넘어 다이얼을 더 올리면, 추가 사고는 도움이 안 될 뿐 아니라 해가 될 수 있다.

  • 출력 공간이 좁은 과제(분류·추출·포맷·단답)에서는 더 생각해도 답이 나아지지 않는다. Anthropic의 effort 문서조차 구조화 출력 작업에서 max가 "overthinking으로 이어질 수 있다"고 명시한다.
  • 과도한 사고는 멀쩡한 답을 스스로 의심해 틀린 쪽으로 고치기도 한다.
  • 그리고 그 모든 추가 사고는 비용·지연으로 그대로 청구된다 — 품질 이득 없이.

그래서 max(Claude)나 high/xhigh(OpenAI 상단)는 기본값이 아니라 예약석이다. Claude Code가 max를 현재 세션에만 적용되도록 둔 것(4편)도 같은 맥락 — 무심코 최상단이 상시 기본값으로 굳는 것을 막는 안전장치다.

5. 실전 선택 가이드 — 과제 난이도별 매칭

시리즈 전체의 원칙을 한 표로 압축한다. 과제 난이도에 다이얼을 맞추는 출발점이다(이후 자신의 평가셋으로 미세조정).

과제 유형 Claude effort OpenAI reasoning_effort
단순 분류·추출·포맷·단답 low minimal(GPT-5) / none(GPT-5.5) / low(Codex 계열)
일반 워크플로·평범한 생성 medium medium (기본값)
복잡한 추론·어려운 코딩 high (기본값) high
장기 에이전트·코딩 세션 xhigh xhigh (지원 모델)
진짜 난제(지연·비용 둔감) max high/xhigh

운영 팁:

  • 출발점부터 잡아라. Claude는 기본 high라 가벼운 작업엔 내려야 비용·지연이 준다. Sonnet 4.6은 특히 effort를 명시하지 않으면 high로 동작해 지연이 커질 수 있다 — medium을 명시적 기본으로 두는 편이 안전하다.
  • 높은 effort엔 넉넉한 출력 한도. Claude xhigh/max에서는 max_tokens를 크게(약 64k부터) 잡아 모델이 펼칠 공간을 줘야 한다(3편).
  • 답 길이 문제는 effort가 아니다. OpenAI에서 "깊게 생각하되 짧게"가 필요하면 reasoning_effort는 두고 verbosity를 내린다. Claude에서는 프롬프트로 길이를 제어한다.
  • 얕은 추론은 프롬프트가 아니라 다이얼로. 어려운 과제에서 답이 얕으면 "더 깊게 생각해" 프롬프트보다 effort를 한 단계 올리는 게 직접적이다(3편).

6. 루프 비용은 따로 — Task Budgets

턴마다의 깊이는 effort로 잡되, 에이전트 루프 전체의 누적 토큰은 별도 손잡이로 묶는 게 안전하다. Claude의 Task Budgets(output_config.task_budget, 최소 20,000)는 모델에게 루프 전체 예산을 알려주고 줄어드는 카운트다운에 맞춰 스스로 마무리하게 한다 — 모델이 인지하지 못하는 강제 상한 max_tokens와 달리, 모델이 인지하고 자기 조절하는 예산이다(3편). 긴 자율 작업에서 "깊이는 effort, 총량은 Task Budget"으로 나눠 잡으면 품질과 비용을 동시에 관리할 수 있다.

마치며

추론 모드는 결국 하나의 질문에 대한 답이다 — 이 호출에 연산을 얼마나 쓸 것인가.

  • 원리(1편): 사고는 테스트타임 컴퓨트이고 출력 토큰으로 과금된다.
  • Claude(2~4편): adaptive thinking이 "생각할지·언제"를, effort가 "얼마나 깊게·응답 전체"를 잡는다. Claude Code는 같은 다이얼을 CLI로 노출한다.
  • OpenAI(5편): reasoning_effort(깊이)와 verbosity(길이)를 두 손잡이로 나눈다.
  • 선택(6편): 작업 난이도에 다이얼을 맞춘다. 더 똑똑한 모델을 적정 effort로 — 그것이 품질과 비용을 함께 잡는 길이다.

다이얼이 보이기 시작하면, "왜 같은 모델이 어떤 날은 빠르고 싸고 어떤 날은 느리고 비싼가"가 더 이상 미스터리가 아니다. 그건 대개 다이얼이 어디에 있었느냐의 문제다.


비교·수치는 Anthropic·OpenAI 공식 문서와 Anthropic이 보고한 Opus 4.5 SWE-bench Verified 결과를 1차 자료로 정리했다. 벤치마크 수치는 모델·환경에 따라 달라질 수 있으므로, 실제 적용 전 자신의 평가셋으로 검증하기를 권한다.

시리즈 전체 안내: 시리즈 목차

댓글

이 블로그의 인기 게시물

"LLM 핵심 학습 (1/6) — 기본: 토큰화·임베딩·어텐션·위치 인코딩"

"LLM 핵심 학습 (2/6) — 파인튜닝: LoRA·QLoRA·증류·Adapter"

"ML 기초 학습 (1/9) — 머신러닝과 sklearn: 학습의 좌표계"