Re Reference AI

技術

Temperatureとは

温度パラメータ

LLMの出力トークン選択のランダム性を調整する、確率分布のサンプリングパラメータ

LLMデコーディングサンプリング

ひとことで言うと

AIの答えをどれくらい決まりきったものにするか、ランダムにするかを調整する設定。

概要

Temperature(温度パラメータ)とは、LLMが次のトークンを生成する際に、出力の確率分布のばらつき具合を調整するサンプリングパラメータ。 モデルは各トークン候補に対してスコア(ロジット)を計算した後、softmax関数で確率分布に変換するが、Temperatureはこの変換前にロジットを割る形で作用する。 値を低くする(0に近づける)ほど最も確率の高いトークンを選びやすくなり出力が決定的で一貫した内容になる一方、値を高くするほど確率の低いトークンも選ばれやすくなり、出力の多様性・創造性が増す代わりに一貫性や正確さが下がりやすくなる。 一般的な対話用途では0.7前後の値がよく使われる一方、コード生成や事実に基づく回答を求める場面では0に近い低い値、創作や発想支援では高めの値を選ぶ傾向がある。

アーキテクチャ

トークン候補のロジットziを、Temperature Tで割ってからsoftmaxへ入力し確率分布を計算する(softmax(zi / T))。 T=1では元のモデルが学習した分布のまま出力され、T<1では分布が尖り(決定的に)、T>1では分布が平坦(ランダムに)なる。 T→0の極限では、常に最も確率の高いトークンを選ぶ貪欲法(greedy decoding)に近づく。

利点

  • タスクの性質に応じて出力の決定性と多様性のバランスを調整できる
  • 追加学習を必要とせず、推論時のパラメータ変更だけで挙動を制御できる

欠点

  • 値を高くしすぎると、文法的に不自然な文や事実に基づかない出力が増えやすい
  • 最適な値はタスクやモデルによって異なるため、実験しながら調整する必要がある

比較

  • Top-pTemperatureとTop-pはどちらも出力のランダム性を調整するサンプリングパラメータで、しばしば併用される
  • Top-kTemperatureとTop-kも出力候補の選び方を調整する目的で組み合わせて使われることが多い
  • デコーディングTemperatureは、デコーディングにおける確率分布のばらつきを調整するパラメータの1つ
  • ビームサーチビームサーチが確率の高い系列を追求するのに対し、Temperatureによるサンプリングは出力に多様性を持たせる方向のパラメータ

関連用語

Top-pTop-kLLMSeedデコーディングビームサーチ

よくある質問

Temperatureは何に設定すればいい?

事実に基づく正確な回答が必要なタスクでは低め(0〜0.3程度)、創作や多様なアイデア出しには高め(0.7〜1.0程度)が目安とされるが、最適値はタスクやモデルによって異なる。

参考文献

関連Zenn記事