💡
LLMの生成結果を安定させる小技
生成プロンプトの小ネタです。
よくある問題
LLM にテキストを生成させようとすると、以下のような生成結果が出力されがちです。
あなたは○○です。入力をもとに「XXX」を生成してください。
...
↓
了解しました!
いただいたデータをもとに考えると「XXX」というのはどうでしょうか。
チャットでやりとりするならこれでもいいのですが、「XXX」という結果だけをプログラム上で扱いたい場合にはイマイチです。
よくある解決方法
最も一般的な対策が「出力形式を指定する」です。
あなたは○○です。入力をもとに「XXX」を生成してください。
...
# 回答形式:
以下の形式の文字列のみを回答する。
{
"answer": "回答",
}
しかしこれでも、以下のような結果が出力されることがあります。
了解しました!
いただいたデータをもとに考えました!
{
"answer": "XXX"
}
どうでしょうか!
ちょっとした小技
以下のように指示します。
...
# 回答形式:
{
"answer": "生成した結果"
"your-comment": "あなたのコメント"
}
つまり、LLM の 「説明したい気持ち」の出力先をこちらで用意してあげる のです。
{
"answer": "XXX",
"your-comment": "これこれこういう事を考慮しました!"
}
これでもダメなことはありますが、かなりマシになると思います。
Discussion