パラメータ: temperature, top_p, max_tokens
重要キーワード
主要パラメータ
🗓️ 2026 年の大きな変化 — 「ツマミ」の世代交代 このレッスンの
temperature/top_pは Haiku 4.5 や Sonnet 4.6 などでは今も使えます が、 Opus 4.7 以降と Claude 5 世代 (Sonnet 5 / Opus 5 / Opus 5.5 / Fable 5.1) では指定すると 400 エラー になります。 最新モデルで回答の性質を変えるツマミは、次の 2 つに移りました。
変えたいもの 旧来のツマミ 最新モデルでのやり方 ばらつき・創造性 temperature/top_pプロンプトで「大胆に 3 案」「一番無難な 1 案」と頼む 考える深さ budget_tokensoutput_config={"effort": "high"}(→ ch4-l8)出力の形 プリフィル 構造化出力 output_config.format(→ ch4-l7)🎚️ たとえるなら「音響卓からスマートスピーカーへ」 ——以前は低音・高音のつまみを 1 つずつ回していましたが、 今は「落ち着いた感じで」と 言葉で頼む と、細かい調整はモデルがやってくれる、という方向に進んでいます。 下の解説は「今も使えるモデル向けの知識」+「なぜ廃止されたかを理解するための基礎」として読んでください。
temperature (温度)
ランダム性 を制御します。
- 0.0: ほぼ決定論的 (毎回同じ出力)。
- 1.0: 多様で創造的。
- 推奨:
- 分類・抽出: 0.0
- 文章生成: 0.7
- 創作: 1.0
top_p (Nucleus Sampling)
確率の累積が p になるまでのトークン候補からサンプリング。
通常は temperature と併用せず、どちらか一方で十分です (Anthropic 公式は temperature 派)。
max_tokens
出力 の上限トークン数 (入力ではない)。
不足するとレスポンスが途中で切れて stop_reason="max_tokens" になります。
⚠️ 入力との合算で課金 されるので、入力 + 出力 が極端に大きくならないよう注意。
stop_sequences
ここに含まれる文字列が出力に現れたら停止します。 区切り文字を強制したいときに有効。
stop_sequences=["</answer>", "\n\n---"]
metadata.user_id
ユーザー単位のレートリミットや乱用検知に使われる識別子。 個人特定情報 (PII = Personally Identifiable Information) ではなく、 ハッシュ化した ID を入れるのが推奨です。
import hashlib
uid = hashlib.sha256(user_email.encode()).hexdigest()[:16]
client.messages.create(..., metadata={"user_id": uid})
実例: 決定論的 vs 創造的
# 確実に決定論的な分類
client.messages.create(
model="claude-sonnet-4-6",
max_tokens=20,
temperature=0.0,
messages=[{"role": "user", "content": "次の感情を pos/neg/neu で答えてください: 最高でした"}],
)
# 創作タスク
client.messages.create(
model="claude-opus-4-7",
max_tokens=2048,
temperature=1.0,
messages=[{"role": "user", "content": "猫が世界征服する短編小説を書いて"}],
)
試して比較
同じプロンプトで temperature を変えると応答がどう変わるか体感しましょう。
temperature=0.0 想定で「春の雨」をテーマに俳句を 1 句書いてください。temperature=1.0 で創造的に「春の雨」をテーマに俳句を 1 句書いてください。意外な角度を歓迎します。演習: temperature を変えて再現性を測る
同じ分類タスクを temperature=0.0 と 1.0 で 5 回ずつ 実行し、答えのばらつきを観察してください。
プロンプト:
次のレビューの感情を positive / negative / neutral のいずれかで答えてください。 レビュー: 「思っていたよりは普通でした」
0.0 では同じ答えに、1.0 では揺らぎが出るはずです。
まとめ
お疲れ様でした!