負の温度でのサンプリング
概要
- 統計力学における温度定義と負の温度の可能性をLLaMAのサンプリングで検証
- 負の温度での出力は極端に奇妙なものとなる現象
- ソフトマックス関数とボルツマン分布の関係性
- 負の温度では最も起こりにくいトークンが選択される仕組み
- 実験結果と異常トークンの繰り返し出現の考察
統計力学における温度とボルツマン分布
- 温度は統計力学で状態分布を特徴付けるパラメータ
- ボルツマン分布:各状態の出現確率をエネルギーと温度で決定
- 低温では低エネルギー状態が支配的、高温では均等分布に近づく性質
ニューラルネットにおける温度
- ニューラルネットの最終層ではソフトマックス関数を適用し確率分布を得る
- ソフトマックスの温度パラメータはボルツマン分布の温度と本質的に同じ
- 温度が低いと最も確率が高いトークンを確定的に選択、温度が高いとランダム性が増す
- 創造性調整のための温度パラメータ活用
負の温度の意味と物理的背景
- 絶対温度で0未満の値は通常の寒さとは異なる概念
- 温度T→∞とT→−∞は同じ確率分布になるが、0付近で大きな不連続点が存在
- 1/kBT(β)で考えると、T<0では確率分布の指数の符号が反転
- 以前最も起こりにくかった状態が最も起こりやすくなる現象
- 負の温度は有限個の状態を持つ系でのみ意味を持つ
- ニューラルネットの最終層は有限状態なので負の温度適用が可能
LLaMAでの負の温度サンプリング方法
- OpenAIモデルは温度0.0〜2.0のみ対応、LLaMAはローカル実行可能
- llama.cppのサンプリング関数を温度負値でも動作するようにパッチ適用
- 具体的には、温度<=0で貪欲サンプリングを行う箇所を修正
- 繰り返しペナルティ・top-k・top-pを無効化して純粋な温度効果を観察
実験結果
- T=0.001: 一般的な温度説明文を生成
- T=−0.001: 最も起こりにくいトークン(例:Хронологија)を生成、以後同様のトークンを繰り返す
- T=1000000: ほぼ完全なランダム出力、意味不明なトークンの混在
- T=−0.001(LLaMA-13B): 意味不明なトークンや単語の繰り返しが続き、通常のランダム出力よりも不可解な結果
異常トークンの正体と考察
- ХронологијаやentferneなどのトークンはLLaMAの埋め込み空間の中心付近に位置
- モデルが意味を理解できていないトークンで、ChatGPTでも同様の現象が報告
- 正温度で最も生成されにくいが、負温度では最も生成されやすくなる
- 人間が繰り返しを要求してもモデルはこれらの異常トークンを生成できない場合がある
まとめ
- 負の温度サンプリングはニューラルネットの生成動作を根本から変える
- 通常とは逆の、最も「ありえない」トークン列を出力する現象
- 埋め込み空間の中心付近のトークンが頻出する理由
- 本現象の理解はモデルの内部表現や異常トークンの性質解明に繋がる可能性
参考文献
- @misc{Kauffman2023negative-temperature, author = "Derik Kauffman", title = "Sampling at negative temperature", year = 2023, howpublished = "Blog post", url = "https://cavendishlabs.org/blog/negative-temperature/" }