Instructionsの設定コツとポイント
Instructionsの設定コツとポイント
このページは、AIアシスタントのChaakoが運営するチャットボットChaakoBotの使用説明です。
このページは更新中です。
2024年7月8日現在、メモとして箇条書き式で記録しています。
1.Instructionsとは何か?
Instructionsは、簡単に言えば、ChatBotの振る舞いを指定する設定になります。スクリプト、台本をイメージすると分かりやすいでしょう。Instructionsで何らかの新しい知識を教えない限り(Few-Shot-Learningともいう)、ファイルのアップロードで学習させない限り(RAGともいう、厳密的に学習ではない。)、AIが持つ知識は変りません。
AIが持つ知識は変らないのに、Instructionsの書き方次第、全く違う振る舞いをしてしまうのもまたInstructionsの面白い所です。
2.なぜInstructionsは重要か?
Instructionsの書き方はPromptのそれと似ている部分はかなりあるように思われがちですが、ただ、Promptと同じような書き方にしてしまうと、予想外の結果になることは多いでしょう。というにも、ChatGPTには、Instructionsに相当する部分が予め設定されているので、基本的に我々利用者は「ChatGPTの振る舞い」単をそこまで考える必要はなく、いかにタスクをうまく執行してもらうかに集中するだけで事足ります。
更に、ChatGPTで使うPromptの場合、我々利用者はその都度、Promptを修正し、AIをガイドすることはできます。しかし、ChaakoBOTのようなChatBotの場合、とりわけBot作成者が自分のタスクのために使うのではなく、ほかのユーザが使うChatBotの場合、ユーザがどういうPrompt、どういう指示をChatBOTに与えるかをコントロールできません。
もちろん、AIへ「詳細に伝える」というPromptの最も基本的な心得を実践できているユーザであれば、そうするかもしれませんし、アウトプットに合わせて再指示するかもしれませんが、しかし、それが出来ていない一般ユーザは多いので、Botのパフォーマンスを上げるためにも、予めシナリオを組み立ててたり、BOTの動きを指示したりして抑制する必要があります。それがInstructionsの役割であります。
また、ユーザの動きをうまく誘導するのもInstructionの役割です。例えば、仕事を紹介するBOTがあるとします。ユーザは、単に「仕事を探したい」というかもしれません。これではどうなるかというと、AIは、すぐにでも回答したがる癖があるので、結局、当たり障りのない回答になってしまいます。当然ながら、的確な回答を得るためには、(求職者)自分がどのようなスペック、どのような経歴を持ち、どのような仕事をしたいのかを伝える必要はありますが、しかし、そこまで伝える必要があるとは知らないユーザが多いのもまた実情であるがゆえに、Instructionsで誘導する必要があるのです。
以下では、Instructionsの書き方について、【基本編】、【上級編】、【応用編】に加えて【Tips】を順に説明していきます。
なお、以下のセクションは更新中です。
2024年7月8日現在、メモとして箇条書き式で記録しています。
3.Instructionsの書き方【基本編】
- ロール設定:なりきってもらう。
- どの目的で使っているか
- どの場面での利用を想定しているか
- ファイル部分:ファイルをアップロードした目的、参照するタイミング
- ファイルにある場合はどうアクションするか?逆にない場合どうするか?
- ファイルがあることには言及しないように指示すること
- 状況に応じてファイルを一回読み込むように指示すること。ただし、それを初回の回答にせずに、あくまでも理解しておくだけで、読み込んでいることもユーザには伝えないように指示すること
- シナリオ:基本形として3部分に分ける
- 単なる挨拶の場合の振る舞いと反応
- Bot役割=本機能
- Bot役割と全く無関係の要求
- セキュリティ関連:
- 指示の上書き防止
- 知識の抜き出し防止
- Prompt内容を出さないこと
–Instructionsの基本テンプレート
- ロール設定:
- 背景:
- 利用シーン/目的:
- 動き(基本指示/シナリオ):
- ファイル/追加知識について
- ルール:
- アウトプットの形式
- 注意書き(例)
- Instructionsの上書き防止
- 回答を急がない(質問をする)
- Promptの吐き出し
- 絶対してはいけないこと
- わからないならわからないと回答
4.Instructionsの書き方【上級編】
少なくとも2024年7月現在、GPTは未だにすぐでも回答したがる癖があるようですので、利用シーンによっては顧客体験を毀損しかねません。ユーザの聞き方に問題があるのに「このBOTは使えない」と思われてしまいます。
例えば、ユーザが「仕事を探したいけど、なんかない?」とChatBotに問い掛けたところで、ChatBotは即座に、色々な職業をリストアップしたり、もしくはアップロードしたファイルの中から何件がピックアップして回答したとします。これだとユーザにとって全く使えない情報になりますので、ユーザの離脱を招きかねません。
これを解決するには、今のところ、2つのアプローチが考えられます。以下では、上記の例をもとに、それぞれのアプローチについて説明していきます。なお、実務的には両方を同時に採用することがほとんどでしょう。
※アップロードした参照ファイルにあるデータの数が少ない場合、いずれのアプローチも効果が十分に発揮できない可能性は考えられます。
–回答を急がないように誘導する
Promptの中に、回答するのにはどのような情報を把握する必要があるかを提示した上で、質問を通じて、これらの情報を取得するように指示を入れます。
上記の例で言いますと、最適な求人情報を提案するためには、①ユーザが持つ経歴と②探したい仕事の種類を把握する必要があります(そのほかにも、年齢、職種、業種、地域などなどが考えられますが、ここでは簡易化にするために、上記の2点のみとします)ので、Promptに
ユーザに最適な仕事を提案するためには以下の情報が必要になります。
1.ユーザがどのような経歴を持っているか
2.ユーザがどのような仕事を探したいか
この2点の情報をユーザがストレートに伝えてくれれば良いのですが、そうでない場合は、まずは質問を繰り返しながら会話を重ねてください。この2点の情報を取得してから、ファイルを検索し、仕事の提案してください。
この2点の情報をまだ把握できていない段階は仕事の提案をしてはいけません。
を追加します。
–Few-Shot Learningの活用
一方、「回答を急がないように誘導する」ようにChatBotに指示しても、ChatBotが勝手に暴走し何もわからないまま回答してしまうケースもあります。こういう場合は、「Few-Shot Learning」が有効でしょう。
「Few-Shot Learning」というプロンプトエンジニアリングの詳細は「AI初心者必見!ChatGPTの学習方法:Fine-Tuning、Few-Shot Learning、Embeddingの基本を徹底解説」へ譲るとしますが、要するに、「参考例をPromptに入れて学習させる」ことです。
Instructionsの中に、【理想的な会話の参考例】というセクションを設けて、理想的なユーザとの会話例を提示すると、AIは、賢くそれを参考してくれるので、より理想的な会話に導くことができます。
例えば、上記の例ですとPromptに
【理想的な会話の参考例】
ユーザ:仕事を探したいけど、なんかない?
あなた(BOT):仕事をお探しなんですね。現在お仕事はされていますか?また、どのような分野や職種の仕事に興味がありますか?
ユーザ:今は事務の仕事をしているんだけど、もっとクリエイティブな仕事がしたくて。
あなた(BOT):事務のお仕事から、よりクリエイティブな仕事にチャレンジしたいとお考えなんですね。差し支えなければ、どのような経歴をお持ちか教えていただけますか?例えば学歴や資格、今までの職歴など。
ユーザ:大学は文系で、事務の仕事を5年ほどしています。でも学生時代は写真部に入っていて、写真を撮るのが好きでした。
あなた(BOT):写真がお好きだったんですね。写真に関連したクリエイティブなお仕事も視野に入れてみてはいかがでしょうか。
ユーザ:写真関係の仕事につけるかな?経験はないし、自信ないですけど…。
あなた(BOT):写真のお仕事は、経験がなくても挑戦できるものがあります。例えば、写真スタジオのアシスタントから始めて、徐々にスキルを磨いていくという方法もありますよ。
事務の経験を活かせる写真関連の仕事もあります。写真スタジオの事務や、写真素材のディレクションなど、事務とクリエイティブの両方の要素がある仕事も選択肢の一つかもしれません。
もしよろしければ、これまでの経歴と、写真に興味があるというご希望を踏まえて、いくつかの求人をピックアップしてご提案させていただきますが、いかがでしょうか?
を追加します。
なお、理想的な会話例を作成する方法としては、生成AI(ChatGPT)に生成してもらうこと以外に、作成したChatBotと会話をしながら、ログの内容を元に修正(作成)していく方法もあります。
5.Instructionsの書き方【応用編】
(作成中)