💻 プロンプティングTips
ChatGPTを使って、プロンプトを高度化する、「プロンプトリファインメント(Prompt Refinement) 」手法を紹介します。
初心者の方から、上級者の方までかなり使える方法ですので、ぜひマスターしてくださいね。
よく、プロンプトを入力してChatGPTで情報を生成すると、
「そういうことを聞きたいんじゃないんだよなぁ。」
と思うことはありませんか?
その度に、第2、第3プロンプトを追加して、求める回答が得られるまで、聞き続ける、というパターンですね😅
この原因は、第1プロンプトに、求める情報を得るための適切なトリガー文字列が含まれていないためです☝️
言い換えると、明確で、具体的な情報を取得するためのポイントは、言うまでもなく、プロンプトが明確で具体的である必要があります。
でも、特に初心者の方にとっては、どうしてもプロンプトが抽象的になりがちなのです。
受講者の方々とお話ししていると、中級者の方でも、第1プロンプトで的確な情報が得られている方は少なく、仮に、第1プロンプトで目的の情報が得られなくても、第2、第3プロンプトで落とし込んでいく、というパターンが多いように思います。
これはこれで重要なスキルですが、目標は、できるだけ少ないプロンプトで、求めている情報を得ることですよね?
でも、第1プロンプトで、最適な情報を含めるのは、それなりの経験とスキルが必要になってきます。
そこで今回は、初心者の方でも、抽象的なプロンプトを、明確で具体的なプロンプトに書き換える(英語では "Prompt Refinement"(リファインメント)と呼びます)方法をお伝えします。
まずは以下のテストプロンプトを実行してみます。
プロンプト
AIをビジネスに利用する方法を教えてください。 |
かなり抽象的なプロンプトです。実行結果は以下の通り。
回答の冒頭にも出てきていますが、「一般的な方法」を、広く浅く生成した情報ですよね。
もちろん、この回答をベースに、第2、第3プロンプトで、目的に応じた方向に情報の幅を狭く絞り、深めていくことは可能です。
では、今回のトピックの、プロンプトを改善する方法(プロンプトリファインメント)、をご紹介します。
やり方は簡単で、スレッドの一番最初に、以下のプロンプトでGPTを訓練します。
プロンプト
From now on, whenever I ask a question, suggest five improved versions of the prompt to ask more specific topics on its prompt, and ask me if I would like to use it instead. New prompts need to be listed up in provided language. Once users pick one of improved prompts, just answer it without suggesting further improvement of prompt. --- Just reply "承知しました、プロンプトを入力して下さい。" if you understand what you should do above. |
(日本語訳) これからは、私が質問するたびに、より良いバージョンのプロンプトを5つ提案し、代わりにそれを使うかどうか尋ねてください。新しいプロンプトは、与えられたプロンプトに関連する具体的なトピックを尋ねてください。新しいプロンプトは、与えられた言語で提案してください。ユーザーが、新しいプロンプトを選択した場合は、さらにプロンプトを改善せず、その質問に答えてください。 以上の内容を理解した場合は、「承知しました、プロンプトを入力して下さい。」のみ返信してください。 |
このプロンプトは、ユーザーが入力したプロンプトを、最初に、ChatGPTに、明確で具体的なプロンプトに書き換えてもらい、提案してもらうテクニックです。
英語のプロンプトですが、日本語のプロンプトも条件付きで使用可能です。(条件は後ほどご説明します)
フローは以下の通り。
- 第1プロンプト:プロンプトリファインメント(上記プロンプトを入力)
- 第2プロンプト:テスト用の質問「AIをビジネスに利用する方法を教えてください。」を入力
- 第3プロンプト:改善されたプロンプトから、知りたい情報を選択
- 第4プロンプト:更に、他の改善パターンを要求(再リファインメント)
- 第5プロンプト:改善パターンから、知りたい情報を選択
- 第6プロンプト:さらに別の改善パターンを選択
以上です。では実際の出力結果を見てください。
いかがでしょうか?
プロンプトリファインメントにより、漠然とした最初の質問「AIをビジネスに利用する方法を教えてください。」から、より具体的なプロンプトが生成され、その結果、具体的な情報を得ることができます。
もともと、(心の中で)聞きたいと思っていた内容に近いプロンプトが提案された場合は、それを選択することで求めている情報が得られます。
しそうでない場合でも、第4プロンプトのように、「他の質問をプロンプトを提案してください」と入力すると、別のバージョンが提案されます。
それを繰り返しても、意図したプロンプトが生成されない場合は、すでにその段階で、(ユーザーの中では)聞きたい内容がクリアになっているはずです。
(提案された多くのパターンに対して、違う、と判断するためには、明確に聞きたい点を持っている場合、が多いので)
その場合は、それらの点を直接プロンプトに入力してみましょう🙂
この方法で、多くの「漠然とした」「抽象的な」プロンプトは、具体性のあるプロンプトに書き換えることができます。
では最後に、第1プロンプト(プロンプトリファインメント)の、英語版と日本語版を比較した結果をお伝えします。
私の方で複数回テストした結果では、
英語プロンプト:
言語モデル(無料版、有料版gpt-3.5-turbo、有料版gpt-4)によらず、安定して動作👍
日本語プロンプト
🔘 有料版gpt-4では安定して動作👍
❌ 無料版では、常に、第2プロンプトの質問がそのまま回答される。(リファインメントされない)
△ 有料版gpt-3.5-turboでは、たまにリファインメントされるが、第2プロンプトがそのまま回答される(リファインメントされない)ことが多い。
(私のテストでは、10回中2回ほどリファインメントされました)
という結果になりました。
(ランダム性から、必ずしも上記の結果になるとは限りません)
ですので、gpt-4でない方は、第1プロンプトは、そのまま英語版をコピペして使用されると良いと思います。
(もし、無料版でも動作する日本語リファインメントプロンプトを見つけた方は教えてくださいね!)
プロンプトリファインメントは、常にスレッドの一番最初で訓練しておくと、どのようなトピックを扱う場合でも使える方法ですので、ぜひ試してみてください。
補足:
2023/7/24
2023/7/20のアップデートで、「カスタムインストラクション」という機能がChatGPTに搭載されました。これは、全てのプロンプトに共通する指示を、あらかじめ定義しておくことができる機能で、プロンプトリファインメント法と非常に相性が良い機能です。具体的な使い方は、以下の記事をご覧ください。