モデルのしくみ 中級

Top-pサンプリング

Nucleus Sampling

次に出す単語の候補を、確率の高い順に足して一定の割合に達するところまでに絞り、その中から選ぶ方法です。出力のばらつきを調整する設定値の1つです。値を下げると堅実に、上げると多様になります。

別の呼び方ニュークリアスサンプリング、top_p、核サンプリング

例ブレストでは温度を上げず、top_p を 0.9 に設定して、突飛すぎない範囲で案を出させた。

詳しく

Top-pサンプリング(ニュークリアスサンプリング)とは、LLM が次のトークンを選ぶときに、候補を「確率の合計が p に達するまで」に絞り、その範囲内から選ぶ方法です。出力のばらつきを調整するための設定値で、APIでは top_p という名前のパラメータとして用意されています。

しくみ

LLM は、次に来るトークンそれぞれに確率を割り当てます。たとえば「今日は」の続きとして「晴れ」が40%、「雨」が25%、「曇り」が20%、それ以外の何千もの候補が合計15%、といった具合です。

もし確率に従ってそのまま選ぶと、ごく低い確率の変な候補も、まれに選ばれてしまいます。そこで、確率の高い順に並べて足していき、合計が p(たとえば0.9)に達したところで打ち切り、残りの候補は捨てます。残った候補の中で、確率に従って選びます。

この方法の特徴は、候補の数が状況によって変わることです。答えがほぼ決まっている場面では、1〜2個の候補で p に達するので、安定します。一方、自由度が高い場面では、多くの候補が残り、多様な出力になります。

具体例

  • p を小さく(例:0.1〜0.5):確率の高い候補だけを使うため、出力が堅実で、同じ入力に対して似た答えが出やすい
  • p を大きく(例:0.9〜1.0):低い確率の候補も混ざり、表現が多様になる。1.0 は絞り込みなし

要約や抽出など、正確さが求められる作業では小さめ、アイデア出しや創作では大きめにするのが一般的な使い分けです。

使うときの注意・よくある誤解

  • 温度(temperature)も出力のばらつきを調整する設定で、役割が似ています。両方を大きく動かすと挙動を読みにくくなるため、多くのサービスのドキュメントでは、どちらか一方を調整することが勧められています。
  • 設定を決定的にしても、同じ答えが保証されるとは限りません。実行環境によって差が出ることもあります。
  • 推論モデルなど、一部のモデルではこれらの設定が固定されていたり、指定できなかったりします。使えるかどうかは、各サービスのドキュメントで確認が必要です。
  • 設定値を変えるより、プロンプトを具体的にするほうが、結果に効くことも少なくありません。

実際の設定の目安

利用するサービスの標準値で十分なことが多く、迷ったら触らないのも1つの選択です。変えるなら、1回に1つの設定だけを動かし、同じ質問を何度か試して、出力の違いを見比べてください。決まった形式(JSONなど)で出力させたい場合は、設定の調整よりも、構造化出力の機能を使うほうが確実です。

関連する考え方

候補の絞り込みには、確率の高い順に上位k個だけを残す「Top-k」という方法もあります。top-p は、候補の数を固定せず、確率の合計で決める点が異なります。

あわせて知りたい言葉

「モデルのしくみ」の言葉をすべて見る