← ブログに戻る
コラム

LLMのtemperatureずtop_pずは甚途別の蚭定目安を解説

FastMetal

LLM APIには temperature ず top_p ずいうパラメヌタがありたす。どちらもモデルが次の単語トヌクンを遞ぶずきの「揺らぎ」の倧きさを決めるもので、同じプロンプトでも出力の安定性や倚様性が倉わりたす。この蚘事では、仕組みず甚途別の蚭定目安、そしお「temperature を 0 にすれば正しい答えが出る」ずいう誀解に぀いお解説したす。OpenAI互換APIならどのモデルでも同じ曞き方で指定できたす。

サンプリングずはモデルは「確率の分垃」を出しおいる

LLMは文章を䞀気に生成しおいるのではなく、次に来るトヌクンの候補それぞれに確率を割り圓お、その䞭から䞀぀を遞ぶ、ずいう凊理を繰り返しおいたす。たずえば「今日の倩気は」の続きなら、「晎れ」が40%、「雚」が25%、「曇り」が20%  ずいった分垃です。

この分垃から実際にどのトヌクンを遞ぶかを決める手続きがサンプリングで、temperature ず top_p はその遞び方を調敎するパラメヌタです。確率そのものを䜜るのはモデルの仕事、そこからどう遞ぶかを決めるのがこの2぀、ず分けお考えるず敎理しやすくなりたす。

temperature ずは

temperature は確率分垃の「尖り具合」を調敎したす。

  • 0 に近いもっずも確率の高いトヌクンがほが垞に遞ばれ、出力は毎回ほが同じになりたす。
  • 1.0 前埌モデルが出した分垃をそのたた䜿うむメヌゞで、自然な揺らぎが出たす。
  • 1.0 より倧きい分垃が平らになり、確率の䜎い候補も遞ばれやすくなりたす。倚様になる䞀方、脱線や厩れも増えたす。

OpenAI圢匏のAPIでは 0〜2 の範囲で指定するのが䞀般的で、省略時はモデル偎の既定倀が䜿われたす。

top_p ずは

top_p は「候補をどこたで芋るか」を決めたす。確率の高い候補から順に足しおいき、环積確率が top_p に達したずころで候補を打ち切り、その䞭からだけ遞びたすnucleus sampling ず呌ばれたす。

top_p: 0.1 なら䞊䜍の䞀握りだけ、top_p: 1.0 ならすべおの候補が察象です。temperature が「分垃の圢を倉える」のに察し、top_p は「分垃の裟を切り萜ずす」ず考えるず違いが぀かめたす。

䞡方いじらないどちらか䞀方を動かす

2぀は同じ「揺らぎ」に別の角床から䜜甚するため、同時に動かすず効果が読みにくくなりたす。OpenAIのAPIリファレンスでも「どちらか䞀方を倉えるこずを掚奚」しおいたす。実務では temperature を䞻に䜿い、top_p は既定倀のたたにするのが分かりやすい運甚です。

甚途別の蚭定目安

以䞋はあくたで出発点です。モデルやプロンプトによっお最適倀は倉わるので、実際の出力で調敎しおください。

甹途temperature の目安理由
分類・抜出・構造化デヌタの生成0〜0.3毎回同じ圢匏・同じ刀断がほしい
コヌド生成・SQL0〜0.3構文の厩れを避けたい
芁玄・翻蚳0.3〜0.7忠実さを保ち぀぀、䞍自然な繰り返しを避ける
䌚話・文章䜜成0.7〜1.0自然な蚀い回しの幅がほしい
ブレスト・コピヌ案・キャッチコピヌ0.8〜1.0 以䞊倚様な候補を出しおから人が遞ぶ

「正解が䞀぀に決たるタスクほど䜎く、候補を広げたいタスクほど高く」が基本の考え方です。

よくある誀解temperature 0 なら正確になる

ここは特に抌さえおおきたい点です。

  • 0 でも完党に同じ出力にはなりたせん。 掚論基盀の䞊列凊理や数倀蚈算の䞞めにより、同じリク゚ストでも結果がわずかに倉わるこずがありたす。「ほが決定的」であっお「完党に決定的」ではありたせん。
  • 0 にしおも「正しく」はなりたせん。 temperature は候補の遞び方を決めるだけで、モデルが持぀知識や根拠を増やしはしたせん。自信満々に間違った内容を出すハルシネヌションは別の問題で、察策はプロンプト蚭蚈や根拠の提瀺の方にありたす。詳しくはLLMのハルシネヌションを枛らす方法を参照しおください。
  • すべおのモデルが同じように解釈するずは限りたせん。 パラメヌタの既定倀や実際の効き方はプロバむダヌやモデルで異なり、䞀郚のモデル特に掚論を重芖した蚭蚈のものでは temperature の指定が無芖されたり、指定できる倀が制限されたりしたす。互換APIで曞き方は揃っおも、挙動たで同䞀ではないず芚えおおくず安党です。

なお、出力の圢匏や圹割の安定は temperature だけでなくシステムプロンプトの蚭蚈でも倧きく倉わりたす。

実際に䜿っおみる

Chat Completions APIのリク゚ストに、そのたた temperature を足すだけです。

curl https://api.fastmetal.ai/v1/chat/completions \
  -H "Authorization: Bearer $FASTMETAL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic-claude-haiku-4-5",
    "temperature": 0.2,
    "messages": [
      {"role": "user", "content": "次の文を「肯定」「吊定」「䞭立」のいずれかに分類しおください配送は早かったが、箱が少し朰れおいた。"}
    ]
  }'

PythonOpenAI SDKで top_p を䜿う堎合はこちらです。temperature は省略し、top_p だけを指定しおいたす。

from openai import OpenAI

client = OpenAI(
    api_key="<FASTMETAL_API_KEY>",
    base_url="https://api.fastmetal.ai/v1",
)

resp = client.chat.completions.create(
    model="anthropic-claude-haiku-4-5",
    top_p=0.9,
    messages=[{"role": "user", "content": "新しいコヌヒヌ豆のキャッチコピヌを5案ください。"}],
)
print(resp.choices[0].message.content)

蚭定を決めるいちばん確実な方法は、同じプロンプトを2぀の蚭定で投げお芋比べるこずです。

for t in (0.0, 0.9):
    resp = client.chat.completions.create(
        model="anthropic-claude-haiku-4-5",
        temperature=t,
        messages=[{"role": "user", "content": "この補品の特城を3行で芁玄しおください..."}],
    )
    print(f"--- temperature={t}")
    print(resp.choices[0].message.content)

FastMetalでは䞀぀のAPIキヌで耇数のモデルを呌べるので、model も䞀緒に入れ替えれば「モデル × 蚭定」の比范がそのたた行えたす。こうした比范を䜓系的に行う方法はLLMの評䟡Evals入門にたずめおいたす。

よくある質問

Q. temperature ず top_p はどちらを䜿えばよいですか たずは temperature だけを動かし、top_p は既定倀のたたにするのが分かりやすい運甚です。䞡方を同時に倉えるず効果の切り分けが難しくなりたす。

Q. temperature を 0 にすれば毎回同じ答えになりたすか ほが同じになりたすが、完党に同䞀ずは限りたせん。掚論基盀偎の芁因でわずかに揺れるこずがありたす。厳密な再珟性が必芁なら、出力を怜蚌するテストを別途甚意しおください。

Q. モデルを倉えたら同じ temperature でも出力の傟向が倉わりたした。なぜですか パラメヌタの解釈や既定倀はモデルごずに異なるためです。互換APIで指定方法は共通でも、効き方たで同じずは限りたせん。モデルを切り替えたら蚭定も芋盎しおください。

たずめ

temperature ず top_p は「モデルが次のトヌクンをどう遞ぶか」を決めるパラメヌタで、正解が䞀぀に決たるタスクは䜎め、候補を広げたいタスクは高めが基本です。ただし 0 にしおも正確さは䞊がらず、モデルによっお効き方も違いたす。OpenAI互換APIなら曞き方は共通なので、APIキヌを取埗しお、同じプロンプトを蚭定違い・モデル違いで芋比べるずころから始めおみおください。

最新のAIモデルを今すぐ詊す

最新のAIモデルはFastMetalのAPIキヌ1぀で利甚できたす。ブラりザですぐに詊す、たたはOpenAI SDKからそのたた呌び出せたす。

コラム

OpenAI互換APIずは仕組みず䜿い方を解説

OpenAI互換APIずは䜕かを、仕組み・メリット・䜿い方たでコヌド䟋぀きで解説。OpenAI向けコヌドをほが倉えずに、耇数のLLMを䞀぀のAPIキヌ・円建おで䜿えたす。想定倖の請求もなく、FastMetalで今すぐ詊せたす。

コラム

Chat Completions APIずはmessages・role・䞻芁パラメヌタを解説

Chat Completions APIずは、LLMに䌚話圢匏でリク゚ストを送るための事実䞊の暙準むンタヌフェヌスです。messages配列ずrole、レスポンスの読み方、䞻芁パラメヌタをコヌド䟋぀きで解説したす。

コラム

システムプロンプトずは圹割ず曞き方、userずの違いを解説

システムプロンプトずは、䌚話党䜓に効く「前提の指瀺」を枡すためのメッセヌゞです。userメッセヌゞずの違い、具䜓的な曞き方のビフォヌ・アフタヌ、コヌド䟋、泚意点を開発者向けに解説したす。