ざっくり言うと

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を変更できるモデルでは、値を下げるほど候補は絞られ、上げるほど広く残ります。ただし、ある値にすれば内容が正しくなる、という設定ではありません。

調整するときは、次の順に進めてください。

  1. まずは、公式が推奨する既定の設定のまま試す
  2. 正解例を含む評価セット(確認用の入力と、期待する答えの組)を用意する
  3. ほかの設定は固定したまま、top_pだけを変えて複数回試し、結果を見比べる

調整が必要だと分かったときだけ、TemperatureかTop-Pのどちらか片方を動かしてください。

注意点

また、ちょうどよい値はモデルごとに違います。OpenAIでうまくいったtop_p = 0.7が、AnthropicやGeminiでも同じ感触になるとは限りません。

モデルを乗り換えたときは、まず設定自体を受け付けるかどうかを確かめてください。受け付けるモデルでだけ、あらためて数値を合わせ直しましょう。

関連用語

  • Temperature — 候補ごとの確率の差を、平らにするか尖らせるかを決める設定です。
  • Top-K — 上位K件だけを残す、個数で絞るシンプルな方式です。
  • パラメータ — 学習で決まるモデル内部の数値も、同じくパラメータと呼びます。
  • トークン — 文章をAIが読み書きするときの、細かい区切りの単位です。

やってみよう