Temperature
概要

LLMのようなニューラルネットワークを応用した生成モデルは、次に続くトークン(単語や文字のまとまり)を予測する確率分布に基づいて文字列を生成する。例えば、「今日の天気は」という入力に対して「晴れ」「曇り」「雨」などの候補それぞれに確率が割り当てられ、その分布から一つが選ばれる。Temperatureはこの確率分布の「なだらかさ」を調整する役割を担っている。“temperature” とは「温度」という意味の英単語である。
具体的には、Temperatureの値が1.0を基準として機能する。1.0未満の値を設定すると確率分布が鋭くなり、最も確率の高い候補が選ばれやすくなる。極端に低い値(0に近い値)では、ほぼ常に最も確率の高いトークンが選択されるため、同じ入力に対して毎回ほぼ同じ出力が返ってくる。逆に、1.0を超える値を設定すると確率分布がなだらかになり、普段は選ばれにくい候補も選出されやすくなるため、出力の多様性と意外性が増す。
この特性から、用途に応じたTemperatureの使い分けが一般的に行われている。コードの生成や事実に基づく質問への回答、翻訳といった正確性が求められるタスクでは低めの値が設定されることが多い。一方、創作文章のアイデア出しや詩の生成、ブレインストーミングの補助など、多様な発想が求められる場面では高めの値が用いられる傾向がある。
Temperatureと合わせて言及されることが多いパラメータに「Top-p」がある。Top-pは累積確率が一定値に達するまでの候補群からトークンを選ぶ手法であり、Temperatureとは異なる角度から出力の多様性を制御する。両者を組み合わせて調整することで、より細かい出力品質のコントロールが可能となる。TemperatureはOpenAIのAPIやAnthropicのAPIをはじめ、多くのLLMサービスで設定可能なパラメータとして公開されている。