初心者でもできる!ChatGPTの力を引き出す正しいプロンプト(Prompt)の作り方とコツを解説
- 【基本編】プロンプトの基本知識と書き方
- そもそもPromptとは?
-
プロンプトによってアウトプットが大きく変わる?
- 【番外編】「explain it to me like i am 5」の使い方
- 初心者向け!プロンプトの基本的な書き方
-
質問や指示を明確にする
- 文脈や背景情報を提供する
- 目的や期待する回答形式を明示する
- 【中級編】効果的なプロンプトの構造
- ロール・キャラクターの設定
- 文脈や背景の提示
- タスクや質問の定義
- ルールの設定
- その他のガイダンス
- 【上級編】Few-Shot-Learing(Few-Shot-Prompting)を駆使しよう
- 類似の問題解決例を提示する
- 回答例を用いて期待する回答の形式を示す
- 順序立てた指示や段階的なアプローチを利用する
- 複数の観点から問題を解決する例を提供する
- 【番外編】裏技:不明点があれば聞いてと指示する
- まとめ:ChatGPTの結果を最適化するプロンプト(Prompt)の作り方
初心者でもできる!ChatGPTの力を引き出す正しいプロンプト(Prompt)の作り方とコツを解説
ChatGPTへの指示(プロンプト、Prompt)によって、ChatGPTからのレスポンス(アウトプット)が大きく異なります。
プロンプトの調整は「プロンプトエンジニアリング」と呼ばれており、海外では年俸30万ドルでプロンプトエンジニアを募集する事例もあるほど、「プロンプトエンジニアリング」が注目を集めています。
「エンジニアリング」と聞くと、難しい技術が必要だと思われがちですが、実はプログラミング知識は必要なく、文系の方が向いていることもあり、コツさえ掴めれば誰でも「エンジニアリング」ができます。
この記事では、
- ChatGPTのユーザー
- ビジネスパーソン
- プロンプトの書き方を知りたい人
- ChatGPTのアウトプットを最適化させたい人
- プロンプトエンジニアを目指してみたい人
向けに、効果的なプロンプトの書き方やテクニックを公開しています。
この記事を読むことで、
- プロンプトエンジニアリングの基本概念を理解
- 質問や指示の仕方でChatGPTからの回答品質を向上させる方法
- より効果的なプロンプトを作成し、目的に応じた情報を得る
といったスキルが身につきます。
この記事では、
プロンプトエンジニアリングの基本から応用までを網羅的に解説していくため、初心者から上級者まで幅広い読者に役立つ内容となっています。
また、プロンプトエンジニアリングをマスターすることで、ChatGPTで収益化することもできます。詳しくは参考記事「一般人がChatGPTで稼ぐ方法~AIで収益化(マネタイズ)する3の方法とコツを解説」をご参考ください。
【基本編】プロンプトの基本知識と書き方
ここから、まずは「Promptとは何か」の説明をした上で、
事例を参考にしながら「良いプロンプトの書き方」について解説します。
なお、これらのPromptは厳密的に言えばChatGPTへプロンプトというより、「GPTモデル」へのプロンプトになりますが、便宜上、この記事ではまとめて「ChatGPT」に統一します。
CHATGPTとGPTシリーズ、GPTモデルの違いなどにつきましては、【初心者向け】CHATGPTとGPTシリーズのすべて: 各バージョンの違いをわかりやすく解説をご参考ください。
そもそもPromptとは?
プロンプトとは、ChatGPTに指示を与える文章や質問のことを指します。
これによって、ChatGPTはユーザーが求める情報や回答を生成します。
適切なプロンプトを与えることで、効果的なアウトプットを得ることができます。
プロンプトによってアウトプットが大きく変わる?
例えば、「ChatGPTについて教えて」というプロンプトを入力した場合、概要的な情報が返ってくるでしょう。
しかし、「ChatGPTの応用事例や利点を教えて」と入力すると、より具体的で詳細な情報が得られます。
更に、「ChatGPTの応用事例や利点を教えて」の前に「explain it to me like i'm 5」を付け加えた場合の結果を見てみましょう。
このように、プロンプトの内容によってアウトプットが大きく変わることがわかります。
【番外編】「explain it to me like i am 5」の使い方
先ほどの事例で、「explain it to me like i am 5」を入れましたが、これは難しい単語や概念を調べるときに、良く使われます。
この使い方はプロンプトエンジニアリングの範疇に入るかどうかは議論の余地はあるでしょうけれども、ChatGPTを使いこなすのに、是非覚えておきましょう。
初心者向け!プロンプトの基本的な書き方
先ほどの事例からも分かるように、プロンプトを書く際には、以下のポイントを意識する必要があります。
- 質問や指示を明確にする
- 文脈や背景情報を提供する
- 目的や期待する回答形式を明示する
これらのポイントを押さえた上で、プロンプトを作成することで、初心者でも簡単に効果的なアウトプットを得られるようになります。
それでは、「キーワードの整理」というタスクを例に順次に説明していきます。
質問や指示を明確にする
ChatGPTに対してはっきりとした質問や指示を与えることで、目的に沿った回答が得られやすくなります。
曖昧な表現を避け、具体的な言葉を使いましょう。
例えば、「キーワードの整理」をしてほしいので、キーワードのリストをChatGPTに渡した上で「整理して」と指示したとします。
これでChatGPTは一応整理してはくれるものの、希望通りのアウトプットになるかは怪しいです。
というのも、ここでの「整理」は具体的にどのような作業かが曖昧だからです。
分類してほしいのに、
- アルファベット順での並べ替え
- あいうえお順での並べ替え
- 文字数で並べ替え
などの結果が出てくるかもしれません。
しかも単に「分類して」と指示しても「どのように分類すればよい」かはChatGPTは分かりません。
正しくは明確にかつ具体的に
「これらのキーワードを検索意図ベースで分類(グルーピング)してください」
というプロンプトで指示することです。
更にいえば、
「検索意図とは、ユーザーが検索をした際に、その検索ワード(クエリ)を入力した目的のことを指す。」
のように検索意図の定義も予めChatGPTに渡すとなおさら良いでしょう。
検索意図とは、ユーザーが検索をした際に、その検索ワード(クエリ)を入力した目的のことを指す。以下はキーワードリストです。これらのキーワードを検索意図ベースで分類(グルーピング)してください。[キーワードリスト]
文脈や背景情報を提供する
プロンプトに文脈や背景情報を含めることで、より適切な回答が得られます。
同じくキーワードのグルーピング作業を例に説明すると例えば、
「〇〇〇をテーマとしたオウンドメディアを運営しており、これから新しいコンテンツを追加するために、記事単位でのキーワードをグルーピングしたいので、検索意図ベースでグルーピングしてください」
のように、文脈や背景情報をも提供することで、より適切な結果が得られます。
更には、
「同じ検索意図もしくは類似する検索意図のキーワードが異なる記事に分散されると、検索エンジンでの評価も分散されてしまうため」
と「なぜ記事単位なのか?」、「なぜ検索意図ベースなのか」といった情報もChatGPTに提供しましょう。
###東京のグルメ情報をテーマとしたオウンドメディアを運営しており、これから新しいコンテンツを追加するために、記事単位でのキーワードをグルーピングしたい。
###同じ検索意図もしくは類似する検索意図のキーワードが異なる記事に分散されると、検索エンジンでの評価も分散されてしまうため、検索意図ベースでグルーピングしてください
###検索意図とは、ユーザーが検索をした際に、その検索ワード(クエリ)を入力した目的のことを指す。
###以下はキーワードリストです。これらのキーワードを検索意図ベースで分類(グルーピング)してください。
###[キーワードリスト]
目的や期待する回答形式を明示する
ChatGPTに求める回答の形式や目的を明示することで、望む結果を得やすくなります。
例えば同じくキーワードのグルーピング作業を例に説明すると
「テーブルで整理してください」
と指示すれば、表で結果をまとめてくれるし、
「以下の形式で整理してください:[検索意図]:[キーワード,キーワード]」
のように指定することもできます。
詳しくは後ほど触れますが、更に回答例を提示するとより確実に望む結果が得られます。
###東京のグルメ情報をテーマとしたオウンドメディアを運営しており、これから新しいコンテンツを追加するために、記事単位でのキーワードをグルーピングしたい。
###同じ検索意図もしくは類似する検索意図のキーワードが異なる記事に分散されると、検索エンジンでの評価も分散されてしまうため、検索意図ベースでグルーピングしてください
###検索意図とは、ユーザーが検索をした際に、その検索ワード(クエリ)を入力した目的のことを指す。
###以下の形式で整理してください:[検索意図]:[キーワード,キーワード]。例えば、[店を探したい]:[東京 台湾料理 おすすめ,新宿 ラーメン 安い]
###以下はキーワードリストです。これらのキーワードを検索意図ベースで分類(グルーピング)してください。
###[キーワードリスト]
【中級編】効果的なプロンプトの構造
既に初級編で触れており、重複する部分もありますが、中級編では効果的なプロンプトの構造を解明していきます。
優れたプロンプトには以下の5つの要素が含まれています。
- ロール・キャラクターの設定
- 文脈や背景の提示
- タスクや質問の定義
- ルールの設定
- その他のガイダンス
必ずしもこの順で書かなければならないわけではありませんが、実際にこの順番の方が覚えやすく漏れないというメリットがあるので、実務的にはこの順でプロンプトを構成することがほとんどです。
ロール・キャラクターの設定
見たことがある方もいると思いますけど、例えばプロンプトの冒頭に「あなたはマーケティングのスペシャリストです」とプロンプトを通じてChatGPTに役割・ロール・キャラクターを与えるという設定です。
ロール・キャラクターの設定は必ずしも必須ではありませんし、使用シーンやタスクによっては結果に全く影響しないこともありますが、設定したところでマイナス影響はないので、ロール・キャラクターの設定が必要なタスクや利用シーンを見分けられるまでは、プロンプトにロール・キャラクターを設定する癖を身につけましょう。
【参考記事挿入368】
文脈や背景の提示
既に【初級編】で触れましたが、どのような目的や背景でこのタスクを依頼しているかをChatGPTに伝えるという「文脈や背景の提示」です。
文脈や背景の提示は非常に重要である一方で、依頼者(我々)の頭の中にあるせいか、プロンプト作成の際に忘れられがちです。
「うるさい」と思われるほど丁寧に文脈や背景を文字にすることで、ChatGPTへの指示が明確になり、我々もタスクの目的や意図を整理しやすくなります
実務的に、文脈や背景、目的を文字にするという作業を通じて、依頼者(我々)自身もタスクの目的や意図をより明確に理解するようになることもすくなくありませんし、ChatGPTに対する指示も具体的かつ適切に伝えることができる結果、ChatGPTが求められる結果に近い回答を出力する可能性が高まります。
また、文脈や背景を明確に伝えることで、ChatGPTはタスクに対する理解が深まり、より適切な回答や提案を行うことができるようになります。
要するに、文脈や背景の提示は、依頼者とChatGPTのコミュニケーションを円滑にし、互いの理解を深めるために非常に重要な要素です。そのため、プロンプト作成の際には、十分な時間と労力をかけて文脈や背景を明確に伝えることが望ましいでしょう。
タスクや質問の定義
ChatGPTに行ってほしい作業・タスクの内容や質問を定義しましょう。
同じく【初級編】で触れていますが、タスクや質問の定義では、ChatGPTに求める作業やタスクの内容、または質問を具体的かつ明確に提示することが重要です。これはプロンプトの中心となる部分であり、曖昧な言葉や表現を避けることで、期待する結果に近づくことができます。
具体的な指示や質問をすることで、ChatGPTが適切な回答や解決策を提供しやすくなります。また、必要であれば、適切な範囲や条件も明記しておくことで、より精度の高い回答が得られることがあります。
例えば、「〇〇市のおすすめ観光スポットを5つ教えてください」というように、具体的な数や場所を指定することで、期待に沿った回答が得られます。このように、タスクや質問の定義を明確にすることが、効果的なプロンプト作成の鍵となります。
ルールの設定
制約やルールがあれば、それを設定しましょう。
ルールの設定では、ChatGPTに対して特定の制約やルールを明示的に伝えることが重要です。これにより、期待する結果に近い回答を得ることができます。
例えば「日本語で答えてください」というのも一つのルールですし、以下のようなルールや制約を設定することもできます。
「500文字以内で答えてください」:回答の長さを制限することで、簡潔な回答を求めることができます。
「初心者向けに説明してください」:対象者に合わせた回答を求めることができます。
「具体例を3つ挙げてください」:具体的な事例や例を用いた回答を求めることができます。
このように、ルールや制約を設定することで、ChatGPTが適切な範囲や条件に沿った回答を提供しやすくなります。
ただし、あまりに多くのルールや制約を設けると、ChatGPTが回答しにくくなる場合もあるため、適切なバランスが重要です。
その他のガイダンス
その他のガイダンスでは、初級編で触れた回答の形式の指定や回答例を提供することが重要です。また、Few-Shot-Learning(Few-Shot-Prompting)を活用することで、より効果的な結果が得られます。
Few-Shot-Learning(Few-Shot-Prompting)とは、いくつかの例を提示することで、ChatGPTに求める回答の形式やスタイルを効果的に伝える方法です。これにより、ChatGPTは望む結果に近い回答を提供する可能性が高まります。
例えば、以下のようにガイダンスを提供することができます。
「以下の形式で答えてください:[質問] - [回答]」:回答の形式を指定することで、望むスタイルの回答が得られます。
「次の例に従って回答してください:[例1]、[例2]、[例3]」:具体的な例を提示することで、ChatGPTに求める回答の内容やスタイルを伝えることができます。
このように、その他のガイダンスを提供することで、ChatGPTがより望ましい回答を提供しやすくなります。ただし、指示があまりに複雑だと、ChatGPTが理解しにくくなる場合もあるため、簡潔かつ明確な指示を心掛けましょう。
Few-Shot-Learning(Few-Shot-Prompting)については次の「上級編」で詳しく説明します。
【上級編】Few-Shot-Learing(Few-Shot-Prompting)を駆使しよう
Few-Shot-Learning(Few-Shot-Prompting)は、少ない例でモデルに学習させる手法です。具体的な回答例や、似たような問題を解決した例を示すことで、ChatGPTが理解しやすくなり、期待する回答を得られる確率が上がります。
###私は映画のジャンルを知りたいです。次の映画をそれぞれのジャンルに分類してください。
###以下、参考例:
例1:
映画:タイタニック
ジャンル:ロマンス/ドラマ
例2:
映画:ダークナイト
ジャンル:アクション/スリラー
###以下の映画を分類してください。
1. インセプション
2. ラ・ラ・ランド
3. ジュラシック・パーク
このプロンプトでは、Few-Shot-Learningを活用して、既知の映画のジャンル分類の例を2つ提示しています。これにより、ChatGPTは分類の方法を理解しやすくなり、その後の質問に対して適切な回答を提供できるようになります。
これより、Few-Shot-Learningの手法として
- 類似の問題解決例を提示する
- 回答例を用いて期待する回答の形式を示す
- 順序立てた指示や段階的なアプローチを利用する
- 複数の観点から問題を解決する例を提供する
を軽く説明していきますが、Few-Shot-Learing(Few-Shot-Prompting)をより詳しく知りたい方は、下記の参考記事「AI初心者必見!ChatGPTの学習方法:Fine-Tuning、Few-Shot Learning、Embeddingの基本を徹底解説」をご一読ください。
類似の問題解決例を提示する
類似の問題解決の例を提示することで、ChatGPTは関連する知識やパターンを学習しやすくなります。
例えば、食材の組み合わせを提案するような問題に対しては、以前成功した食材の組み合わせを示すことが役立ちます。
回答例を用いて期待する回答の形式を示す
具体的な回答例を提示することで、ChatGPTに期待する回答の形式やスタイルを示すことができます。
例えば、旅行の計画を立てる際に、日程や宿泊先、観光地を含む具体的な回答例を示すことで、適切な回答を促します。
順序立てた指示や段階的なアプローチを利用する
順序立てた指示や段階的なアプローチを用いることで、ChatGPTに問題解決のプロセスを明確に示すことができます。
例えば、料理のレシピを調べる際に、材料の準備、調理手順、盛り付けまでの手順を示すことで、明確な回答を得られます。
複数の観点から問題を解決する例を提供する
問題解決に複数の観点が必要な場合、それらの観点を網羅した例を提示することで、ChatGPTはより適切な回答を提供できるようになります。
例えば、スマートフォン選びの際に、性能、価格、デザイン、バッテリー寿命などの観点を網羅した例を提示することで、ChatGPTはこれらの要素をバランスよく考慮した適切なスマートフォン選択の提案ができるようになります。
【番外編】裏技:不明点があれば聞いてと指示する
不明点がある場合や、もしモデルが迷ったりした場合には、質問してもらうよう指示することも効果的です。これにより、意図しない回答や不適切な回答を避けることができます。
例えば、プロンプトの最後に
- もし不明点や迷った場合は、質問してください。
- もし適切な回答をするのに情報が不足している場合は質問してください
を入れることです。
まとめ:ChatGPTの結果を最適化するプロンプト(Prompt)の作り方
いかがでしたか?
この記事では、ChatGPTと効果的にコミュニケーションするためのプロンプト作成における3つのスキルレベルを紹介しました。
初級編では、
- 質問や指示を明確にする
- 文脈や背景情報を提供する
- 目的や期待する回答形式を明示する
の3ポイントをみきました。
中級編では、優れたPromptを構成する
優れたプロンプトには以下の5つの要素が含まれています。
- ロール・キャラクターの設定
- 文脈や背景の提示
- タスクや質問の定義
- ルールの設定
- その他のガイダンス
5つの要素を説明しました。
最後に、上級編では、Few-Shot-Learning(Few-Shot-Prompting)を活用し、具体例や類似問題解決の経験を共有することで、より適切な回答を得ることができることを学びました。
これらの手法を組み合わせて実践し、プロンプト作成のスキルを向上させることで、ChatGPTを効果的に活用することが可能になります。最適なプロンプト作成を目指し、ChatGPTとのコミュニケーションをよりスムーズかつ効率的に行いましょう。