ざっくり言うと
Top-P(別名Nucleus Sampling)とは、AIが次の言葉を選ぶときの候補を、確率の合計で絞る設定です。
確率の高い候補から順に足していき、合計がPを超えたところで打ち切ります。この設定に対応しているAIでは、ふつう0〜1の数値で指定する仕組みです。低いほど候補は狭まり、高いほど広く残ります。
Temperatureも答えのばらつきに関わる設定ですが、しくみも効き方も別ものです。ふだんはどちらか片方だけを動かして使います。
イメージ
別名のNucleus Samplingは、核(Nucleus)になる上位のかたまりだけを残す、という意味合いから来ています。ランキング表の上のほうだけを使う設定だと覚えてください。
正確には
Top-Pは、2019年の論文「The Curious Case of Neural Text Degeneration」(Holtzman他)で提案されたサンプリング手法です。
それまで主流だったのは、上位K件だけを残すTop-Kでした。Top-Pは確率の累積で絞るので、残す候補の数がそのつど変わります。
OpenAI、Anthropic、Googleの一部の対応モデルでは、top_pという名前のパラメータで指定します。値の範囲も既定値も、そもそも変更できるかどうかも、モデルによってさまざまです。
TemperatureとTop-Pは、触る場所が違います
2つは入れ子の関係ではありません。同じランキング表の、別のところを触る設定だと考えてください。
| パラメータ | 何を変えるか | ランキング表でいうと |
|---|---|---|
| Temperature | 候補ごとの確率の差を、平らにしたり尖らせたりする | 表全体の濃淡 |
| Top-P | 確率の合計で、残す候補の数を絞る | 表の足切りライン |
Top-Pは、残る候補の数が場面ごとに変わります
top_p = 0.9と指定しても、いつも同じ数の候補が残るわけではありません。
数個で90%へ届く場面もあれば、たくさん集めないと届かない場面もあります。上位何個と決め打ちするTop-Kとの、いちばん大きな違いがここです。
設定できるかどうかは、モデルによって変わります
扱いは各社・各モデルで違います。しかも変わりやすい部分なので、使う前に必ず公式ドキュメントを確認してください。
- OpenAI API
Chat Completionsの対応モデルではtop_pを指定できます。公式は、TemperatureとTop-Pのどちらか一方だけを変えるよう案内しています。 - Anthropic
Claude Sonnet 5など一部の新しいモデルでは、既定値以外のtop_pを指定すると400エラーになります。 - Google Gemini API
Gemini 3.6 Flashと3.5 Flash-Lite以降の新しいモデルでは、temperature・top_p・top_kが非推奨です。2026年7月27日時点では無視され、将来は指定時にエラーになる予定です。
古いモデル向けの設定例を、新しいモデルへそのまま持ち込むのは避けてください。モデル名で提供元のAPIリファレンスを開き、top_pの項目と移行の案内に目を通してから使いましょう。
使う場面
Top-Pを仕事で使うときは、条件をそろえて比べてください
Top-Pを変更できるモデルでは、値を下げるほど候補は絞られ、上げるほど広く残ります。ただし、ある値にすれば内容が正しくなる、という設定ではありません。
調整するときは、次の順に進めてください。
- まずは、公式が推奨する既定の設定のまま試す
- 正解例を含む評価セット(確認用の入力と、期待する答えの組)を用意する
- ほかの設定は固定したまま、
top_pだけを変えて複数回試し、結果を見比べる
調整が必要だと分かったときだけ、TemperatureかTop-Pのどちらか片方を動かしてください。
注意点
また、ちょうどよい値はモデルごとに違います。OpenAIでうまくいったtop_p = 0.7が、AnthropicやGeminiでも同じ感触になるとは限りません。
モデルを乗り換えたときは、まず設定自体を受け付けるかどうかを確かめてください。受け付けるモデルでだけ、あらためて数値を合わせ直しましょう。
関連用語
- Temperature — 候補ごとの確率の差を、平らにするか尖らせるかを決める設定です。
- Top-K — 上位K件だけを残す、個数で絞るシンプルな方式です。
- パラメータ — 学習で決まるモデル内部の数値も、同じくパラメータと呼びます。
- トークン — 文章をAIが読み書きするときの、細かい区切りの単位です。
やってみよう