Top-pサンプリング【Top-p sampling】核サンプリング/nucleus sampling
概要

言語モデルはテキストを生成する際、次に来るトークン(文の構成要素の最小単位、通常は単語)の候補それぞれに確率を割り当てる。Top-pサンプリングでは、確率の高いトークンから順に並べ、その累積確率があらかじめ指定された値pに達するまでのトークン群を候補として選び出す。候補の中からはランダムに一つを選出(サンプリング)する。例えば、p=0.9であれば、上位トークンの確率を1位から順に足し合わせて合計が0.9に達した時点のトークン集合が候補となる。
この手法の特徴は、文脈によって候補数が動的に変化する点だ。次のトークンが高い確率で絞り込まれる状況では少数の候補しか残らず、逆に可能性が分散している状況では多くの候補が残る。これにより、固定数の上位トークンから選ぶ「Top-kサンプリング」と比べて、文脈に応じた柔軟な候補選択が可能になる。Top-pはTop-kと組み合わせて使用されることも多く、両方のパラメータを設定した場合はより厳しい条件が優先されるよう実装することが多い。
pの値は0から1の間で設定され、1に近いほど多くの候補が残って出力の多様性が増し、0に近いほど候補が絞られて決定論的な出力に近づく。p=0.0とすれば1位のトークンの時点ですでに累積値が超過するので必ず1位の候補が選出されるようになり、逆に、p=1.0とすれば常にすべてのトークンが候補となるため、実質的にTop-pによる絞り込みが機能しない状態となる。
p値をパラメータとして指定する機能は米オープンAI(OpenAI)のAPIや、米アンスロピック(Anthropic)社のClaude API、HuggingFaceのTransformersライブラリなど主要なLLM推論環境でサポートされており、Temperatureパラメータとともに生成品質を制御する代表的なパラメータとして位置づけられている。