概要
ChatGPTを含むLLMモデルに質問するときに工夫することについてまとめてみました。
いつも何だかAI系の答えが微妙と思っていませんか。これを読めば人間語とChatGPT語のギャップです。これから扱うポイントをよく見てください。
質問する方法(プロンプトの設計)の一般的なヒント
- 簡単に始める
- 指示
- 特異性
- 不正確を避ける
- するかしないか?
なぜ聞き方を工夫した方がいいのか分かる簡単な例3つを見てください。
違いがお分かりでしょうか。 ※この例は不正確を避けるにあてはまります。
日常でやりそうな聞き方
⇒この質問でもだいぶいい結果は得られます。ただ「どのように分を数えるか」、「前提知識(あまり詳しくない)」について不正確になっています。
おすすめの聞き方-1
⇒初心者向けに業界単語(チャットボットや)や少しレベルのある単語は除いたシンプルで分かりやすくなったかと思います。
おすすめの聞き方-2
⇒ これぞプロンプトエンジニアリングの本質
お猿が明確な数値(レベル)ではないが、一般的に超初心者レベルを意味するので、
ちゃんと超入門で意味を説明してくれました。
我が子にはまずこれで説明しようと笑
それぞれどういう意味
簡単に始める
多くの異なるサブタスクを含む大きなタスクがある場合、タスクをよりシンプルなサブタスクに分解し、結果が改善されるにつれて徐々に構築していくことができます。こうすることで、プロンプトの設計プロセスが複雑になりすぎるのを避けられます。
指示
「書く」「分類する」「要約する」「翻訳する」「並べ替える」などの動詞を使用して明確に指示しましょう。
おすすめの方法は以下でしたが、特にここまでしなくても最近の行けてるLLMモデルはよく理解するようです。出力にあまり差はなかった。
プロンプト:
### 指示 ###
以下のテキストをスペイン語に翻訳してください。
Text: "hello!"
出力:
¡Hola!
ただ、 「Text: "hello!"」のようにパラメターを明確に指定するのはいいと思いました。 よく使うのはテンプレートにしておくのはありだと思いました。
例えば
### 指示 ###
以下のテキストをlanguage1、language2で翻訳してください。
language1:spain
language2:korea
Text: "hello!"
Text: "안녕하세요!"
特異性
モデルに実行してほしい指示やタスクについて、非常に具体的に説明してください。プロンプトが詳細で具体的であるほど、結果はよくなります。特定の出力やスタイルを望む場合には、特に重要です。より良い結果をもたらすトークンやキーワードはありません。良いフォーマットと詳細なプロンプトを用意することが重要です。実際、プロンプトに例を提供することは、特定のフォーマットで出力を得るために非常に効果的です。
とのことですが、私が使う利用範囲ではそこまで深く考えなくても良さそうだったので、飛ばしました。
不正確を避ける
できるだけ「正確」という意味です。前述の「なぜ聞き方を工夫した方がいいのか分かる簡単な例3つを見てください。」で扱ったので省略します。
要はできるだけ正確な言語で質問しましょう。 です
お水少し(❌)
お水30m(👌)
数文(❌)
2~3文(👌)
⇒ ここで間違っているのは人なら経験や一般常識で分かるし、もし間違ったとしても認識の修正が入ります。ChatGPT語ではとにかく正確な数値、数、フォーマットを使いましょう。
するかしないか?
引用サイトによると以下らしいですが
プロンプトを設計する際のもう一つの一般的なヒントは、「しないこと」を言わず、「すること」を言うことです。これにより、より具体的になり、モデルから良い回答を得るための詳細に焦点が当てられます。
要は制限はかけるものの、焦点をやることに当てるです。
しないで (❌)
これは避けてこれをして (👌)
悪い例:
個人情報を尋ねないでください。
良い例:
ユーザーの好みを尋ねることを避け、個人情報を尋ねることを避ける必要があります。
試して見てほしいこと & まとめ
不正確を避けるを気にしながらAIに聞いてみてください。グーンと回答の質が上がるはず!
参考
以下サイトの「プロンプトの設計に関する一般的なヒント」というコーナーを読んで試しながら自分流で書き直したものです。
Prompt Engineering Guide