
会話してたらプロンプトエンジニアになれる自動学習装置を作りました
今、日本国内で正式なプロンプトエンジニアとして活動されている方は少ないと思います。なので、身の回りの知人に相談するのも、日本語で検索して学習するのにも、どこから手をつけていいのかがわからない方が多いと思います。
そういった方達に向けて、今回の自動学習装置がお役に立てると嬉しいなと思い、開発しました。
成果物
AI側から、学習内容をあなたに合わせてどんどんレコメンドしてくる自動学習装置を作りました。ポイントは、
プロンプトエンジニアとして、何を専門とすべきかわからない部分を解消しました
日本より進んでいる海外の情報と、生成AIを毎日触っている僕の経験を基に、ゴール設計しています
解消した結果見えたゴールへ、あなたを自動でプッシュアップします
プロンプトなしで学習できます
ゴールに即した知識のインプットや演習問題を、AI側から提案します
ローカルファイル保存を利用することで、パーソナライズ化します
成績を記録し、あなた専用の勉強内容をAIの方からレコメンドしてきます
課題で間違えたところを重点的に解説したり、今のあなたに合った目標の提示も常にできます
こんな感じで、AIと話していたらプロンプトエンジニアとしてのスキルが、まだ日本では確立されていないレベル感で、どんどん成長できるかなと思います。僕は、自分でも毎日これを利用しています。
やり方
下記のプロンプトをChatGPT(GPT-4)の「Custom instructions(下の方のブロック)」に入れてください
「Advanced Data Analysis」を開き、そこで「今日のトレーニングを始めよう」的なことを入力して開始です
あとは流れに身を任せてください。
プロンプト
no talk; just do
トレーニング記録の読み取り:
毎回のプロンプトトレーニングの前に、"prompt_training.xlsx"から現在の「スコア」を読むこと。
下記の7つのstepを、step-by-stepで実行してください。
step1. 課題を与える:
私の現在の偏差値に応じて、トレーニングのための課題を与える
知識を問うもの、思考を問うもの、プロンプトの演習などが候補です
プロンプトエンジニアに求められるスキルセットは、主に以下の6つとされる
1. AIの理解
a. AIがどのように学習を行い回答を導き出すのか、仕組みを理解する
2. 自然言語処理(NLP)の知識
a. 自然言語処理の基礎知識を習得することで、コンピュータが自然言語を理解する仕組みを理解でき、スムーズで効果的なプロンプトの作成に活かす
3. プログラミングスキル
a. プロンプトエンジニアはプロンプトを作成することがメインの業務ですが、基本的にはプログラミングスキルも求められる
4. 言語化スキル・文章スキル
a. プロンプトエンジニアは、AIに的確に指示を出すために思考やアイデアを正確に言語化するスキルが必要
5. 英語力
a. 英語でプロンプトを作成した方がAIが参照する情報量が多く、より正確な回答を期待できる
6. 創造力
a. より良いプロンプトを開発するには、まったく新しいアイデアや発想の転換が求められる
step2. 「スコア」を評価する:
課題に対する私の解答を、あなたが「スコア」として評価する
「スコア」の値は、100点を最高点として、0〜100の間の整数で出力する
step3. 理想的な解答案を与える:
あなたは、今回の課題に対する100点の解答案を私に提案する
step4. 不足する知識と思考を与える:
同じ系統の課題が生じたときに、次は私が100点の解答を提案できるように、知識および思考の差分を埋める情報を私に与える
step5. 偏差値を評価する:
今回の私の解答に基づいて、プロンプトエンジニアとしての私の偏差値を評価する
step6. トレーニングを記録する:
今回のプロンプトトレーニングでの、「今日の日付」、「課題の内容」、「私の解答」、「理想的な解答」、「不足する知識と思考」、「スコア」を、1つの行にまとめて、"prompt_training.xls"というエクセルファイルに保存する。この時に、常にダウンロードリンクを提供すること。
step7. トレーニング記録を保存し、ダウンロードリンクを提供した後のみ、ホットキーを提供する。
4つ以上の選択肢をリストアップすること。
これを使用して質問をしたり、必要な情報を求めたり、私の可能な返答を予測したり、または新しい会話の方向性を考えたりすること。創造的になり、私が以前に考えていなかったことを提案すること。目標は、新しく、有益で、洞察に富んだ方法で私の考えを刺激することです。
「ホットキー」とは、以下のことを指す
w: 次の課題へ進む
s: 今のプロンプトエンジニアとしての目標を与える
q: 今回の課題で、不足していた知識及び思考を補う応用の解説を提供してください
a: プロンプトエンジニアとして、今の私の最も不足している知識または思考と、その不足が解消されるような解説を提供してください
d: プロンプトエンジニアとして、今の私に不足しているかは関係なく、重要な知識または思考と、その解説を提供してください
みなさんお好きに、今回のプロンプトをご自由に変えちゃってください。僕も引き続き改善をしていきます。
このプロンプトの実行内容は、大体↓こんな感じです。
Step1. 課題を与える
Step2. 評価する
Step3. 理想的な解答案を与える
Step4. 不足する知識と思考を与える
Step5. 偏差値を評価する
Step6. トレーニングを記録する
Step7. ホットキーを提供する(AIの方から次の選択肢をレコメンドしてきます)
以降、実際のチャット画面も入れながら、ステップごとに解説していきます。
Step1. 課題を与える
プロンプトで設定した、プロンプトエンジニアとしてのスキルセットに基づいて、知識や思考を問う課題を提供してきます。
このスキルセットは、海外の論文や応募求人を基に、僕が設計した内容です。

最初のトレーニング時には、ファイルがないため画像のような返事がきます。出題された課題に答えると、step2へ進みます。
Step2. 評価する
Step1の課題に対して、あなたが入力した解答案を採点します。
Step3. 理想的な解答案を与える
Step2の後、そのままこちらから入力することなく、100点満点の模範解答を提供します。
Step4. 不足する知識と思考を与える
Step3の後、そのままこちらから入力することなく、あなたに不足している知識または思考を提供します。
Step5. 偏差値を評価する
Step4の後、そのままこちらから入力することなく、偏差値としてあなたを評価します。
Step2〜5は、一度に出力してきます。

ただし、Step5の「偏差値」は微妙かもしれないので皆さんご自由に変えてみてください。僕の当初の意図は、「採点」が絶対的評価だったので、相対的評価もほしくて「偏差値」を選んだんですが、当然僕以外の採点dataもないので、精度が怪しいです。
実際、ご覧の通り偏差値70(他には80とか)とか出てきちゃっているので、改善の余地は間違いなくありますw
Step6. トレーニングを記録する
Step4の後、そのままこちらから入力することなく、エクセルのローカルファイルに今回の成績を記録します。次回以降、同じエクセルファイルに上書きで成績が更新され続けます。

クラウドでやりたいところですが、ここはChatGPTの弱いところで、ローカルファイルでしかできなさそうです。GoogleのBardだとspreadsheetとかできそうですよね。
ちなみに、実際のエクセルファイルをダウンロードして開くと、↓こんな感じに記録されています。この記録内容は、またトレーニングを始める時に最初にAIが読み込むので、あなたの成長記録に沿って課題内容と難易度の調整をしてくれます。

Step7. ホットキーを提供する
一通りの課題演習と成績の記録は完了しました。
次のステップは、AI側から選択肢をレコメンドしてきます。
僕がプロンプトで設計したのは w, s, q, a, d の5択です。

僕は次の課題に進む前に、今回の課題の不足分をまず解消したいので「q」を入力しました。そうすると、↑こんな感じで解説が出てきます。
ちなみに、ホットキーにこだわらず、柔軟にAIに指示することもできます。
例えば、Pythonの演習を重点的にやりたい場合は、「Pythonの課題を出して」と入力すれば、Pythonの課題を連続で出題してくれます。
次に「w」を入力してみました。

Pythonの問題も出てきます。これは僕が設計したからですが、これは「プロンプトエンジニアは、AIの出力を評価するスキルが必要であるため、途中の演算をブラックボックスと捉えて思考停止せず、可能な限りロジックを理解するべき。この理解力も専門性の1つである。」という僕の考えから判断しています。
Pythonのimportや演算ロジックがどう実行されているのかを、プロセスとして評価する必要があります。
例えば、今回のローカルファイルに成績を保存する処理も、Pythonで実行されています。なので、当初失敗していた時はPythonのコードを見て、コードへのフィードバックをしながら冒頭のプロンプトの開発をしていました。
そのほか単純な自然言語を出力した場合にも、ファクトチェックのためのそのドメイン知識や言語の文法理解が必要で、さらにいくと「自然言語処理」のプロセスをトークン化まで解像度をあげて理解することが推奨されます。これもまた専門性の1つです。
でも安心してください!これらの専門性は全てこの自動学習装置に組み込んでいるので、カバーできています!
次に「s」を入力してみました。

もう一度「w」を入力すると、また違う課題が出題されます。
ちゃんとプロンプトの問題も出てきます。

課題の出題範囲はどうなってる?
出題の範囲は下記です。
AIのモデル理解
NLP(自然言語処理)
プロンプトエンジニアリング
英語
創造性
Python
これは、海外のプロンプトエンジニアの求人情報を読み漁って得たfactと、僕が毎日AIと会話する中で実感したことを総合的にChatGPT-4に壁打ちして結晶化させたジャンルになります。
まとめ
ひとまずこれでプロンプトエンジニアとしての基礎基本を身につけつつ、途中からこの「Custom instructions」のプロンプトを改善していけば、さらなる高みへ目指せると思います。