初級ディープラーニング
記事内に商品プロモーションを含む場合があります

大規模言語モデル(LLM)パラメータ「temperature, top_k, top_p」について【初級 深層学習講座】

Aru

大規模言語モデル(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
      • 学習された確率分布をそのまま使用

温度パラメータの実例

生のスコアが以下だと仮定します。このとき 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 を低く設定すると、高確率トークンが選ばれやすくなるため、事実重視タスクや論理的回答の安定性向上に寄与します。ただし多様性や創造性は低下し、単調になりやすい点には注意が必要です。

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT ME
ある/Aru
ある/Aru
IT&機械学習エンジニア/ファイナンシャルプランナー(CFP®)
専門分野は並列処理・画像処理・機械学習・ディープラーニング。プログラミング言語はC, C++, Go, Pythonを中心として色々利用。現在は、Kaggle, 競プロなどをしながら悠々自適に活動中
記事URLをコピーしました