【てんぱれちゃー】

Temperature(温度パラメータ) とは?

最終更新:
💡 生成時の候補への集中度を変える

生成モデルが次のトークンを確率に基づいて選ぶ際、その確率分布の偏りを調整する値。低くすると高確率の候補に集中し、高くすると分布が平らになる。

📌 このページのポイント
Temperature:候補への集中度を変える 3候補だけで温度を変えた計算例 T = 0.5 候補A:90.7% 候補B:7.4% 候補C:1.9% 集中する T = 1 候補A:70.0% 候補B:20.0% 候補C:10.0% 元の分布 T = 2 候補A:52.3% 候補B:27.9% 候補C:19.8% 平らになる T=1の確率を p とすると 各候補の重みは p の 1/T 乗 重みの合計で割って確率にする 候補の確率 ≠ 回答の正しさ
他の候補制限を加えず、温度だけを変えた仮の3候補の比較。棒の幅は確率で、順序や正しさの評価ではありません。Tは正の値です。
ひよこ ひよこ
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」 = 温度
💬 温度という英語をパラメータ名に使っているよ。ここでは候補への集中度を変える値と覚えよう。モデルの知識や正しさを表す温度計ではないんだ。

参考資料

← 用語集にもどる