ChatGPTやClaude、各種AIのAPIやプレイグラウンドを触っていると、必ずと言っていいほど目にする設定があります。temperature(温度) と top-p です。スライダーを動かすと出力の雰囲気が変わるのは分かるけれど、何をどう調整しているのかはよく分からない——そんな方は多いのではないでしょうか。
この2つは、AIが文章を生成するときの 「次の単語の選び方」 を制御するパラメータです。同じ質問でも、温度を上げれば奔放で多彩な答えになり、下げれば手堅く予測可能な答えになる。この振る舞いの違いは、AIがどのように言葉を一つずつ選んでいるのか——専門的には サンプリング(sampling、復号) と呼ばれる仕組み——を理解すると、すっきり腑に落ちます。
この記事では、AIが次の単語を選ぶ仕組みを、確率分布・貪欲法・温度・top-k・top-pという順に掘り下げます。Holtzmanらが2019年に発表した、いまや古典となった論文「The Curious Case of Neural Text Degeneration」1も引きながら、なぜ「一番もっともらしい単語をいつも選ぶ」だけではうまくいかないのか、という意外な事実まで踏み込みます。トークンという言葉を知っているとより読みやすいですが、知らなくても追えるように書きます。
大前提:AIは「確率の表」を作ってから単語を選ぶ
大規模言語モデル(LLM)が文章を作る仕組みは、煎じ詰めれば 「次に来る単語(トークン)を予測する」ことの繰り返し です。「今日の天気は」という入力に対して、AIは内部で、語彙にある何万もの単語それぞれについて「これが次に来る確率は何%か」を計算します。
このとき使われるのが ソフトマックス(softmax) という計算で、AIが出した生のスコア(logits)を、合計が100%になる確率の分布へと変換します3。たとえばこんな「確率の表」ができあがるイメージです。
入力:「今日の天気は」
↓ AIが次の単語の確率分布を計算(softmax)
晴れ ████████████ 60%
曇り █████ 25%
雨 ██ 8%
雪 █ 4%
……(残りの数万語に薄く分散)3%
ここで肝心なのは、AIはこの表を作るところまでで、まだ単語を1つに決めていない という点です。この確率分布から実際にどの単語を選び出すか——その選び方のルールこそが、サンプリングであり、temperatureやtop-pが効いてくる場所なのです。
一番無難な選び方「貪欲法」と、その意外な落とし穴
最も素朴な選び方は、「いつも確率が一番高い単語を選ぶ」というものです。これを 貪欲法(greedy decoding) と呼びます。先ほどの例なら、毎回「晴れ(60%)」を選び続ける方式です。
一見、これが最善に思えます。常に最ももっともらしい単語を選ぶのだから、最も正しい文章になりそうなものです。ところが、ここに生成AIの面白い逆説があります。Holtzmanらの論文「The Curious Case of Neural Text Degeneration(ニューラルテキスト退化の奇妙な事例)」1は、まさにこの直感を覆しました。
彼らの観察はこうです。「尤度(もっともらしさ)を訓練の目的にすると、幅広いタスクで高品質なモデルが得られる。ところが、同じ尤度を復号(単語選び)の目的にすると、平板で奇妙に反復的なテキストになる」1。常に一番手堅い単語を選び続けると、文章は無難すぎて退屈になり、ときには「とても、とても、とても……」と同じ言い回しのループに陥ってしまう。この現象を彼らは 退化(degeneration) と名づけました。
なぜこうなるのか。論文は「人間のテキストと機械のテキストの間には、驚くべき分布の違いがある」1と指摘します。人間が書く自然な文章は、実は毎回もっとも確率の高い単語を選んでいるわけではなく、ときどき意外な単語を混ぜています。その「ゆらぎ」こそが、文章を生き生きとさせている。常に最大確率を選ぶ機械は、この人間らしいゆらぎを失い、かえって不自然になってしまうのです。そして論文は「復号戦略だけで、機械テキストの品質は劇的に変わりうる」1と結論づけました。つまり、AIの賢さは中身(モデル)だけでなく、最後の「単語の選び方」にも大きく左右されるということです。
温度(temperature):確率分布の「尖り具合」を変える
そこで登場するのが、確率に従ってランダムに選ぶ サンプリング であり、そのランダムさを調整するのが 温度(temperature) です。温度は、先ほどの確率分布の「尖り具合」を変えるつまみだと考えてください。
技術的には、温度はソフトマックスの計算でスコアを割る数値(τ)です3。難しい式は脇に置くとして、効果だけ押さえれば十分です。Wikipediaの整理によれば、温度を上げると「出力分布はより一様(high entropy)になり、よりランダムになる」、逆に温度を下げると「分布はより尖り、1つの値が支配的になる」3。温度を限りなく0に近づけると、結局いつも最大確率の単語が選ばれる——すなわち貪欲法に一致します3。
低い温度(例 0.2) 高い温度(例 1.2)
晴れ ██████████████ 88% 晴れ ███████ 38%
曇り ██ 9% 曇り █████ 28%
雨 ▏ 2% 雨 ███ 18%
雪 ▏ 1% 雪 ██ 16%
→ 尖る。手堅く予測可能 → ならされる。多彩で意外性あり
低い温度では、もともと高かった「晴れ」がさらに突出し、AIはほぼ手堅い選択しかしなくなります。高い温度では、確率の差がならされ、ふだんなら選ばれにくい「雨」「雪」にもチャンスが回ってきます。結果として、低温の出力は 正確で一貫的だが退屈 になりやすく、高温の出力は 多彩で創造的だが、ときに脱線・破綻 しやすくなります。
一般的な使い分けとしては、事実確認・コード生成・要約・分類のように 正確さが命のタスクでは低め(0〜0.3あたり)、物語・詩・ブレインストーミングのように 発想の幅がほしいタスクでは高め に設定するのが定石とされています。ただしこれは経験則であり、最適値はタスクやモデルによって変わります。高温にしすぎると、もっともらしい嘘——ハルシネーション——を口走るリスクも上がる点には注意が必要です。
top-k と top-p:あやしい「裾」をどこで切るか
温度が「分布全体の尖り具合」を変えるのに対し、候補そのものを絞り込む アプローチもあります。それが top-k と top-p です。狙いは共通していて、確率分布の長い「裾(tail)」——ありえないような単語が薄く広がっている部分——を切り捨て、そこから変な単語が選ばれる事故を防ぐことにあります。
top-k はシンプルで、Wikipediaの定義では「候補となるトークンを、もっとも確率の高いk個に制限する」2方式です。top-k=50なら、上位50語だけを候補にして、残りはすべて無視します。
top-p(別名 核サンプリング、nucleus sampling)は、Holtzmanらが先の論文で提案した手法です1。Wikipediaはこれを「自己回帰モデルから系列を生成する確率的な復号戦略」2と定義し、その核心をこう説明します。「次のトークンは、累積確率がpを超える最小の高確率候補集合からのみ サンプリングされる」2。具体的には、確率の高い順に単語を並べ、上から足していって合計がたとえば0.9(90%)を超えたところで線を引き、その内側(=確率の「核」)だけを候補にします。
両者の決定的な違いは、候補の数が固定か可変か です。Wikipediaは「top-pの主な利点は適応性にある。top-kは常に固定数のトークンからサンプリングするため、文脈によっては狭すぎたり広すぎたりしうる」2と指摘します。
top-k(例 k=2):上位2個に固定
晴れ・曇り だけを候補にする(雨・雪は常に除外)
top-p(例 p=0.9):累積90%に達するまで可変
「今日の天気は」→ 晴れ60%+曇り25%+雨8% = 93% で線引き → 候補3個
「彼の名前は」 → 候補がばらけていれば10個以上になることも
たとえば「今日の天気は」のように答えが絞られる場面では、top-pは少数の候補だけを残します。逆に「彼の名前は」のように何でもありうる場面では、自動的に候補を広げます。文脈に応じて網の大きさを伸縮させる——これがHoltzmanらが「信頼性の低い裾を効果的に切り捨てつつ、多様性を確保する」1と表現した、核サンプリングの利点です。
| 方式 | やること | 候補数 |
|---|---|---|
| 貪欲法 | 常に最大確率の1語を選ぶ | 1(固定・決定論的) |
| 温度 | 分布全体の尖り具合を変える | 絞らない(全体を再形成) |
| top-k | 上位k個に候補を制限 | 固定2 |
| top-p(核) | 累積確率pまでに候補を制限 | 可変・適応的2 |
実務での組み合わせと、知っておくと役立つ視点
実際のAPIでは、これらは併用されることが多くあります。典型的には、top-p(やtop-k)で「あやしい裾」をまず切り落としてから、温度で残った候補のばらつき具合を調整する、という二段構えです。多くの提供元は、温度かtop-pのどちらか一方を動かし、両方を同時に極端にいじらないこと を勧めています。両方を強く効かせると、互いの効果が打ち消し合ったり過剰になったりして、挙動が読みにくくなるからです。
ここで一点、混同しやすい区別を補足しておきます。temperatureやtop-pは、あくまで 「すでにできあがった確率分布から、どう選ぶか」 を変えるだけで、AIの知識や推論能力そのものを変えるわけではありません。最近の推論モデルが「答える前に考える」ことで賢くなるのとは、レイヤーが異なる話です。サンプリングは料理でいえば「盛り付けと味付けの濃淡」、推論はそもそもの「調理工程」にあたる、と捉えると整理しやすいでしょう。
そしてもう一つ。出力が毎回微妙に変わるのは、多くの場合この温度とサンプリングのランダム性が効いているためです。「同じプロンプトなのに昨日と違う答えが返ってきた」という戸惑いの正体は、たいていここにあります。再現性が必要なテスト用途では温度を0近くに下げる、創造性がほしい用途では上げる——パラメータの意味を知っていれば、AIの出力を目的に合わせて手なずけられるようになります。
プロンプトの工夫でAIの出力を導く方法に関心があればプロンプトエンジニアリングとはを、AIがもっともらしい誤りを生む仕組みはハルシネーションとはを併せて読むと、「AIの答えをどう制御するか」という同じ問いを、入口(プロンプト)・中身(モデル)・出口(サンプリング)の3つの角度から立体的に捉えられるはずです。
Sources
- The Curious Case of Neural Text Degeneration - Ari Holtzman ら、2019年(ICLR 2020)。核サンプリング(top-p)の原典論文、テキスト退化の指摘
- Top-p sampling - Wikipedia(top-p/核サンプリングとtop-kの定義・違い)
- Softmax function - Wikipedia(温度付きソフトマックス・高温/低温の効果)