AI・機械学習
初級

Temperature(LLM)(テンペラチャー)

LLMのテキスト生成時に出力のランダム性を制御するパラメータ。0に近いほど決定的(最も確率の高いトークンを選択)、高いほど多様で創造的な出力になる。一般的に0.0〜2.0の範囲で設定される。

0 回閲覧
0 いいね

Temperature(LLM)とは

Temperature は大規模言語モデル(LLM)がテキストを生成する際に、次のトークン選択のランダム性を制御するパラメータである。ソフトマックス関数の出力確率分布を調整することで、生成テキストの「創造性」と「一貫性」のバランスを決定する。

動作原理

LLM は次のトークンを予測する際、語彙中の各トークンに対してロジット(logit)と呼ばれるスコアを算出する。このロジットをソフトマックス関数で確率分布に変換する際、Temperature パラメータ T で除算する。

数式: P(token_i) = exp(logit_i / T) / Σ exp(logit_j / T)

Temperature 値確率分布への影響出力の特性
T = 0.0最大確率トークンのみ選択(greedy)完全に決定的、毎回同じ出力
T = 0.1〜0.3分布が非常に鋭いほぼ決定的、微小な変動のみ
T = 0.5〜0.7分布がやや鋭いバランスの取れた出力
T = 1.0元の確率分布のままモデル本来の多様性
T = 1.5〜2.0分布が平坦化非常にランダムで予測困難

ユースケース別の推奨設定

用途に応じた Temperature の設定指針は以下の通りである。

  • コード生成(T=0.0〜0.2): 正確性が最優先。構文エラーや論理ミスを避けるため低温設定が適切
  • 要約・翻訳(T=0.0〜0.3): 原文に忠実な出力が求められるため低めに設定
  • ビジネス文書(T=0.3〜0.5): 適度な自然さを保ちつつ逸脱を防ぐ
  • チャットボット(T=0.5〜0.8): 自然で多様な会話を実現
  • 創作・ブレインストーミング(T=0.8〜1.2): 創造的なアイデアを引き出す
  • 詩・小説(T=1.0〜1.5): 予想外の表現や独自性を重視

主要 API での Temperature 設定

APIデフォルト値設定範囲備考
OpenAI GPT-4o1.00.0〜2.0top_p との併用は非推奨
Anthropic Claude1.00.0〜1.0範囲が0〜1に制限されている
Google Geminiモデル依存0.0〜2.0タスクタイプで自動調整機能あり
Meta Llama 30.60.0〜任意ローカル実行時は制限なし
Mistral0.70.0〜1.0API 経由では1.0が上限

Temperature と他のパラメータの関係

Temperature は単独で使用することもできるが、top_p(nucleus sampling)や top_k と組み合わせて使用されることが多い。ただし OpenAI の公式ドキュメントでは Temperature と top_p の同時変更は推奨されていない。

一般的なベストプラクティスとして、まず Temperature を調整し、それでも出力品質が不十分な場合に top_p や frequency_penalty などの他パラメータを微調整するアプローチが採用される。

FAQ

Q1: Temperature を0にすると毎回まったく同じ出力になりますか?

A1: ほぼ同じだが完全に同一とは限らない。GPU の浮動小数点演算の非決定性やバッチ処理の影響で、微小な差が生じることがある。完全な再現性が必要な場合は seed パラメータも併用する。

Q2: Temperature の最適値はどう見つけますか?

A2: まずタスクの性質に応じた推奨範囲から始め、出力を評価しながら0.1刻みで調整する。A/Bテストで複数の Temperature 値を比較するのが最も効果的。

Q3: Temperature を高くしすぎるとどうなりますか?

A3: 1.5を超えると出力が支離滅裂になりやすい。低確率トークンが頻繁に選択されるため、文法的に不正な文や意味不明な文章が増加する。実用的な上限は1.2程度。