大規模言語モデル(LLM)パラメータ「temperature, top_k, top_p」について【初級 深層学習講座】
大規模言語モデル(LLM)には、出力をコントロールするためのパラメータがいくつか存在します。本記事では、LMStudio などの GUI 環境でも設定可能な代表的なパラメータについて解説します。
大規模言語モデルの主要パラメータ
HuggingFace の Transformer モデルには、いくつかの出力制御パラメータがあります。本記事では、その中でも特によく使われるものを取り上げます。
ここで紹介するパラメータは、LMStudio などの GUI アプリケーションでも調整可能です。
分布の「形状」を変えるTemperature(温度)パラメータ
確率分布の平坦さ(エントロピー)を調整するパラメータです。サンプリングを行う前の段階、つまりSoftmax関数に通す前の「ロジット(生のスコア)」に対して作用します。
- 仕組み
各単語のロジットをTemperature値(T)で割ってから、確率に変換します。- 数式イメージ: $P_i=\frac{exp(logit_i/T)}{\sum_j{exp(logit_j/T)}}$
- 効果:
- T < 1(低温)
- 分布が尖る
- 高確率の単語はさらに高く、低確率の単語はさらに低くなる
- 「自信のある単語」を選びやすくなる
- 論理的・保守的な文章になりやすい(例:0.1〜0.3)
- T > 1(高温)
- 分布が平坦になる
- 確率差が縮まり、意外な単語が選ばれやすくなる
- 多様で創造的な文章になる
- ただし破綻リスクが上がる
- T = 1
- 学習された確率分布をそのまま使用
- T < 1(低温)
温度パラメータの実例
生のスコアが以下だと仮定します。このとき Temperature を変化させた場合の確率変化を見てみます。

下の図が温度を0.1〜5.0まで段階的に変化させた場合の確率の変化です。

温度が 0.1 の場合、犬の確率はほぼ 1.0(100%)になります。温度を上げるにつれて犬の確率は減少し、温度 5.0 では 0.41(41%)程度になります。また次点の猫は約 0.30(30%)になります。
このように Temperature を上げることで、1位以外の候補が選ばれやすくなります。

次の単語(トークン)の選択アルゴリズムが、確率によりサンプリングされるので、温度をあげれば2番目以降の確率が上昇するため、選択されやすくなります。コードでいえば以下のようになります。
chosen_indices = np.random.choice(
len(logits), size=n_samples, p=probs)上位「個数」での切り捨てを行うTop_Kパラメータ
確率分布を調整した後、候補トークンを順位で足切りする手法です。
- 仕組み
- 確率の高い順に並べる
- 上位 K 個のみ残す
- それ以外の確率を 0 にする
- 再正規化してサンプリング
- 効果
- 確率が低くても K 位以内なら候補に残る
- K+1 位以下は僅差でも切り捨て
- 弱点
文脈によって適切な候補数は変わりますが、Top-K は固定値(例:常に 50)なので柔軟性に欠けます。
なお、上位 K 個の集合自体は Temperature によって順位が変わらない限り変化しません。ただし確率値は変わるため、サンプリング時の選ばれやすさは影響を受けます。
累積「確率」での切り捨てるTop_Pパラメータ
Top_Kの弱点を補うために考案された、より動的な足切り手法です。順位ではなく確率の合計値を使います。
- 仕組み
- 確率順に並べる
- 累積確率を加算
- 合計が P(例:0.9)を超えた時点まで残す
- 残りをゼロ化して再正規化
- 効果
- モデルが確信している場合
少数候補で閾値到達
→ 候補は少ない - モデルが迷っている場合
多数候補が必要
→ 候補が広がる
- モデルが確信している場合
- メリット
文脈の曖昧さに応じて候補幅を自動調整できるため、自然言語生成では Top-K より好まれる傾向があります。
Top-K と Top-P は併用されることもありますが、実運用では Top-P を主に使う設定が一般的です。
まとめ
LLMの主要なパラメータであるTemperature、Top-K、Top-Pについて解説しました。これらの値を直接操作する機会は少ないかもしれませんが、仕組みを理解しておくとモデルの挙動をコントロールする際に非常に役立ちます。
特に Temperature を低く設定すると、高確率トークンが選ばれやすくなるため、事実重視タスクや論理的回答の安定性向上に寄与します。ただし多様性や創造性は低下し、単調になりやすい点には注意が必要です。
