# LLMの設定

プロンプトを使用する場合、APIを経由、または直接LLMと対話することになります。いくつかのパラメータを設定することで、プロンプトに異なる結果を得ることができます。

**Temperature** - 簡潔に言うと、この値が低ければ低いほど、最も確率が高い回答が常に選ばれるため、結果はより決定論的になります。この値を上げると、ランダム性が増し、より多様で創造的なアウトプットが可能になります。つまり、他の回答の可能性のある重みを増やすことになります。応用例としては、事実に基づくQAなどでは、この値を低くして、より事実に基づいた簡潔な回答を促すとよいでしょう。逆に、詩の生成やその他の創造的なタスクでは、temperatureを上げると効果的かもしれません。

**Top_p** - 同様に、核サンプリングと呼ばれるサンプリング手法であるtop_pでは、モデルが応答を生成する際の決定性をコントロールすることができます。正確で事実に基づいた回答を求めるのであれば、この値を低くしておきます。より多様な回答を求めるのであれば、より高い値にします。

一般的には、両方ではなく、どちらかを変更することをお勧めします。

**Max Length** - この値を調整することにより、モデルが生成するトークンの数を管理できます。長すぎるまたは関連性のない回答を防ぎ、コストを管理できます。

**Stop Sequences** - Stop Sequencesは、モデルがトークンを生成するのを停止する文字列です。これを指定することは、モデルの回答の長さや構造を制御するもう一つの方法です。例えば、"11"をストップシーケンスとして追加により、モデルに10項目以上のリストを生成させないように指示できます。

**Frequency Penalty** - Frequency Penaltyは、そのトークンが既に回答やプロンプトに何回現れているかに比例して、次のトークンにペナルティを適用します。この値が高ければ高いほど、その単語が再び現れる可能性は低くなります。この設定は、より頻繁に現れるトークンに高いペナルティを与えることにより、モデルの回答の中の単語の繰り返しを減らします。

**Presence Penalty** - Presence Penaltyも頻繁に繰り返されるトークンに対するペナルティを適用しますが、Frequency Penaltyとは異なり、すべての繰り返されるトークンに対して同じペナルティが適用されます。2回現れるトークンも10回現れるトークンも同じペナルティが課されます。この設定は、モデルが頻繁に同じフレーズを繰り返すのを防ぎます。もしモデルに多様性のある、あるいは創造的なテキストを生成させたい場合は、この値を高めに設定すると良いでしょう。モデルが生成するテキストが特定のフレーズに集中しても良い場合は、低めに設定してみてください。

TemperatureとTop_pと同様、Frequency PenaltyとPresence Penaltyも、一般的には、両方ではなくどちらかを変更することをお勧めします。

基本的な例から始める前に、あなたの使っているLLMのバージョンによって結果が異なる可能性があることを予めご承知おきください。