はじめに
GPT-3.5に代表される大規模言語モデル(Large Language Model; LLM)は、膨大なテキストデータを学習することで、人間のような自然な文章を生成したり、複雑な言語パターンを理解したりできるようになっています。
LLMの基本的な機能は「次の単語を予測する」ことです。学習データから得た知識をもとに、与えられた文脈に最もふさわしい単語や語句を提示してくれるのです。
LLMを使う際、「Temperature」という設定をする機会があるかと思います。Temperatureは、LLMが次の単語を予測する際の「ランダム性」を制御するパラメータで、LLMの出力に大きな影響を与えます。
本記事では、このTemperatureパラメータの役割と効果について、わかりやすく解説していきます。
Temperatureとは
Temperatureの役割
Temperatureは、LLMが次の単語を選ぶ際の「確率分布の急峻さ」を制御するパラメータです。
学習の過程で、LLMは「ある単語の後にはどの単語が出現しやすいか」という確率分布を作ります。例えば、"I like"という単語の後には、"you"や"coffee"が続きやすいといったように、次の単語の確率が計算されているのです。
Temperatureは、この確率分布の形を変化させます。Temperatureが低いほど、確率の高い単語が選ばれやすくなります。逆に高いほど、確率分布が平坦になり、様々な単語が選ばれる可能性が高まるのです。
【ここに画像を挿入】 Temperatureによる確率分布の変化を表すグラフ
Temperatureの範囲
Temperatureのとりうる範囲は通常0から1です。
- 0: 完全に決定論的。確率が最も高い単語が常に選ばれる。
- 1: 完全にランダム。確率分布に忠実に単語が選ばれる。
- 0~1: ランダム性と決定論のバランス。値が小さいほど確率の高い単語が選ばれやすい。
Temperatureの効果
具体例を見ながら、Temperatureの効果を確認していきましょう。
LLMに "I like" というプロンプトを与え、その後の2単語を予測させるとします。
Temperature = 0の場合
Temperatureを0に設定した場合、LLMは常に最も確率の高い単語を選びます。つまり "I like" の後には必ず "you ." が続くことになります。出力に多様性はなく、常に同じ結果になるでしょう。
入力: I like
出力: I like you .
Temperature > 0の場合
Temperatureを0より大きくすると、LLMは確率分布に従って単語をランダムに選択します。"I like"に続く単語は、"being pumpkins" だったり "the lord" だったりと様々です。Temperature が高いほど、よりランダムで創造的な出力が得られます。
入力: I like
出力1: I like being pumpkins
出力2: I like the lord
【ここに画像を挿入】 Temperatureの値と出力の多様性の関係を表す図
プロンプトの微妙な変化が出力に与える影響
プロンプトを少し変えただけで、LLMの出力は大きく変化します。
例えば、"I like"を"I like being"に変えると、次の単語の選択肢が全く異なるものになります。
【ここに画像を挿入】 プロンプトによる単語予測の変化を示す図
プロンプトは、機械学習でいうところのハイパーパラメータのようなものだと考えられます。わずかな違いが結果に大きな影響を及ぼすのです。だからこそ、プロンプトのバージョン管理も大切になってきます。
まとめ
- Temperatureは、LLMが次の単語を選ぶ際のランダム性を制御するパラメータ
- Temperatureが低いほど確率の高い単語が選ばれやすく、高いほど選択肢が広がる
- プロンプトのわずかな変化がLLMの出力に大きく影響する
Temperatureを適切に設定することで、LLMを自在に操ることができるようになります。
用途に合わせて最適な値を探ってみてください。ファクトベースの質問応答なら低め、創造的文章の生成なら高めにするのがおすすめです。
最後まで読んでいただき、ありがとうございました。
AIの活用に関するお問い合わせはコチラからどうぞ!
