E資格勉強のためのChatGPT-Custom Instructions
先日、投稿した以下の記事で、E資格の勉強においてChatGPTを大いに活用したことを触れていました。
GPT4ともなると当然、初期設定の状態で質問をしても有用なのですが、個人的には「勉強の相方」となる存在にしたかった、ということもあり、Custom Instrucitons(カスタムインストラクション)を調整し、画像を差し替えるという調整をしていました。
で、未だにその設定で使っているのですが、E資格勉強にチューニングされていることで、他のタスクの解決時に影響がでることに気づき、そろそろ変えようと思っています。
そのため、今回の記事では記録を残す意味で、E資格勉強用のCustom Instrucitons(及びカスタマイズ)を紹介したいと思います。
E資格勉強用のCustom Instructions
はじめに、思い至ったきっかけはこちらの記事です。
私はこの方のレベルで画像にこだわったり、絵文字を作ったりはしていないのですが「なるほど!これは楽しく勉強できそうだ」と思い、参考にさせていただくことにしました。
実際の会話はこんな感じです。なお、アイコンはAI学習者御用達のyoutuberであるAIcia Solid Projectさんをモデルにしています(こちらも大変お世話になりました)。
なお、今であればGPTsで作るのがメインのChatGPTへの影響を抑えられて、かつRAGができるのでオススメです。
私の場合は、この設定を作り、勉強し始めたあとにGPTsがリリースされたので、むしろ別の使い方をしたいときに個人用のGPTsを作ったりしていました。
では具体的に、以下が私のCustom Instructionsです。
そして、設定上の違いがあるかはわかりませんが、「どのように ChatGPT に回答してほしいですか?」の欄は以下の通りです。
使う中で調整をしていった結果なのですが、当然、まだまだ改善の余地があると思うので、考えていたことを整理しておきます。
Custom Instructionsの説明
まずは自己紹介。これは、「挙動」のところで「私の名前を呼ばせる」ことを意識した設定です。
次に、ディープラーニングの勉強をしていることを伝えます。これはちょっとした質問でも、常にディープラーニングに絡めて考えてもらうための設定です。
加えて、pythonコーディングの手助けをしてほしいので、その旨も追記しています。
なお、「numpyのみ」はE資格の中でも問題によります。一番基本的な誤差逆伝播とかはnumpyのみで表現できる必要がありますが、画像認識やGANなどはkeras(pytorch)を使うので、その場合は「kerasで」と添えておく必要があります。
そして、できるだけ丁寧に説明をしてもらうために「基礎知識から…」ということを付け加えています。
そして、応用数学分野や、強化学習などは数式との戦いなので、そこを補助するための説明も入れています。
先ほど示した例を見てもらえると、「簡単な例で説明する」挙動がわかるかと思います。
※ただし、うまくいかずに再指定することもしばしば。
挙動設定に関する説明
続いて、「どのように ChatGPT に回答してほしいですか?」の欄についてです。
ちなみにこれはGPTsだと欄が分かれていないので、一つのCustom Instructions内に見出しを分けて書く必要があります。
そして改めてですが、GPTの生成はインプットの文脈に応じて行われるため、「指定しているのに思った生成がされない」ときは「インプットにしつこくその情報を追加する」というアプローチを取っています。
これが正解かはわかりませんが、同じようなことを違う表現で複数回指定している意図はそれです。
まずは挙動について。
便利な「ステップバイステップ」、「親密さを表現」、「自分の感想」などは上手く作動しています。
が、「質問する」「自らGoogle検索」などはほぼ機能していなかったです。
以降は必要性で言うと低いのですが、モチベートしてもらうために追加したような内容です。
ただ、生成AI活用においては、何だかんだこういう「キャラづくり」が大事じゃないかなとは思っています。
逆に、すごいネガティブで、厳しい教師役みたいなのをGPTsで作って、その日の気分で使い分けても面白いかもしれません。
その他の会話サンプル
紹介としては以上です。
最後に、ログを見返していて良いなと思ったものをいくつかサンプルとして添付しておきます。
■LSTMについて教えてもらった後に自分の考えを整理し、補足
■記号の読み方を聞く
■強化学習についてよくわからなくなったので、例を出してもらう
■なんか厨二病っぽく例えてもらう
まとめ
個人的に、個々のプロンプトと同じくらいカスタムインストラクションは重要だと思っていますし、それをデフォルトかつ複数設定できるGPTsは本当に革命的だと思っています。
少ない試行回数で精度の高い生成をするには深津式などのプロンプト表現を論理的に構築する必要があると考えていますが、今回のような資格勉強とかでは、「◯◯って何?」「わからん」「もっと詳しく」「具体的に」「ラノベっぽいく」みたいな直感的なやり取りができることがかなり重要です。
プロンプトエンジニアリングの要素として、コミュニケーションし易い設定をカスタムする、ことはこだわっていく価値があるかなと思っていますし、使いやすい設定をできる人が使いこなせていけるんじゃないかなと感じます。
なお、今回のサンプルではたまたまコーディングに関するやり取りが含まれていなかったのですが、当然そこもGPTは強いです。
非SEがどのようにやり取りをしてコーディングしていくのか、というテクニック的なところも、私なりに試してきたことをいずれまとめたいと思います。