【てんぱれちゃー】
Temperature(温度パラメータ) とは?
最終更新:
💡 生成時の候補への集中度を変える
生成モデルが次のトークンを確率に基づいて選ぶ際、その確率分布の偏りを調整する値。低くすると高確率の候補に集中し、高くすると分布が平らになる。
📌 このページのポイント
- サンプリングで使うトークンの確率分布を調整する
- T=1を基準に、低い値は高確率の候補へ集中させ、高い値は分布を平らにする
- 低い値でも回答の正しさや、全ての実行で同じ出力になることは保証しない
- 有効な値や、サンプリングしない場合の扱いは実装によって異なる
Temperatureって何を調節してるの?
モデルが次のトークンを確率から選ぶとき、候補の確率分布を調整するんだ。T=1を基準として、低くすると高確率の候補に集中し、高くすると低確率だった候補も選ばれやすくなるよ。
数字で見るとどう変わる?
候補が3つだけで、T=1の確率が70%・20%・10%という仮の例なら、T=0.5では約91%・7%・2%になる。T=2では約52%・28%・20%だよ。他の候補制限を加えず、温度だけを変えた計算例なんだ。
低くすると正しい答えになる?
高確率の候補が正しいとは限らないよ。Temperatureはモデルの知識を増やす値ではなく、候補の選び方を変えるもの。高くしても創造性や品質が必ず上がるわけではないんだ。
0にしたら毎回同じになる?
Tで割る計算にそのまま0は使えないので、0の扱いは実装次第だよ。Transformersのこの処理は正の値を要求し、最有力候補を選ぶ生成にはdo_sample=Falseを使う。Temperatureだけで、入力やモデルなどが違う実行まで同じ結果になるとは言えないんだ。
具体的にはどう計算するの?
T>0では候補のスコアであるロジットをTで割り、ソフトマックスで確率にする。T=0.5はスコアの差を2倍に、T=2は半分にするよ。Transformersではサンプリングを有効にしたときに温度が作用するので、使う実装の設定も確認しよう。
まとめ:ざっくりこれだけ覚えればOK!
「Temperature」って出てきたら「生成時の候補の選ばれやすさを調整する値」と思えばだいたいOK!
📖 おまけ:英語の意味
「Temperature」 = 温度
💬 温度という英語をパラメータ名に使っているよ。ここでは候補への集中度を変える値と覚えよう。モデルの知識や正しさを表す温度計ではないんだ。