推論モデルの違い
内部チェーン・オブ・ソートと標準モデルの違いが、プロンプト作成者にとって何を意味するかを学びます。
「推論モデルの違い」はCoddyKit上の無料AI Prompt Engineeringレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Prompt Engineering学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Prompt Engineeringコースには全4レッスンが含まれています。
推論モデルとは
推論モデルとは、応答を生成する前に、長時間の内部的な熟考を行うよう特別に学習・構成されたLLMです。例として、OpenAIのo1/o3/o4シリーズや、拡張思考を有効にしたAnthropicのClaudeがあります。
プロンプトから直接テキストをトークン単位で生成する標準モデルとは異なり、推論モデルはまず長い思考の連鎖を内部で生成し、それを最終的な回答に要約します。
標準モデルと推論モデル:見える違い
APIユーザーから見た違いは次のとおりです。
- 標準モデル:入力 → 出力(高速、直接的)
- 推論モデル:入力 → [内部思考、非表示またはストリーミング] → 出力(低速、難しい問題ではより正確)
思考プロセスは、モデル専用の非公開スクラッチパッドです。そこには、最終回答には現れない誤った試行、自己修正、中間計算が含まれることがあります。
OpenAI oシリーズ:APIの動作
OpenAIのo1/o3/o4モデルは内部で思考を処理するため、デフォルトでは推論トークンを見ることができません。使用量のメタデータで思考トークン数を確認することはできますが、その内容は確認できません。
import openai
client = openai.OpenAI(api_key='sk-...')
# o3 — reasoning happens internally
response = client.chat.completions.create(
model='o3',
messages=[
{'role': 'user', 'content': 'Solve: A train leaves Chicago at 9am going 60mph. Another leaves NYC at 10am going 80mph. If the distance is 790 miles, when do they meet?'}
],
# reasoning_effort='high' # Optional: 'low', 'medium', 'high'
)
print(response.choices[0].message.content)
# Check how many tokens were used for thinking:
print('Input tokens:', response.usage.prompt_tokens)
print('Output tokens:', response.usage.completion_tokens)Claudeの拡張思考:APIの動作
AnthropicのClaudeでは、APIを通じて拡張思考トークンを取得できます。モデルの推論プロセスをリアルタイムでストリーミングし、観察できます。思考の内容は最終応答の前に現れます。
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
# Enable extended thinking
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=16000,
thinking={
'type': 'enabled',
'budget_tokens': 10000 # Max tokens for thinking
},
messages=[{
'role': 'user',
'content': 'What is the 100th prime number?'
}]
)
# Response contains both thinking blocks and text blocks
for block in response.content:
if block.type == 'thinking':
print('THINKING:', block.thinking[:200], '...')
elif block.type == 'text':
print('ANSWER:', block.text)思考トークンをストリーミングする
拡張思考をリアルタイムでストリーミングし、モデルの推論が進む様子を確認できます。これはUXに役立ちます。たとえば、「思考中」のアニメーションを表示したり、高度なユーザーが推論プロセスを観察できるようにしたりできます。
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
def stream_with_thinking(question):
with client.messages.stream(
model='claude-opus-4-5',
max_tokens=16000,
thinking={'type': 'enabled', 'budget_tokens': 8000},
messages=[{'role': 'user', 'content': question}]
) as stream:
current_block_type = None
for event in stream:
# Track which block type we're in
if hasattr(event, 'type'):
if 'thinking' in str(event.type):
current_block_type = 'thinking'
elif 'text' in str(event.type):
current_block_type = 'text'
# Print text delta
if hasattr(event, 'delta') and hasattr(event.delta, 'text'):
prefix = '[THINK] ' if current_block_type == 'thinking' else '[ANS] '
print(prefix + event.delta.text, end='', flush=True)
stream_with_thinking('Explain why P != NP is unproven.')内部で起きていること:スクラッチパッド
モデルの内部思考は、次のことを行えるスクラッチパッドです。
- 最終決定の前に複数のアプローチを検討する
- 計算を行い、正しさを検証する
- 自分の誤りを特定して、前の段階に戻る
- エッジケースを検討する
- 複数ステップの解決策を計画する
この内部的な熟考があるため、推論モデルは難しい数学、コーディング、戦略立案において標準モデルを大幅に上回ります。つまり、文章を書く前に文献レビューを行っているようなものです。
budget_tokens: 思考の深さの制御
budget_tokens(Claude)または reasoning_effort(OpenAI)は、モデルがどの程度思考するかを制御します。思考量を増やすと、難しい問題に対する精度は高まりますが、コストとレイテンシーも増加します。
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
def ask_with_budget(question, budget):
r = client.messages.create(
model='claude-opus-4-5',
max_tokens=budget + 2048, # must exceed budget_tokens
thinking={'type': 'enabled', 'budget_tokens': budget},
messages=[{'role': 'user', 'content': question}]
)
thinking_tokens = sum(
len(b.thinking.split()) * 1.3 # rough estimate
for b in r.content if b.type == 'thinking'
)
answer = next(b.text for b in r.content if b.type == 'text')
return answer, int(thinking_tokens)
# Same hard question with different budgets
q = 'Prove that the square root of 2 is irrational.'
ans_small, tok_small = ask_with_budget(q, 1024)
ans_large, tok_large = ask_with_budget(q, 8000)
print(f'Small budget ({tok_small} thinking tokens): {ans_small[:100]}')
print(f'Large budget ({tok_large} thinking tokens): {ans_large[:100]}')Temperatureと推論モデル
推論モデルは、temperatureの設定によって動作が異なります。
- OpenAIのoシリーズでは、temperatureのデフォルト値は1で、常に変更できるとは限りません
- Claudeの拡張思考では、通常、思考中のtemperatureは1に設定されます
推論モデルの動作を制御するためにtemperatureを使おうとしないでください。代わりに budget_tokens または reasoning_effort を使用してください。
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
# For Claude with extended thinking, temperature=1 is the default
# and best practice
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=10000,
temperature=1, # Required to be 1 when extended thinking is enabled
thinking={
'type': 'enabled',
'budget_tokens': 5000
},
messages=[{
'role': 'user',
'content': 'Write a Python function to find all prime numbers up to N.'
}]
)
print(response.content[-1].text[:300])パフォーマンスベンチマーク: 推論モデルが優位な分野
推論モデルは、次の分野で標準モデルを大幅に上回ります。
- 競技数学: AIME、AMC(o3は人間の専門家に近い性能)
- 複雑なコーディング: 競技プログラミング(Codeforces)
- 科学的推論: GPQA(大学院レベルの科学)
- 多段階の論理: 順序立てた推論が必要な問題
単純なタスク(文法、要約、事実に関するQ&A)では、標準モデルが10~100分の1のコストで同等の性能を発揮します。
レイテンシーの実態
推論モデルは処理が遅くなります。推論の負荷が高い難しい問題では、30~60秒かかる場合があります。それに応じてUXを設計してください。
- 「thinking...」などの進行状況インジケーターを表示する
- ストリーミングを使い、利用可能になった部分的な結果を表示する
- レイテンシーが重要なリアルタイムチャットには推論モデルを使わない
- 既知の難しい質問については、推論モデルの出力を事前計算しておく
import time
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
def timed_reasoning_call(question, budget):
start = time.time()
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=budget + 2000,
thinking={'type': 'enabled', 'budget_tokens': budget},
messages=[{'role': 'user', 'content': question}]
)
elapsed = time.time() - start
answer = next(b.text for b in response.content if b.type == 'text')
print(f'Latency: {elapsed:.1f}s | Answer: {answer[:100]}')
return answer
# Hard problem — expect 20-45 seconds
timed_reasoning_call(
'Design a database schema for a multi-tenant SaaS billing system.',
budget=8000
)推論モデルとシステムプロンプト
推論モデルは、標準モデルとは異なる方法でシステムプロンプトに応答します。回答前に内部で熟考するため、システムプロンプトに含まれる複雑な多段階の指示にも、より確実に従うことができます。
ただし、非常に長く制約の多いシステムプロンプトは、内部推論と衝突する可能性があります。ベストプラクティスは、推論モデルのシステムプロンプトを簡潔に保つことです。役割と出力形式を定義し、方針はモデルの内部推論に任せてください。
理解度チェック: 推論モデルの思考
プロンプトの作成者が提供するものと、推論モデルの内部で起こることの主な違いは何ですか。
まとめ: 推論モデルの違い
o1/o3のような推論モデルや、拡張思考を備えたClaudeは、応答前に内部のchain-of-thoughtを実行します。プロンプトの作成者は問題を提示し、モデルは内部で方針を検討し、複数のアプローチを試しながら自己修正したうえで、最終的な回答を生成します。思考の深さは、budget_tokens(Claude)または reasoning_effort(OpenAI)で制御します。推論モデルは、複雑な数学、コーディング、多段階の論理に優れていますが、標準モデルよりコストが10~100倍高く、処理も10~100倍遅くなります。UXでレイテンシーを管理するため、ストリーミングと進行状況インジケーターを使用してください。
よくある質問
「推論モデルの違い」レッスンは無料ですか?
はい。「推論モデルの違い」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Prompt Engineeringコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Prompt Engineeringコースには全4レッスンが含まれています。
「推論モデルの違い」で何を学びますか?
内部チェーン・オブ・ソートと標準モデルの違いが、プロンプト作成者にとって何を意味するかを学びます。 ブラウザで直接実行するハンズオンコードでAI Prompt Engineeringを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AI Prompt Engineeringを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAI Prompt Engineeringは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「推論モデルの違い」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAI Prompt Engineeringレッスンでコードを書いて実行できますか?
はい。すべてのAI Prompt Engineeringレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。