同じ質問をしたのに、AIの答えが毎回少しずつ違う——その理由をご存じですか?答えの鍵を握るのが「サンプリング手法」です。この記事では、LLMが最後の最後に言葉を1つ選ぶ瞬間に何が起きているのかを、top-p・top-k・温度という3つの代表的な調整方法とともに、一段深く解説します。

📖 ひと言でいうと

サンプリング手法とは、LLMが計算した「次の言葉の候補と確率のリスト」の中から、実際に出力する言葉を1つ選び出すためのルールのことです。サンプリング(sampling)は「抽出・抜き取り」という意味です。

身近な例えは「くじ引きの箱づくり」です。モデルが用意するのは「この言葉が来る確率は30%、この言葉は20%…」という候補リストまで。そこからどの候補をくじ箱に入れ、どんな比率でくじを引くか——その箱の作り方と引き方のルールがサンプリング手法です。

🖼 1枚でわかるサンプリング手法

サンプリング手法 — 「次の言葉」の選び方ルール
  • 役割 — 確率リストから実際の1語を選ぶ最終工程。生成のたびに毎回行われる
  • 貪欲法 — 常に最有力候補だけを選ぶ。安定だが単調・繰り返しに陥りやすい
  • 温度 — 確率の差を強調/平坦化して「冒険度」を調整するツマミ
  • top-k — 上位k個だけをくじ箱に入れる(個数で足切り)
  • top-p — 累積確率がpに達するまでの候補を箱に入れる(合計確率で足切り)
つくもち屋「生成AI入門」SUMMARY

🔍 しっかり理解する

生成は「確率計算→調整→足切り→抽選」の繰り返し

LLMは文章を一気に出力しているのではなく、1語(正確にはトークン=モデルが扱う文字列の単位)ずつ生成しています。1語進むたびに、次の流れが繰り返されています。

確率を計算
全候補に確率を割り当て
温度で調整
確率の差を強調/平坦化
候補を足切り
top-k / top-pで箱を作る
抽選して1語出力
出た語を文脈に加え次へ

選ばれた1語は文脈に付け加えられ、それを含めた文脈で再び確率計算が行われます。つまりサンプリングは文章生成の間、何百回・何千回と繰り返される工程です。序盤の抽選結果しだいで続きの文脈が変わるため、たった1回の抽選の揺らぎが、最終的な文章全体の違いに膨らんでいく——これが「同じ質問でも毎回答えが違う」ことの正体です。

なぜ「一番確率の高い言葉」を選び続けないのか

最も単純な方法は、抽選をせず常に確率1位の候補を選ぶ貪欲法です。一見これが最善に思えますが、実際にやってみると文章が単調になり、同じ言い回しの繰り返しに陥りやすいことが知られています。「毎回1位の言葉」をつなげた文章が「文章全体として最良」になるとは限らないのです。人間の自然な文章にも、確率的には2番手・3番手の言葉が適度に混ざっています。ほどよい抽選の揺らぎは、自然さと多様性のために必要な要素なのです。

3つの調整ツマミ — 温度・top-k・top-p

そこで、揺らぎの「量」と「範囲」を制御するのが各手法です。

温度(temperature)は、抽選の前に確率の差を加工するツマミです。温度を下げると1位と2位以下の差が強調され、ほぼ1位ばかりが選ばれる堅実な出力になります(限りなく下げると貪欲法に近づきます)。逆に温度を上げると差がならされ、下位の候補にもチャンスが回り、意外性のある出力が増えます。上げすぎると支離滅裂になるリスクも上がります。

top-kは、確率上位k個だけをくじ箱に入れる方式です。シンプルですが弱点があります。「個数」で切るため、有力候補が2個しかない場面でもk個(たとえば50個)を箱に入れてしまい、明らかに不適切な候補まで混ざる。逆に有力候補が100個ある場面では、自然な候補を捨ててしまうのです。

top-p(核サンプリング/nucleus samplingとも呼ばれます)は、この弱点を解決した方式です。確率の高い順に足し上げ、合計がp(たとえば90%)に達したところで箱を閉じます。有力候補に確率が集中している場面では箱は自動的に小さくなり(誤答の混入を防ぐ)、候補が割れている場面では箱が自動的に大きくなります(多様性を確保)。場面に応じて箱のサイズが伸び縮みすることが、top-pが広く使われる理由です。

観点 貪欲法 top-k top-p
箱に入れる基準 1位のみ 上位k個(個数固定) 累積確率p%まで(個数可変)
多様性 なし あり あり
場面への適応 しない(常にk個) する(集中時は狭く、拮抗時は広く)
弱点 単調・繰り返し 個数固定が場面に合わないことがある pの設定しだいで冒険的にも保守的にもなる

なお、温度とtop-pなどは併用されるのが一般的で、「温度で確率の形を調整してから、top-pで足切りして抽選する」という組み合わせで動いています。また、私たちが普段使うチャットサービスでは、これらの設定値は画面に表示されず、提供側があらかじめ調整した値で動いています。設定をいじれない環境でも、「再生成ボタンを押す」ことは「もう一度くじを引き直す」ことに相当します。つまり再生成は、サンプリングの揺らぎを利用者の側から活用する、いちばん手軽な方法なのです。

💡 具体例で考える

「春の新商品のキャッチコピーを考えて」とAIに頼む場面を想像してください。この仕事の正解は1つではなく、むしろ意外性のある案が欲しいところです。こういうときは温度を高めにして何度も生成させれば、毎回違う切り口の案が集まります。抽選の揺らぎが「発想の幅」として働くわけです。

一方、同じAIに「この契約書から契約期間と金額を抜き出して、決まった形式の表にして」と頼むときはどうでしょう。ここで揺らぎは邪魔者です。温度を低くすれば、高確率の堅実な出力に集中し、毎回ほぼ同じ形式で安定した結果が得られます。「発想が欲しいときは揺らぎを増やし、正確さと再現性が欲しいときは揺らぎを絞る」——これがサンプリング調整の基本戦略です。チャット画面しか使わない人でも、「気に入らなければ再生成すれば別の抽選結果が出る」と知っているだけで、AIとの付き合い方が変わります。

⚠️ よくある誤解・つまずきポイント

💡 ポイント
  • 誤解:「答えが毎回違うのはAIの故障・気まぐれだ」→ 正しくは: サンプリングに抽選の要素がある正常な動作です。揺らぎを抑えたければ温度を下げる等の調整で対応します
  • 誤解:「top-pのpは選ぶ候補の個数のことだ」→ 正しくは: pは累積確率のしきい値です。個数で切るのはtop-kで、top-pは場面によって候補数が変わります
  • 誤解:「温度を上げるとAIが賢くなる/下げると性能が落ちる」→ 正しくは: 温度は賢さではなく出力の多様性(冒険度)の調整です。タスクに合う設定が「良い設定」です
  • 誤解:「常に1位を選ぶのが一番良い文章になる」→ 正しくは: 貪欲法は単調さや繰り返しを招きやすく、自然な文章には適度な揺らぎが必要です

📝 生成AIテストではこう出る

💡 ポイント
  • top-pの定義を問う形式。「確率の高い候補から累積確率が一定値に達するまでを対象にして抽選する方式」が正解の軸。「上位k個から選ぶ」と入れ替えたひっかけに注意しましょう
  • 温度の効果を問う形式。「温度を上げると多様で意外性のある出力になり、下げると安定した出力になる」という方向の対応を押さえましょう
  • 同じ入力から異なる出力が生じる理由を問う形式。「サンプリングに確率的な選択が含まれるため」が正解の軸です
  • 用途との対応を問う形式。「創造的なタスクでは多様性を上げ、正確性重視のタスクでは下げる」という調整方針を選ばせる問題が想定されます

📚 まとめ

💡 ポイント
  • サンプリング手法は、確率リストから実際に出力する1語を選ぶルールで、生成中ずっと繰り返されています
  • 常に1位を選ぶ貪欲法は単調になりやすく、適度な抽選の揺らぎが自然さと多様性を生みます
  • 温度は確率の差を調整する冒険度のツマミ、top-kは個数で、top-pは累積確率で候補を足切りする方式です
  • top-pは場面に応じて候補の幅が自動で伸び縮みするのが特徴で、温度と併用されるのが一般的です
  • 「創造性なら揺らぎを増やす、再現性なら絞る」が実用上の基本戦略です