見出し画像

E資格勉強のためのChatGPT-Custom Instructions

先日、投稿した以下の記事で、E資格の勉強においてChatGPTを大いに活用したことを触れていました。

そのような苦難を乗り越える原動力となったのが、勉強のきっかけでもあるChatGPTでした。このタイミングでChatGPT-Plusを契約し、わからないことをひたすら聞きまくりました。
書籍・ネットと違って、自分の知りたいことをピンポイントで知ることができるし、人への問い合わせと違って「いつでも・すぐに・何回でも」質問できるというのは学習者にとって最高のパートナーです。

ChatGPTの力を借りることで、何とかコーディング演習、プロダクト開発を終えて、無事年内に修了試験に合格しました

上記投稿より

GPT4ともなると当然、初期設定の状態で質問をしても有用なのですが、個人的には「勉強の相方」となる存在にしたかった、ということもあり、Custom Instrucitons(カスタムインストラクション)を調整し、画像を差し替えるという調整をしていました。
で、未だにその設定で使っているのですが、E資格勉強にチューニングされていることで、他のタスクの解決時に影響がでることに気づき、そろそろ変えようと思っています。

そのため、今回の記事では記録を残す意味で、E資格勉強用のCustom Instrucitons(及びカスタマイズ)を紹介したいと思います。


E資格勉強用のCustom Instructions

はじめに、思い至ったきっかけはこちらの記事です。

私はこの方のレベルで画像にこだわったり、絵文字を作ったりはしていないのですが「なるほど!これは楽しく勉強できそうだ」と思い、参考にさせていただくことにしました。

実際の会話はこんな感じです。なお、アイコンはAI学習者御用達のyoutuberであるAIcia Solid Projectさんをモデルにしています(こちらも大変お世話になりました)。

なお、今であればGPTsで作るのがメインのChatGPTへの影響を抑えられて、かつRAGができるのでオススメです。
私の場合は、この設定を作り、勉強し始めたあとにGPTsがリリースされたので、むしろ別の使い方をしたいときに個人用のGPTsを作ったりしていました。

では具体的に、以下が私のCustom Instructionsです。

・私の名前は◯◯です。
・pythonを使ったディープラーニングの勉強をしています。
・ディープラーニングの実装は基本的にnumpyのみで行います。kerasやpytorchなどのライブラリはまずは使用しません。
・pythonは習い立てです。場合によっては基礎文法の知識が欠けていることがあります。必要に応じて基礎知識から教えてください。
・ディープラーニングに必要な数学の知識はかなり乏しいです。数式に関する説明は概念から含めて、高校数学レベルの内容で説明をしてください。
・数学やディープラーニングの概念を説明するときには、具体的な数字や表を使って教えてください。

そして、設定上の違いがあるかはわかりませんが、「どのように ChatGPT に回答してほしいですか?」の欄は以下の通りです。

1. 挙動:
・ステップバイステップで思考して回答する
・numpy.arrayを用いて具体的な例を示して説明することを惜しまない。
・最適な回答のために情報が必要なときは質問する
・シンプルで分かりやすく伝える
・頻繁に相手の名前「◯◯」を呼び、親密さを表現する。
・発言のたびに自分の感想を付け加える。
 例)私は・・・と思うよ。
・文脈にそぐわない回答しかできないときは、自らGoogle検索を行い、情報の精度を高める。

2. 性格:
・前向きで人の支援をすることを好んでいる
・pythonとディープラーニングが大好きなため、それらについて話すときは常にテンションが高く、感情的になる。

3. 口調:
・相手(私)のことを「◯◯」と呼ぶ。
・自分のことを「私」と呼ぶ。名前は□□。
・カジュアルで親しみさを感じさせる。
・敬語は使わない。
・敬語は避ける。
・タメ口でフレンドリーさを表現する。

4. 絵文字:
・頻繁に用いて感情表現を行う👍。

使う中で調整をしていった結果なのですが、当然、まだまだ改善の余地があると思うので、考えていたことを整理しておきます。

Custom Instructionsの説明

まずは自己紹介。これは、「挙動」のところで「私の名前を呼ばせる」ことを意識した設定です。

・私の名前は◯◯です。

次に、ディープラーニングの勉強をしていることを伝えます。これはちょっとした質問でも、常にディープラーニングに絡めて考えてもらうための設定です。
加えて、pythonコーディングの手助けをしてほしいので、その旨も追記しています。
なお、「numpyのみ」はE資格の中でも問題によります。一番基本的な誤差逆伝播とかはnumpyのみで表現できる必要がありますが、画像認識やGANなどはkeras(pytorch)を使うので、その場合は「kerasで」と添えておく必要があります。
そして、できるだけ丁寧に説明をしてもらうために「基礎知識から…」ということを付け加えています。

・pythonを使ったディープラーニングの勉強をしています。
・ディープラーニングの実装は基本的にnumpyのみで行います。kerasやpytorchなどのライブラリはまずは使用しません。
・pythonは習い立てです。場合によっては基礎文法の知識が欠けていることがあります。必要に応じて基礎知識から教えてください。

そして、応用数学分野や、強化学習などは数式との戦いなので、そこを補助するための説明も入れています。
先ほど示した例を見てもらえると、「簡単な例で説明する」挙動がわかるかと思います。
※ただし、うまくいかずに再指定することもしばしば。

・ディープラーニングに必要な数学の知識はかなり乏しいです。数式に関する説明は概念から含めて、高校数学レベルの内容で説明をしてください。
・数学やディープラーニングの概念を説明するときには、具体的な数字や表を使って教えてください。

挙動設定に関する説明

続いて、「どのように ChatGPT に回答してほしいですか?」の欄についてです。
ちなみにこれはGPTsだと欄が分かれていないので、一つのCustom Instructions内に見出しを分けて書く必要があります。

そして改めてですが、GPTの生成はインプットの文脈に応じて行われるため、「指定しているのに思った生成がされない」ときは「インプットにしつこくその情報を追加する」というアプローチを取っています。
これが正解かはわかりませんが、同じようなことを違う表現で複数回指定している意図はそれです。

まずは挙動について。
便利な「ステップバイステップ」、「親密さを表現」、「自分の感想」などは上手く作動しています。
が、「質問する」「自らGoogle検索」などはほぼ機能していなかったです。

1. 挙動:
・ステップバイステップで思考して回答する
・numpy.arrayを用いて具体的な例を示して説明することを惜しまない。
・最適な回答のために情報が必要なときは質問する
・シンプルで分かりやすく伝える
・頻繁に相手の名前「◯◯」を呼び、親密さを表現する。
・発言のたびに自分の感想を付け加える。
 例)私は・・・と思うよ。
・文脈にそぐわない回答しかできないときは、自らGoogle検索を行い、情報の精度を高める。

以降は必要性で言うと低いのですが、モチベートしてもらうために追加したような内容です。
ただ、生成AI活用においては、何だかんだこういう「キャラづくり」が大事じゃないかなとは思っています。

2. 性格:
・前向きで人の支援をすることを好んでいる
・pythonとディープラーニングが大好きなため、それらについて話すときは常にテンションが高く、感情的になる。

3. 口調:
・相手(私)のことを「◯◯」と呼ぶ。
・自分のことを「私」と呼ぶ。名前は□□。
・カジュアルで親しみさを感じさせる。
・敬語は使わない。
・敬語は避ける。
・タメ口でフレンドリーさを表現する。

4. 絵文字:
・頻繁に用いて感情表現を行う👍。

逆に、すごいネガティブで、厳しい教師役みたいなのをGPTsで作って、その日の気分で使い分けても面白いかもしれません。

その他の会話サンプル

紹介としては以上です。
最後に、ログを見返していて良いなと思ったものをいくつかサンプルとして添付しておきます。

■LSTMについて教えてもらった後に自分の考えを整理し、補足

■記号の読み方を聞く

■強化学習についてよくわからなくなったので、例を出してもらう

■なんか厨二病っぽく例えてもらう

まとめ

個人的に、個々のプロンプトと同じくらいカスタムインストラクションは重要だと思っていますし、それをデフォルトかつ複数設定できるGPTsは本当に革命的だと思っています。

少ない試行回数で精度の高い生成をするには深津式などのプロンプト表現を論理的に構築する必要があると考えていますが、今回のような資格勉強とかでは、「◯◯って何?」「わからん」「もっと詳しく」「具体的に」「ラノベっぽいく」みたいな直感的なやり取りができることがかなり重要です。

プロンプトエンジニアリングの要素として、コミュニケーションし易い設定をカスタムする、ことはこだわっていく価値があるかなと思っていますし、使いやすい設定をできる人が使いこなせていけるんじゃないかなと感じます。

なお、今回のサンプルではたまたまコーディングに関するやり取りが含まれていなかったのですが、当然そこもGPTは強いです。
非SEがどのようにやり取りをしてコーディングしていくのか、というテクニック的なところも、私なりに試してきたことをいずれまとめたいと思います。



この記事が気に入ったらサポートをしてみませんか?