Skip to main content

Reasoning Models

Reasoning Models は、長い思考過程 (long chain-of-thought) を内部生成してから最終答を出すように特化した LLM です。OpenAI o1、DeepSeek-R1、Qwen QwQ、Gemini 2.5 Thinking などが代表的で、近年の LLM 研究で最も大きなトピックの一つです。

何が変わったのか

通常の LLM は、prompt を受け取って即座に答えを出します。Reasoning model は、

  • 推論前に 数千〜数万 token の思考プロセス を生成
  • 自己検証、backtrack、計画修正を含む
  • 結果として math、code、science、agent 系 task で大きく性能向上

Test-time compute scaling

Reasoning model の鍵は inference time に計算を投入する ことです。スケーリングの軸が増えました。

  • 同じ model でも、思考 token を増やすほど精度が伸びる
  • Self-consistency、tree search、program-aided reasoning と組み合わせる

どう training するのか: Reasoning RL

DeepSeek-R1 が公開したレシピが大きな影響を与えました。

  • 検証可能な reward (math 正誤、code unit test 通過) を使う
  • GRPO など policy gradient で長 CoT を強化
  • "Aha moment" 的な自己反省が emergent に現れる

利点と欠点

観点利点欠点
性能Math / code / 論理で大幅向上雑談・creative では過剰
制御思考量で精度を調整可能推論コストが線形に増える
透明性思考過程を inspect 可能思考と最終答が乖離することがある
Agent自己計画 / 反省と相性が良いレイテンシが伸びる

Long CoT の落とし穴

  • 自分の誤りを正当化し続ける (false reasoning lock-in)
  • 答えに到達後も無駄に思考し続ける
  • 多言語 mixing
  • Prompt injection が思考途中で混入

数式で見る test-time compute scaling

Reasoning model は、最終回答 aa の前に内部 reasoning trace zz を生成します。通常の model が p(ax)p(a\mid x) を直接出すのに対し、reasoning model は次の周辺化として見られます。

p(ax)=zpθ(ax,z)pθ(zx)p(a\mid x)=\sum_z p_\theta(a\mid x,z)p_\theta(z\mid x)

実際には全ての zz を足し上げられないため、複数の reasoning trace を sample して、最終回答を voting します。

a^=argmaxak=1K1[ak=a]\hat{a}=\arg\max_a \sum_{k=1}^{K}\mathbf{1}[a_k=a]

この式の気持ちは、「一回の思考で答えるのではなく、複数の思考経路を試し、最も一貫して出る答えを選ぶ」というものです。KK を増やすほど test-time compute は増えますが、math や code のように検証可能な task では精度が伸びやすくなります。

Verifiable reward を使う reasoning RL では、回答が unit test や exact match に通るかを reward にします。

R(x,y)=1[Verify(x,y)=true]R(x,y)=\mathbf{1}[\mathrm{Verify}(x,y)=\mathrm{true}]

このような reward は人間の好みよりも明確なので、長い reasoning trace の強化学習に使いやすいという利点があります。

関連ページ

主なソース