Top-p(核サンプリング)は、大規模言語モデルなどのテキスト生成AIにおいて、次に生成する単語の選択肢を制御するパラメータです。累積確率が設定値(p)に達するまでの高確率な単語群のみを選択肢とし、その中からランダムにサンプリングします。文脈に応じた多様性と自然さを両立させるために使用されます。
Top-pとは
Top-p(別名「核サンプリング」)とは、大規模言語モデルがテキストを生成する際、次に出現する単語の候補を確率の高い順に足し合わせ、その累積確率が指定された閾値「p」(例えば0.9)に達するまでの単語群だけに絞り込んで次の単語をランダムに選択する手法です。
詳しく解説
大規模言語モデルは、ある文脈の後に続く最も可能性の高い単語を確率分布として予測します。単純に最も確率の高い単語を選び続けると、単調で繰り返しが多い文章になりがちです。一方で、完全にランダムに選択すると、文脈に合わない不自然な単語が選ばれるリスクがあります。Top-pによるサンプリングは、この課題を解決するために考案されました。例えば、Top-pの値を0.9に設定した場合、モデルは出現確率の高い順に単語を並べ、その確率の合計が90%に達するまでの上位候補(これを「核」と呼びます)のみを選択肢として残し、残りの10%の低確率な単語を完全に排除します。そして、残った選択肢の中から、それぞれの確率の比率に応じて次の単語を決定します。これにより、選択肢が非常に明確な文脈では選択肢を狭め、文脈の自由度が高いときには選択肢を広げることができ、動的で自然なテキスト生成が可能になります。
具体例・使われ方
例えば、AIが「今日の天気は」という文章の後に続く単語を予測する際、「晴れ(確率50%)」「雨(25%)」「曇り(15%)」「傘(5%)」「宇宙(1%)」のような分布だったとします。ここでTop-pを0.9(90%)に設定すると、累積確率が90%に達する「晴れ」「雨」「曇り」(50 + 25 + 15 = 90%)までが選択肢となり、文脈にそぐわない「傘」や「宇宙」は除外されます。チャットボットの設定で、クリエイティブな回答が欲しい場合はTop-pを「0.9」などの高めの値にし、正確で定型的な回答が欲しい場合は「0.3」などの低めの値に調整して利用されます。
似た用語との違い
Top-pと混同されやすいパラメータに「Top-k」と「温度パラメータ(Temperature)」があります。Top-kサンプリングは、累積確率ではなく「確率の高い上位k個の単語」という「個数」で選択肢を固定して制限します。これに対し、Top-pは確率の合計値で制限するため、状況に応じて選択肢の個数が動的に変化する点が異なります。温度パラメータ(Temperature)は、確率分布自体の平滑さを調整する(高いと均等に近づき、低いと格差が広がる)ものであり、選択肢を物理的にカットするTop-pとは役割が異なります。これらは併用されることが一般的です。
注意点
Top-pを「1.0」に設定すると、すべての単語が選択対象となり、確率制限の効果がなくなります。逆に極端に低い値(例:0.1)に設定すると、ほぼ最も確率の高い1つの単語しか選ばれなくなり、決定論的な挙動に近づいて多様性が失われます。また、Top-pを調整しても、モデル自体の知識や推論能力が向上するわけではなく、あくまで「出力の多様性と自然さのバランス」を制御するものである点に注意が必要です。