生成AIに対する指示のことを「プロンプト」と呼びます。 そのプロンプトの作り方によって生成AIの性能が変わります(性能向上を目指してプロンプトを修正することをプロンプトエンジニアリングと呼びます)。
そこでこのページでは、どのようにプロンプトを作るとよいかなど基本的な内容を記載します。 より詳しく知りたい方はページ下部にある参考情報を参考にしてください。
目次
- 目次
- プロンプトを作るにあたって
- 具体的かつ明確に指示出しする
- うまくいかなくても試行錯誤してみる(場合によっては諦める)
- プロンプトを作る方法
- 最初から練ったプロンプトを作る
- 対話的にプロンプトを作って出す
- 生成AIにプロンプトを作ってもらう
- 他者のプロンプトを参考にする
- プロンプトを作るコツ
- 明確に指示出しする
- 例を使う
- 考えさせる
- 区切り文字を使う
- おわりに
- 参考情報・文献
プロンプトを作るにあたって
具体的かつ明確に指示出しする
プロンプトという名前がついていると若干ギョッとしてしまうかもしれませんが、単に生成AIへの指示出しのことです。
基本的には、他者に何か作業をお願いをするときに気をつけることを気をつけてもらえれば大丈夫です。つまり、具体的かつ明確に指示出しするということです。
例えば、「理科の選択式問題を作って」というプロンプトだけでは、
- 具体的に理科のどの科目を指しているのか?
- 何問作ればよいのか?
- 問題の難易度はどの程度なのか?
- 問題を解く対象は誰なのか?
- 選択肢はいくつ必要なのか?
など、不明点が多くあるわけです。
そのため、できるだけ具体的かつ明確な情報をプロンプトに入れたほうが目的の出力が得られる可能性が高まります。
基本的には、他人に何か作業をお願いするときと同じだと思ってもらって大丈夫です。
ただし、生成AI特有のコツもあったりするので、このページではそれも含めて簡単にご紹介します。
うまくいかなくても試行錯誤してみる(場合によっては諦める)
最初から良いプロンプトを作ることは難しいです。
そのため、うまくいかなかったら、プロンプトを改善する、対話を通して出力を改善することを試してみましょう。 ここで、そもそも生成AIの性能の限界から目的の出力が得られない可能性もあるため、ある程度試してうまくいかなかったら、使うことを諦める判断をすることも重要です(実際、私もこういうことできたらいいなと思いつつ、試行錯誤してもうまくいかなかったため、その作業では生成AIを使わないといった判断をすることが多くありました)。
プロンプトを作る方法
ここではプロンプトを作る方法を主に4つ紹介します。 以下の方法はそれぞれが独立しているわけではなく、組み合わせることもできます。
例として生成AIに「理科の選択式の問題を作ってもらうこと」を想定して説明していきます。 使った生成AIのモデルはChatGPT-4o miniです。
最初から練ったプロンプトを作る
必要な情報を最初からできるだけ入れてプロンプトを作る方法です。
例えば、以下のように具体的な条件をできるだけ記述します。
以下の条件に従って、理科の選択式の問題を作ってください。 - トピックは光合成にしてください - 問題の数は2つにしてください - 選択肢の数は4つで、正解は1つにしてください - 対象は中学2年生にしてください - 問題の難易度は低い入門的なものにしてください
このプロンプトを入れると生成AIから以下の回答が得られました。
もちろんです。光合成についての選択式問題を作成しました。中学2年生向けの入門的な内容です。
問題 1 光合成において、植物が二酸化炭素と水から作り出すものは何ですか? A. 酸素 B. 炭水化物 C. 窒素 D. 水素 正解: B. 炭水化物
問題 2 光合成が行われる主な部位は植物のどこですか? A. 根 B. 茎 C. 葉 D. 花 正解: C. 葉
どうぞご活用ください!
このように最初からできるだけ条件を含んだプロンプトを作成することによって、目的の出力を得られる可能性が高まります。
先ほども書きましたが、もしうまくいかなかったら、プロンプトを改善する、対話を通して出力を改善することを試してみましょう。 また、そもそも生成AIの性能の限界から目的の出力が得られない可能性もあるため、ある程度試してうまくいかなかったら、使うことを諦める判断をすることも重要です。
対話的にプロンプトを作って出す
最初から練ったプロンプトを作ることが難しい場合は、一度簡単なプロンプトで出力を作成してもらい、それに対してこちらの反応をプロンプトとして出すといった対話的な方法もあります。
例えば、以下のようなやりとりができます。
理科の選択式の問題を作ってください
もちろんです!理科の選択式の問題をいくつか作成しますね。以下は中学校レベルの理科の問題です。
問題 1: 生物 以下の植物の中で、光合成を行うのはどれですか? a) シイタケ b) モルモット c) サクラ d) ミミズ 答え: c) サクラ
問題 2: 化学 水の化学式は次のうちどれですか? a) H₂O b) CO₂ c) NaCl d) HCl 答え: a) H₂O
問題 3: 物理 重力によって物体が地球に引き寄せられる力を何と呼びますか? a) 摩擦力 b) 電気力 c) 重力 d) 磁力 答え: c) 重力
光合成をトピックにしてください。また、問題数は2問にしてください。
了解しました。光合成に関する選択式の問題を2問作成します。
問題 1: 光合成の過程 光合成の過程で、二酸化炭素と水から何が生成されますか? a) 酸素とエネルギー b) 酸素とグルコース c) 二酸化炭素とグルコース d) 水とエネルギー 答え: b) 酸素とグルコース
問題 2: 光合成の色素 光合成において、光を吸収する役割を持つ色素は何ですか? a) クロロフィル b) カロテノイド c) アントシアニン d) フラボノイド 答え: a) クロロフィル
光合成に関する他の質問や、さらに詳しい説明が必要な場合はお知らせください!
例えば、さらに条件があれば、その条件を対話的に伝えることによって、目的の出力を得やすくなります。
また、対話を振り返ったうえで、次回からは必要な情報をまとめて最初のプロンプトに入れ込むといった工夫もできるでしょう。
生成AIにプロンプトを作ってもらう
そもそも生成AIにプロンプトを作ってもらうこともできます。
生成AIに理科の選択式の問題を作ってもらうプロンプトを作成したいと考えています。 質の高い問題を作ってもらうために必要な条件を全て含んだプロンプトを作成してください。
質の高い理科の選択式問題を生成するためのプロンプトを作成する際には、以下の要素を含めると良いでしょう:
- 学年・レベル: 問題の難易度や対象とする学年を指定することで、適切な難易度の問題を作成できます。
- 科目の範囲: 具体的な科目やトピック(例:生物学、化学、物理学、地学など)を指定することで、焦点を絞った問題が作成できます。
- 問題の形式: 選択肢の数(通常は4つ)や、正しい選択肢の位置などを指定できます。
- 学習目標: 問題を通じて測りたい学習目標や概念(例:特定の法則、原理、現象など)を明示します。
- 解説: 問題と選択肢に対する解説を含めることで、学習者が理解を深められます。
以下に、これらの要素を組み合わせたプロンプトの例を示します:
プロンプト例:
「中学校2年生の理科の選択式問題を生成してください。以下の条件を満たす問題を作成してください。
- 科目の範囲: 物理学(例:力の法則、エネルギーの変換など)
- 問題の形式: 4つの選択肢を含む形式で、正しい選択肢が1つだけです。
- 学習目標: 力と運動の基本的な法則についての理解を測る問題
- 問題の内容: 問題文は具体的で、実生活に関連するシナリオや例を含めてください。
- 解説: 問題と選択肢に対する詳細な解説を含めてください。正しい答えの理由と、他の選択肢が間違っている理由を説明してください。
例: 問題: 「ある物体が地面に向かって自由落下しているとき、物体にかかる力として正しいものはどれか。」 選択肢: A. 空気抵抗 B. 摩擦力 C. 重力 D. 張力
解説: 正しい答えはCの「重力」です。物体が自由落下する際に、重力が物体を地面に引っ張ります。他の選択肢は自由落下には関係ありません。」
このプロンプトを使うことで、生成AIが求める品質の問題を作成するためのガイドラインを提供することができます。
このようにプロンプトの例を作ってもらうことで、それらを修正して自分なりのプロンプトを作ることができるようになります。
他者のプロンプトを参考にする
自分では思いつかないプロンプトを他者が使っている場合があります。例えば、私は作文AI家庭教師のプロンプトをXで見つけて感動したことがあります(うめ様の作文AI家庭教師プロンプト: https://x.com/ume_nanminchamp/status/1643864422862188544)。
そのため、他者のプロンプトを探して、それを参考にするのも1つの方法です。
残念ながらおすすめのプロンプトがまとまっているサイトはあまりありません(プロンプトがまとまっているサイトはあるのですが教育で活用するという観点ではそこまでピンとくるものがない状況です。もし良いサイトをご存知の方はフィードバックフォームから情報ご共有いただければ幸いです)。
敢えて挙げるならば、X(https://x.com/)で共有されているプロンプトが参考になることが多いです。
プロンプトを作るコツ
ここでは、目的の出力が得られやすくなるようなプロンプトを作るコツをご紹介します。
こちらで紹介するコツは、必ず性能が上がるというわけではないため、過信しすぎない方が無難です。
明確に指示出しする
最初のほうにも説明しましたが、できるだけ具体的かつ明確に指示出しをすると、それに沿った出力が得られる可能性が高まります。
そのため、単に「理科の選択式の問題を作ってください」だけではなく、以下のように条件をできるだけ列挙して、明確に指示することが重要です。
以下の条件に従って、理科の選択式の問題を作ってください。 - トピックは光合成にしてください - 問題の数は2つにしてください - 選択肢の数は4つで、正解は1つにしてください - 対象は中学2年生にしてください - 問題の難易度は低い入門的なものにしてください
例を使う
出力の具体的な例を入れることで、それに応じた出力を出してくれます。 (補足: 本テクニックは Few-shot prompting や Few-shot learning と呼ばれています)
以下の条件に従って、理科の選択式の問題を作ってください。- トピックは光合成にしてください - 問題の数は2つにしてください - 選択肢の数は4つで、正解は1つにしてください - 対象は中学2年生にしてください - 問題の難易度は低い入門的なものにしてください
出力例 問題 1: 光合成の過程(10点) 光合成の過程で、二酸化炭素と水から何が生成されますか?
- 酸素とエネルギー
- 酸素とグルコース
- 二酸化炭素とグルコース
- 水とエネルギー
もちろんです!以下が光合成に関する選択式問題です。
問題 1: 光合成の基本(10点) 光合成の過程で、植物が光エネルギーを使って何を作り出すかを選んでください。 1. 酸素とグルコース 2. 水と二酸化炭素 3. 二酸化炭素とエネルギー 4. 酸素と水
問題 2: 光合成の条件(10点) 光合成が行われるためには、どのような条件が必要ですか? 1. 暗い場所と高温 2. 光と二酸化炭素 3. 低温と水 4. 酸素と水
正解は以下の通りです:
- 問題 1: 1. 酸素とグルコース
- 問題 2: 2. 光と二酸化炭素
考えさせる
生成AIに段階的に考えさせることで生成AIの性能が上がることがあります。 (補足: 本テクニックは Chain of Thouht(思考の連鎖)と呼ばれています)
以下の条件に従って、理科の選択式の問題を作ってください。
- 問題作成の段階を明確化して、その段階に沿って質の高い問題を作成してください。その作成過程も出力してください。
- トピックは光合成にしてください
- 問題の数は1つにしてください
- 選択肢の数は4つで、正解は1つにしてください
- 対象は中学2年生にしてください
- 問題の難易度は低い入門的なものにしてください
光合成に関する選択式の問題を作成するためのステップを以下に示します。それぞれのステップに従って、最終的な問題を作成します。
ステップ 1: トピックの理解
トピック: 光合成
光合成は、植物が光エネルギーを使って二酸化炭素と水から有機物(主にグルコース)を合成する過程です。この過程で酸素も生成されます。中学生向けに、光合成の基本的な概念を理解しているか確認するための問題を作成します。
ステップ 2: 問題の焦点を決定
焦点: 光合成の基本的な反応式や役割を理解すること
中学2年生にとって、光合成の反応式やその主要な要素(光、二酸化炭素、水、酸素など)を理解することは基本です。これを基に問題を作成します。
ステップ 3: 問題文の作成
問題文: 光合成の過程に関する基本的な理解を確認するための簡単な質問を作成します。
ステップ 4: 選択肢の作成
選択肢: 正解とともに、混乱を招くような誤答を含めます。
最終問題の作成
問題文: 光合成の過程で、植物は何を使用して酸素を生成しますか?
選択肢:
- 二酸化炭素と水
- 酸素と光
- 光と水
- グルコースと酸素
正解: 1. 二酸化炭素と水
この問題は、光合成の基本的な要素(光、二酸化炭素、水、酸素)を確認するためのものです。選択肢の中で、正しい反応に関連する選択肢が含まれています。
区切り文字を使う
生成AIにプロンプトにおける情報の区切りを明確に伝えたほうが、指示が通りやすいと言われています。
区切り文字としては、セクション記号(#)、タグ(<>)、引用記号(```)などを使うことが多いです。
以下の条件に従って、理科の選択式の問題を作ってください。# 条件
- トピックは光合成にしてください - 問題の数は2つにしてください - 選択肢の数は4つで、正解は1つにしてください - 対象は中学2年生にしてください - 問題の難易度は低い入門的なものにしてください
# 出力例 問題 1: 光合成の過程(10点) 光合成の過程で、二酸化炭素と水から何が生成されますか?
- 酸素とエネルギー
- 酸素とグルコース
- 二酸化炭素とグルコース
- 水とエネルギー
以下のような問題を作成しました。
問題 1: 光合成の基本(10点)
光合成の過程で、植物が太陽光を使って生成するものは何ですか?
- 酸素とグルコース
- 水と二酸化炭素
- 酸素と二酸化炭素
- 水とエネルギー
問題 2: 光合成の必要条件(10点)
光合成が行われるために必要な条件として正しいものはどれですか?
- 二酸化炭素と水と光
- 二酸化炭素と酸素と光
- 水と酸素と光
- 二酸化炭素と水とエネルギー
正解は以下の通りです。
問題 1: 1. 酸素とグルコース
問題 2: 1. 二酸化炭素と水と光
おわりに
最後まで読んでいただきありがとうございました。
このページに書いてあることは基本的な事項で、日々研究が重ねられ質の高い出力を得るためのプロンプトが開発されています。
ご興味がある方は、英語の文献が多くなってしまい恐縮ですが、以下の参考情報などをご覧いただくのもよいかと思います。
また、コツを使ったからといって必ず性能が高くなるわけではないことにも注意が必要です。
そのため、ある程度試行錯誤してうまくいかなかったら、その作業では生成AIを使うことを諦めるのも1つの方法です。
みなさまがうまく生成AIを活用できることを願っています!
参考情報・文献
- 初級
- Anthropic プロンプトエンジニアリングの概要: https://docs.anthropic.com/ja/docs/build-with-claude/prompt-engineering/overview
- わかりやすくプロンプトのコツがまとめられています
- OpenAI Prompt engineering(英語): https://platform.openai.com/docs/guides/prompt-engineering
- 英語ですがこちらもわかりやすくプロンプトのコツがまとめられています
- 初級~上級(以下の2つを把握しておけば基本的には十分のように感じています)
- Prompt Engineering Guide(英語)https://github.com/dair-ai/Prompt-Engineering-Guide
- Web バージョン: https://www.promptingguide.ai/
- 日本語版(https://www.promptingguide.ai/jp)も出ていますが全てが訳されていないことに注意が必要です
- プロンプトエンジニアリングの基本から発展まで学べます
- 研究論文も参照していて、より深く学びたい人にニーズにも対応しています
- ただし、プロンプトによるバイアスについては情報がなさそうです
- Learn Prompting: (英語)https://learnprompting.org/ja/docs/intro
- 初級者から上級者向けのコンテンツがわかりやすくまとまっています
- 日本語対応も少し始まっている模様ですが、全てのコンテンツが日本語対応しているわけではないようです
- 関連論文
- Kojima, T., Gu, S. S., Reid, M., Matsuo, Y., & Iwasawa, Y. (2022). Large language models are zero-shot reasoners. Advances in neural information processing systems, 35, 22199-22213.
- Wei, J., Wang, X., Schuurmans, D., Bosma, M., Xia, F., Chi, E., ... & Zhou, D. (2022). Chain-of-thought prompting elicits reasoning in large language models. Advances in neural information processing systems, 35, 24824-24837.