💡

LLMの生成結果を安定させる小技

に公開

生成プロンプトの小ネタです。

よくある問題

LLM にテキストを生成させようとすると、以下のような生成結果が出力されがちです。

あなたは○○です。入力をもとに「XXX」を生成してください。
...

了解しました!
いただいたデータをもとに考えると「XXX」というのはどうでしょうか。

チャットでやりとりするならこれでもいいのですが、「XXX」という結果だけをプログラム上で扱いたい場合にはイマイチです。

よくある解決方法

最も一般的な対策が「出力形式を指定する」です。

あなたは○○です。入力をもとに「XXX」を生成してください。
...
# 回答形式:
以下の形式の文字列のみを回答する。
{
  "answer": "回答",
}

しかしこれでも、以下のような結果が出力されることがあります。

了解しました!
いただいたデータをもとに考えました!
{
  "answer": "XXX"
}
どうでしょうか!

ちょっとした小技

以下のように指示します。

...
# 回答形式:
{
  "answer": "生成した結果"
  "your-comment": "あなたのコメント"
}

つまり、LLM の 「説明したい気持ち」の出力先をこちらで用意してあげる のです。

{
  "answer": "XXX",
  "your-comment": "これこれこういう事を考慮しました!"
}

これでもダメなことはありますが、かなりマシになると思います。

Discussion