본문으로 건너뛰기
12/3030개 중 12장

Chain of Thought, RLVR, Test-Time Compute를 측정하다

같은 24문제: 1.9 token으로 0%, 145 token으로 100%. self-consistency는 greedy decoding의 정확도를 되사는 비용이었다.

이 페이지에서

두 단계짜리 문장제 문제 24개. 작은 model — 5억 parameter, 11장의 그 model — 에게 각 문제를 두 번 물었습니다.

먼저, 답만 요구했습니다:

TEXT
"...How many bolts are left?  Reply with only the final number, nothing else."

  0 / 24 correct        1.9 tokens per answer

그다음, 먼저 풀이해도 된다는 허가와 함께 답을 요구했습니다:

TEXT
"...How many bolts are left?  Think step by step, then give the final
 number on its own line."

  24 / 24 correct       145.2 tokens per answer

0에서 100퍼센트까지. 같은 model, 같은 weights, 같은 문제, 같은 greedy decoding입니다. 유일한 차이는 두 번째 버전이 숫자를 확정하기 전에 143개 token을 더 내보낼 수 있었다는 점입니다.

이 장은 그 간극에 관한 이야기입니다. 그것이 실제로 무엇인지, 어디까지 가는지, 비용은 얼마인지, 그리고 이 분야가 prompt로 그것을 요구하는 일을 멈추고 훈련에 넣기 시작했을 때 무슨 일이 일어났는지를 다룹니다.

model은 생각하지 않습니다. 더 오래 계산합니다.

섹션 링크: model은 생각하지 않습니다. 더 오래 계산합니다.

두 번째 버전이 “생각해 봤다”고 말하고 싶은 유혹이 있습니다. 하지만 참아야 합니다. 그 메커니즘은 더 단순하고, 알아두면 더 유용하기 때문입니다.

transformer는 생성되는 token마다 고정된 양의 계산을 수행합니다. 한 번의 forward pass: 질문이 2+2는 무엇인가이든 이 정리를 증명하라이든 같은 layer, 같은 matrix, 같은 연산 수를 거칩니다. model 내부에는 “이번 건 더 열심히 해봐”라는 다이얼이 없습니다.

그래서 model에게 즉시 답하라고 하면, model이 사용할 수 있는 전체 계산은 한 번의 forward pass뿐입니다. 모든 중간 값은 그 단일 pass의 activation 안에 들어가야 하며, 거기서 계산하지 못하는 것은 계산할 수 없습니다.

token을 내보내면 이것이 달라집니다. 그리고 구분해 볼 가치가 있는 두 가지 방식으로 달라집니다:

  • 더 많은 계산. 생성되는 token 하나하나가 또 하나의 완전한 forward pass입니다. 145개 token의 풀이 과정은 곧바로 답하는 것보다 145배의 산술 계산을 뜻합니다.
  • 외부화된 memory. token은 context에 기록되므로, 다음 pass가 그것을 읽을 수 있습니다. 5 × 13 = 65는 activation 안에 보관하고 앞으로 운반해야 하는 값이 아니라 입력 안의 사실이 됩니다. model은 자신의 출력을 scratchpad로 쓰고 있는 것입니다.

사람들이 놓치는 것은 두 번째 지점이고, 풀이가 도움이 되려면 왜 반드시 써 내려가야 하는지를 설명해 줍니다. “속으로 생각한 다음 답하라”고 요청받은 model에게는 그 생각을 둘 곳이 없습니다.

여기에는 신비로운 것이 전혀 필요하지 않습니다. 그리고 이는 분명한 예측을 만듭니다. chain of thought는 직렬적 구조를 가진 문제 — 2단계가 1단계의 결과를 필요로 하는 문제 — 에서 가장 도움이 되고, 단일 조회로 끝나는 문제에서는 가장 덜 도움이 되어야 합니다. 실제 문헌도 정확히 그렇게 말합니다. 그래서 “단계별로 생각해 보라”는 지시가 프랑스의 수도는 어디인가에는 아무 효과가 없습니다.

prompting 기법으로서의 Chain of thought

섹션 링크: prompting 기법으로서의 Chain of thought

이 기법은 2022년에 두 조각으로 등장했습니다. Wei 등은 prompt에 풀이 예시 — 답 앞에 추론이 붙은 demonstration — 를 포함하면 산술과 상식 benchmark에서 큰 향상이 나타난다는 것을 보였습니다.1 이어 Kojima 등은 더 이상한 것을 보였습니다. 예시가 필요 없다는 것입니다. zero-shot prompt 끝에 **“Let's think step by step”**을 붙이면 같은 이득의 상당 부분을 얻습니다.2

두 번째 결과가 실제로 무슨 일이 일어나는지 알려줍니다. 마법 문구가 행동을 풀어낸다면, 그 행동은 이미 model 안에 있던 것입니다. pretraining에는 풀이가 포함된 해설이 가득하고, 그 문구는 distribution의 그 영역을 가리키는 포인터입니다. Chain of thought는 model에게 아무것도 가르치지 않았습니다. model이 이미 갖고 있던 것을 선택했을 뿐입니다.

이 관점은 이 기법이 결국 낡아질 것이라는 예측도 합니다. 그 이야기는 이 장 끝에서 다시 돌아옵니다.

Self-consistency, 그리고 나를 놀라게 한 결과

섹션 링크: Self-consistency, 그리고 나를 놀라게 한 결과

다음 수는 명확합니다. 하나의 reasoning chain이 틀릴 수 있다면, 여러 개를 sampling하고 다수결 답을 택하면 됩니다. 이것이 self-consistency입니다.3 이는 엄밀히 더 큰 지출입니다. 한 번 대신 nn번의 전체 generation이 필요합니다. 직관은 오답은 흩어지고 정답은 서로 일치한다는 것입니다.

같은 문제 중 16개에서 temperature 0.8로 sampling하고, nn개의 chain에 대해 majority vote를 했을 때:

nnaccuracycumulative tokenstokens per problem
181 %2,952185
281 %5,618351
3100 %8,417526
4100 %11,103694
5100 %13,933871

16문제는 작은 분모이고, 4장의 규칙은 이 표에도 다른 모든 표만큼 적용됩니다. 16개 중 13개는 81 %이고 95 % Wilson interval은 [57, 93]입니다. 16개 중 16개는 100 %이고 [81, 100]입니다. 둘은 겹칩니다. 발견은 곡선의 형태에 있습니다. 정확히 어느 계단에서 평평해지는지는 읽지 마세요. 16문제로는 그 위치를 찾을 수 없습니다.

그 표에는 두 가지가 있습니다. 그리고 두 번째는 제가 예상한 것이 아니었습니다.

곡선은 n=3n = 3에서 평평해집니다. 세 번째 sample에서 accuracy가 상한에 도달하고, 남은 두 sample은 각각 172 token, 합쳐서 345 token을 쓰면서도 아무것도 사지 못합니다. 이것이 문헌에 보고된 모든 self-consistency 곡선의 형태이며, “sample이 많을수록 더 좋다”는 프레이밍이 암시하는 것보다 훨씬 이릅니다.

그리고 greedy decoding은 이미 100 %였습니다. 이 장의 맨 위를 다시 보세요. 하나의 chain, sampling 없음, 145 token, 24/24. temperature 0.8로 sampling하자 accuracy는 81 %로 떨어졌고, self-consistency는 단일 greedy pass가 이미 도달한 곳으로 다시 올라가기 위해 세 번의 generation이 필요했습니다. 3.6배의 token으로 말입니다. 어디서 평평해지는지 모른 채 다섯 번까지 sweep하면 여섯 배입니다.

이것은 self-consistency에 반대하는 주장이 아닙니다. 그것이 무엇을 하는지에 대한 정확한 진술입니다. temperature는 error를 주입해 다양성을 사고, voting은 방금 주입한 error를 제거합니다. greedy decoding이 실패하는 문제 — 가장 가능성 높은 단일 chain이 틀린 곳으로 가고, 덜 가능성 높은 chain이 맞는 문제 — 에서는 이 trade가 이득이 됩니다. 그래서 이 기법이 존재합니다. greedy가 이미 성공하는 문제에서는, 예산을 여섯 배 써서 본전으로 돌아오는 방법입니다.

아무도 두 번째 경우를 publish하지 않습니다. 그래서 이 기법을 채택하기 전에 자신의 task에서 측정해 볼 가치가 있습니다. 이것들은 작은 model을 위한 쉬운 두 단계 문제입니다. 답이 이렇게 나오는 regime입니다.

지금까지의 모든 것은 그것을 위해 특별히 훈련되지 않은 model에서 prompt time에 일어납니다. 현재 세대의 reasoning model을 만들어낸 변화는 이를 훈련으로 옮긴 것이었습니다. 그리고 그것을 가능하게 만든 열쇠는 들리는 것보다 더 좁습니다.

11장의 post-training에는 human preferences가 필요했습니다. “이 답이 좋은 답인가?”에는 programmatic answer가 없기 때문입니다. 하지만 어떤 질문에는 있습니다. 수학 답은 정답 값과 같거나 같지 않습니다. Code는 test를 통과하거나 통과하지 못합니다. Proof는 check되거나 check되지 않습니다.

그런 domain에서는 reward model을 verifier로 대체할 수 있고, 그 아래의 모든 것이 한꺼번에 좋아집니다. annotator도, Bradley–Terry fitting도, 11장에서 측정한 종류의 reward hacking도 없습니다. unit test에게 아첨할 수는 없기 때문입니다. 이것이 reinforcement learning from verifiable rewards이고, GRPO가 만들어진 설정입니다. 같은 문제에 대한 solution attempt 그룹을 sampling하고, 각각을 check한 다음, 그룹의 평균 score를 baseline으로 사용합니다. critic도, annotator도, reward model도 없습니다. 그저 맞다 또는 틀리다를 말해 주는 program만 있습니다.

Outcome reward. 최종 답만 score합니다. 저렴합니다 — string comparison이면 됩니다 — 그리고 명백한 구멍이 있습니다. 잘못된 reasoning을 거쳐 정답 숫자에 도달한 solution도 올바른 solution과 똑같이 reward를 받으므로, policy는 그럴듯해 보이는 nonsense가 우연히 맞아떨어지도록 배울 자유가 있습니다.

Process reward.step을 score합니다. Lightman 등5은 이를 수행하는 model을 훈련하기 위해 human-labelled reasoning step 800,000개 dataset을 만들었고, 어려운 수학에서 outcome supervision을 상당히 능가한다는 것을 보였습니다. 비용은 이름 안에 있습니다. 누군가 800,000개의 step에 label을 붙였습니다.

이 분야의 관점을 바꾼 결과는 2025년 초 DeepSeek에서 나왔습니다.6 그들은 base model에 verifiable rewards를 이용한 reinforcement learning을 직접 적용했습니다. 먼저 supervised fine-tuning 단계를 거치지 않았습니다. 11장이 모든 것의 토대로 제시하는 바로 그 단계 없이 말입니다. 그런데도 긴 reasoning chain이 emerge했습니다. 아무도 훈련하지 않은 행동도 나타났습니다. model은 자신의 step을 다시 check하기 시작했고, 논문에서 가장 많이 인용된 대목에서는 solution 중간에 접근법을 자발적으로 재고했습니다.

정직한 해석은 reasoning이 마법이라는 것이 아닙니다. reward되는 유일한 것이 맞는 것이고, 어려운 문제에서 맞으려면 문제를 끝까지 풀어 나가야 한다면, optimiser가 찾아내는 것은 바로 그렇게 풀어 나가는 것이라는 뜻입니다. 인간도 하는 그 일부 행동까지 포함해서요. 그것들은 누가 가르쳤기 때문이 아니라 문제가 요구하기 때문에 나타납니다.

Reasoning token은 청구서의 한 줄입니다

섹션 링크: Reasoning token은 청구서의 한 줄입니다

이 모든 것의 실무적 결과는 reasoning model이 사용자가 요청한 token과 요청하지 않은 token을 모두 생성하고, 사용자가 둘 다에 비용을 지불한다는 것입니다.

Provider마다 이를 다르게 처리하고, 그 차이는 중요합니다:

  • 대부분의 API는 reasoning token을 output token count 안에 포함합니다. 청구액과 max_tokens limit에는 보이지 않는 생각까지 모두 포함됩니다.
  • Google의 Gemini는 thinking token을 표준 output count 밖의 별도 field로 보고합니다.

이는 같은 것을 세는 두 방식 사이의 실제 incompatibility이며, provider를 가로질러 cost를 계산하거나 budget을 강제하는 code는 이를 normalize해야 합니다. 16장에서는 이것이 돈이 되고, 23장에서는 집행 가능한 budget이 됩니다.

다른 결과는 처음 겪는 사람들을 놀라게 하는 latency 문제입니다. reasoning model의 첫 visible token까지 걸리는 시간에는 모든 thinking이 포함됩니다. 그래서 8초 동안 아무것도 stream하지 않다가 1초 만에 답하는 request는 connection이 멈춘 것이 아닙니다. model이 일하고 있는 것입니다. 8초 동안 설명 없이 spinner만 보여 주는 interface에는 networking 문제가 아니라 design 문제가 있습니다.

“think step by step”이 더 이상 도움이 되지 않을 때

섹션 링크: “think step by step”이 더 이상 도움이 되지 않을 때

마지막 경고입니다. 이 장의 내용을 가장 흔히 잘못 적용하는 방식이기 때문입니다.

앞부분의 모든 것은 reasoning하도록 훈련되지 않은 model이 그래도 reasoning을 생성하게 만드는 기법입니다. RLVR로 훈련된 model은 이미 그것을 합니다. 답하기 전에 스스로의 풀이를, 스스로의 길이로 내보냅니다. 그런 model에게 단계별로 생각하라고 말하는 것은 좋게 봐도 중복이고, 나쁘게는 해롭습니다. model이 스스로 생성했을 더 긴 chain 대신 짧고 prompt 모양을 한 chain을 만들 수 있으며, 일부 provider는 정확히 이를 문서화합니다.

application code에 구축한 정교한 reasoning scaffold에도 같은 말이 적용됩니다. model이 이미 내부적으로 탐색하는 decision tree를 prompt로 따라 걷게 만드는 것은, 훈련된 행동을 제약하기 위해 사용자의 token을 쓰는 일입니다. 이것은 이 course의 나머지 전체를 관통하는 주제의 첫 등장입니다. 2022년에 필수였던 기법이 2025년에는 미신이 되었습니다. 그리고 오늘, 사용자의 model에서 어느 쪽이 어느 쪽인지 알 수 있는 유일한 방법은 둘 다 측정하는 것입니다.

15장에서는 그 측정이 의견이 아니라 discipline이 됩니다.

Reasoning에는 불편한 속성이 있습니다. 질문이 어려울수록 cost가 커지는 유일한 capability라는 점입니다. 900 token 동안 생각하는 model은 900번의 forward pass를 수행하고, 그 모든 pass를 위해 memory 안에 커지는 cache를 유지하며, 그 시간 동안 GPU를 붙잡고 있습니다.

이 때문에 reasoning model을 serving하는 economics는 chat model을 serving하는 것보다 훨씬 나빠집니다. 그리고 implementation detail들의 집합이 viable product와 unviable product의 차이를 만듭니다. 과거 key와 value의 cache를 어떻게 저장하고 재사용하는지, 얼마나 많은 request가 하나의 forward pass를 공유할 수 있는지, weights에 실제로 어느 정도의 precision이 필요한지가 그 차이입니다.

13장은 model이 port 뒤의 service가 아니라 사용자의 memory 안에 있는 object인 마지막 장이며, 그 object를 serving할 만큼 저렴하게 만드는 이야기입니다. 또한 이 장에서 한 약속도 회수합니다. speculative decoding입니다. 작은 model이 추측하고 큰 model이 check하게 해, 대략 하나의 가격으로 여러 token을 생성하는 trick입니다. forward pass의 상당 부분이 arithmetic을 하는 데가 아니라 memory를 기다리는 데 쓰인다는 것을 본 뒤에야 의미가 생기는 trick입니다.


이 장의 모든 측정값은 생성된 두 단계 문장제 문제 24개에 대해 Qwen/Qwen2.5-0.5B-Instruct에서 얻었습니다. sampling이 명시된 경우를 제외하면 greedy decoding을 사용했고, 사용한 token cap에서 truncated generation은 0개였습니다. 재현 가능하며, 쉬운 문제에서 작은 model을 측정한 것입니다. self-consistency 결과는 benchmark가 아니라 메커니즘의 demonstration으로 읽어야 합니다. CS229 lecture notes 18장과 Hugging Face LLM Course 12장도 더 큰 model과 적절한 benchmark로 이 내용을 다룹니다.

  1. Wei, J. et al. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903 (2022).

  2. Kojima, T., Gu, S. S., Reid, M., Matsuo, Y. and Iwasawa, Y. Large Language Models are Zero-Shot Reasoners. arXiv:2205.11916 (2022). “let's think step by step” 결과.

  3. Wang, X. et al. Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171 (2022).

  4. Yao, S. et al. Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601 (2023).

  5. Lightman, H. et al. Let's Verify Step by Step. arXiv:2305.20050 (2023). 800,000-step process supervision dataset인 PRM800K를 소개합니다.

  6. DeepSeek-AI. DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning. arXiv:2501.12948 (2025). R1-Zero 결과 — supervised fine-tuning 단계 없이 base model에 reinforcement learning을 직접 적용한 결과 — 는 2.2절에 있습니다.

  7. Snell, C., Lee, J., Xu, K. and Kumar, A. Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters. arXiv:2408.03314 (2024).


제작자

David Vicente Campos

NeuraLIA Labs 창립자 & MyRealFood 공동 창립자

저는 레온 대학교 출신의 컴퓨터 엔지니어입니다. MyRealFood를 공동 창업해 수백만 명이 더 건강하게 먹기 위해 사용해 온 앱을 CTO로서 만들었고, NeuraLIA Labs를 설립해 그곳에서 AI 제품을 만들고 있습니다. 여기서는 제가 그 과정에서 이해해야 했던 것들에 대해, 누군가 제게 설명해줬으면 했던 방식으로 쓰고 있습니다.

저자 더 알아보기

NeuraLIA Labs에서 발행합니다.

새 글을 받은편지함에서 받아보세요

AI 뉴스, 가이드, 제품 업데이트 — 읽을 만한 소식이 있을 때 짧은 이메일로 보내드려요.

메시지가 편하다면 같은 글을 여기서도 받아보세요:WhatsApp 커뮤니티 (새 탭에서 열림)Telegram 채널 (새 탭에서 열림)

강좌 목차

Abstract software decision engine with branching paths, probability nodes, and glowing gates.
jev13분 읽기

Jev AI 모델은 글쓰기가 아니라 결정을 위해 만들어졌다

TypeSafe AI의 Jev가 주목받는 이유는 소프트웨어 지능을 확률 문제로 다루기 때문입니다. 올바른 분기를 선택하고, 신뢰도를 붙이며, 코드에 필요한 것이 결정일 때 LLM에 텍스트 작성을 맡기는 비용을 피합니다.

이제 모델 선택은 LIA에게 맡기세요

모든 AI 모델을 한곳에서. 오늘 무료로 시작하세요.