- HOME >
- Jamstack用語集 >
- Temperature
Temperature
温度パラメータ
Temperature を分かりやすく
Temperature(温度)は、AI が生成するテキストの「ランダム性」や「創造性」を制御するパラメータです。
例え話をしましょう。あなたが友人に「おすすめの映画を教えて」と聞くとします。
Temperature が低い場合(0.0〜0.3)
- 友人「『ショーシャンクの空に』がおすすめです」
- あなた「他には?」
- 友人「『ショーシャンクの空に』がおすすめです」(同じ答え)
毎回、最も確実で安全な答えを返します。一貫性があり、予測可能です。
Temperature が高い場合(0.8〜1.0)
- 友人「『インターステラー』はどう?」
- あなた「他には?」
- 友人「『パルプ・フィクション』も面白いよ」
- あなた「もう一つ」
- 友人「『マトリックス』なんかもいいかも」
毎回、異なる選択肢を提案します。多様性があり、創造的です。
AI の Temperature も同じように機能します。
Temperature の仕組み
AI は、次の単語(トークン)を選ぶ際に、確率分布を計算します。Temperature は、この確率分布を調整します。
Temperature 0.0 の場合
質問: 「空は何色ですか?」
AI の内部確率:
青: 95%
赤: 3%
緑: 1%
その他: 1%
Temperature 0.0 → 常に最も確率の高い選択
→ 「青」(毎回同じ答え)Temperature 1.0 の場合
同じ質問に対して
AI の内部確率:
青: 95%
赤: 3%
緑: 1%
その他: 1%
Temperature 1.0 → 確率に応じてランダムに選択
→ 95%の確率で「青」
→ 5%の確率で「青」以外Temperature 2.0 の場合
同じ質問に対して
確率分布が平坦化される:
青: 40%
赤: 25%
緑: 20%
その他: 15%
Temperature 2.0 → より均等にランダム選択
→ 予測不可能な答えが増えるTemperature の値の範囲
一般的に、Temperature は 0.0 から 2.0 の範囲で設定します。
0.0 〜 0.3(決定的)
特徴:
- 毎回ほぼ同じ出力
- 最も確率の高い選択のみ
- 予測可能
- 一貫性が高い
用途:
- 事実確認
- データ抽出
- 分類タスク
- コード生成(正確さ重視)
- 翻訳0.3 〜 0.7(バランス型)
特徴:
- 適度な多様性
- 一貫性も保たれる
- 実用的な範囲
- デフォルト値に近い
用途:
- 一般的な質問応答
- カスタマーサポート
- 要約
- 教育コンテンツ0.7 〜 1.0(創造的)
特徴:
- 多様な出力
- 創造性が高い
- 予測しにくい
- 意外な表現
用途:
- 創作(小説、詩)
- ブレインストーミング
- マーケティングコピー
- アイデア出し1.0 〜 2.0(非常に創造的)
特徴:
- 非常にランダム
- 予測不可能
- 時に不自然
- 実験的
用途:
- 芸術的な表現
- 実験的なコンテンツ
- 多様性を重視するタスクTemperature の実例
同じプロンプトで Temperature を変えた場合の出力例です。
プロンプト 「AIについて一文で説明してください」
Temperature 0.0
出力1: 「AIは人間の知的活動を模倣する技術です」
出力2: 「AIは人間の知的活動を模倣する技術です」
出力3: 「AIは人間の知的活動を模倣する技術です」
→ 毎回同じ、最も標準的な答えTemperature 0.7
出力1: 「AIは人間のように学習し判断するコンピュータ技術です」
出力2: 「AIは機械が知的タスクを実行できるようにする技術です」
出力3: 「AIは人工的に作られた知能で、様々な問題を解決します」
→ 毎回異なるが、すべて妥当な答えTemperature 1.5
出力1: 「AIは未来の鍵となる革新的な技術の結晶です」
出力2: 「AIは人間の想像力をデジタル空間に解き放つ魔法です」
出力3: 「AIはゼロと一が織りなす知性の新しい形です」
→ 創造的で詩的な表現Temperature と他のパラメータの関係
Temperature は、他のパラメータと組み合わせて使用されることがあります。
Top-p(nucleus sampling)
Top-p は、確率の上位 p% に含まれるトークンのみを選択します。
Top-p = 0.9 の場合:
累積確率が 90% になるまでのトークンのみ選択
Temperature と Top-p の併用:
一般的には、どちらか一方のみを使用することが推奨される
両方使うと、効果が複雑に絡み合うTop-k
Top-k は、上位 k 個のトークンのみを選択します。
Top-k = 50 の場合:
確率上位50個のトークンのみを選択肢にする
Temperature との違い:
Top-k: 選択肢の「数」を制限
Temperature: 選択肢の「確率分布」を調整Frequency Penalty と Presence Penalty
繰り返しを制御するパラメータです。
Frequency Penalty:
同じトークンの繰り返しを抑制
Presence Penalty:
新しいトピックへの転換を促進
Temperature との併用:
Temperature で創造性を制御
Penalty で繰り返しを調整Temperature の選び方
用途に応じて、適切な Temperature を選びます。
事実確認タスク
Temperature: 0.0 〜 0.2
例:
「東京の人口は?」
「Python でリストを作成する方法は?」
「2 + 2 = ?」
求められる性質:
- 正確性
- 一貫性
- 再現性要約タスク
Temperature: 0.3 〜 0.5
例:
「この記事を3行で要約して」
「会議の議事録を作成して」
求められる性質:
- 正確性(やや重要)
- 簡潔さ
- 読みやすさ質問応答
Temperature: 0.5 〜 0.7
例:
「AIとは何ですか?」
「Pythonのメリットは?」
求められる性質:
- 正確性
- 分かりやすさ
- 適度な多様性創作タスク
Temperature: 0.8 〜 1.2
例:
「SF小説の冒頭を書いて」
「新商品のキャッチコピーを考えて」
求められる性質:
- 創造性
- 独自性
- 意外性ブレインストーミング
Temperature: 1.0 〜 1.5
例:
「新しいアプリのアイデアを10個出して」
「ユニークなイベント企画を提案して」
求められる性質:
- 多様性
- 創造性
- 量より質の多様性Temperature の調整テクニック
Temperature を効果的に使うためのテクニックです。
段階的な調整
ステップ1: Temperature 0.3 で概要を生成
→ 正確な情報を収集
ステップ2: Temperature 0.8 で詳細を生成
→ 創造的に肉付け
ステップ3: Temperature 0.5 で校正
→ バランスの取れた最終版タスクごとに使い分け
データベース検索: Temperature 0.0
→ 正確なクエリ生成
ユーザーへの応答: Temperature 0.7
→ 自然で分かりやすい説明
エラーメッセージ: Temperature 0.2
→ 明確で一貫性のある説明A/B テスト
複数の Temperature で出力を生成し、比較する
例:
Temperature 0.5: 出力 A
Temperature 0.7: 出力 B
Temperature 0.9: 出力 C
最も適切な出力を選択
または、複数の出力を組み合わせるTemperature の落とし穴
Temperature を不適切に設定すると、問題が生じます。
落とし穴 1: Temperature が高すぎる
問題:
- 不自然な出力
- 事実と異なる情報
- 一貫性の欠如
例(Temperature 2.0):
質問: 「Pythonとは何ですか?」
AI: 「Pythonは宇宙から来た謎の言語で、
虹色の蛇が発明したプログラミングの魔法です」
→ 創造的すぎて役に立たない落とし穴 2: Temperature が低すぎる
問題:
- 単調な出力
- 創造性の欠如
- 毎回同じ答え
例(Temperature 0.0):
質問: 「ブログ記事のタイトルを10個考えて」
AI: 「AIとは何か」
「AIとは何か」
「AIとは何か」
...(同じタイトルが繰り返される)
→ 多様性が求められるタスクに不向き落とし穴 3: デフォルト値への依存
問題:
多くの API のデフォルトは 0.7〜1.0
すべてのタスクに適しているわけではない
対策:
タスクの性質を考慮して、適切に調整するTemperature のベストプラクティス
Temperature を効果的に使うためのベストプラクティスです。
1. タスクの性質を理解する
判断基準:
- 正確性が重要か? → 低めの Temperature
- 創造性が重要か? → 高めの Temperature
- 多様性が必要か? → 高めの Temperature
- 一貫性が必要か? → 低めの Temperature2. 少しずつ調整する
推奨アプローチ:
1. デフォルト(0.7)から始める
2. 0.1 刻みで調整
3. 出力の質を評価
4. 最適な値を見つける
大幅な変更は避ける3. 複数の値を試す
同じプロンプトで複数の Temperature を試す
例:
Temperature 0.5: 出力 A
Temperature 0.7: 出力 B
Temperature 0.9: 出力 C
比較して最適な値を決定4. ユーザーに選択させる
アプリケーションで Temperature を調整可能にする
例:
「創造性レベル」として UI で公開
低(0.3) | 中(0.7) | 高(1.0)
ユーザーが用途に応じて選択まとめ
Temperature は、AI の出力の創造性とランダム性を制御する重要なパラメータです。適切に調整することで、用途に最適な出力を得られます。
重要なポイント
- 範囲 - 0.0(決定的)から 2.0(非常に創造的)
- 事実タスク - 0.0〜0.3 で正確性を重視
- バランス型 - 0.5〜0.7 で汎用的に使用
- 創造的タスク - 0.8〜1.2 で多様性を重視
- 調整 - タスクの性質に応じて適切に設定
Temperature を選ぶ指針
- 正確性が最優先 → 0.0〜0.3
- バランスを取りたい → 0.5〜0.7
- 創造性が欲しい → 0.8〜1.0
- 多様性を最大化 → 1.0〜1.5
Temperature を理解し、適切に調整することで、AI の出力品質を大きく向上させることができます。タスクの性質を見極め、最適な値を設定することが、成功する AI アプリケーション開発の鍵となります。