どうも、カーブミラーです。
今回は、プロンプトを書く上でのあれこれを書きたいと思います。深津式汎用プロンプトをはじめとしたプロンプトフレームワークも数多く世の中に出てきています。ここでは、テクニックは語りません。
本記事は、ChatGPT(無料版)で
行なっております。GPT4での確認
はできておりません。あしからず。
プロンプトとは何か
もちろん、
ChatGPTに渡す指示文です。
その指示文を書くのは、人間です。
人間が指示をして
初めて、ChatGPTは、動けます。
プロンプトは、ゴール設定、大事
でも、たいていは、
最初にイメージしていた
結果は、出てきません。
これは、
ゴール設定が、曖昧だから。
ゴールとは、何か?
結果ですよね?
スポーツで言えば、
ゴルフならば、
ティーグラウンドからの
ホールインワン。
バスケならば、
自陣ゴール下からの
スリーポイントシュート。
サッカーならば、
自陣ゴールからの
ゴールシュート。
営業マンならば、
電話アポ取りで、
自社名をあげたら
喰い付かれ、
商品名を伝えたら
速攻で商談が
まとまる。
そんな感じでしょうか。
まぁ、営業マンのくだりは、
よっぽどのことですがw
ここで何を言いたいのか?
そんな簡単に
ゴールできるわけがない!
ということです。
ChatGPTは、新人だ
今日、来たばかりの新人に、
仕事を任せますか?
いくら優秀な新人でも
無理ですよね。
少なくても、
教育係を付けて、
仕事のやり方を
指導していくものです。
そんな新人でも、
ある程度のルールを
教え込めば、
ある程度の仕事を
任せられます。
まずは簡単な指示から。
そして、指示を口頭ではなく、
指示書を渡して、やってもらう。
ここです。
この指示書が、プロンプトです。
最初は、
コピーミスした用紙の裏に、
指示を簡単に書いて渡す。
だんだんと、
指示が複雑化していく。
それでやれるようになったら、
あとは、決まった書式に
正式に指示を書き、
やらせる。
最初は、戸惑う新人。
でも、数を熟して、
処理速度が上がっていく。
――
ChatGPTへの指示も
最初は、裏紙を使った指示。
それに慣れたら、
決まった書式に
指示を書いて、渡す。
曖昧だったゴールが
具体的になっていきます。
このときの書式が、
深津式汎用プロンプトや
その他のフレームワーク
なのです。
プロンプトの育成
プロンプトを育てる場合、
この裏紙からスタートして、
最初の指示に、だんだんと
指示を加えていく。
ある程度の大きさに
なったら、フレームワークを
適用します。
ただし、このフレームワークに
こだわる必要はありません。
プロンプトのフレームワークは、
人によって、書き方はさまざま。
使う基本は、可読性です。
読みやすい、ということを
念頭に置いて、書きます。
目的は、
人に見せる、ということ。
ここで言う“人”には、
未来の自分も含みます。
将来、そのプロンプトを
自分が読む際に、
時間を掛けずに読めるか、
よく考えてみてください。
もちろん、
その場限りの
プロンプトもありますよね。
さすがに、
それを読みやすくしろ、
とは言えません。
むしろ、ムダな労力です。
でも、パッと見て、
わからなくなっていたら、
フレームワークを
適用するべきです。
フレームワークとは、コーディングルールである
この話は、エンジニアならば、
わかってもらえると思います。
他人様の
プログラムコードを読んだとき
コーディングルールがない、
コメントがない、
コードがめちゃくちゃ、
ほかにもいろいろ……。
そんなコードよりも
コーディングルール、OK。
コメント、OK。
コードは美しい。
そんなコードが
読みたいですよね?
場合によっては、
最低限のコメントでも、
素直に読める、
そんなコードが
読みたいですよね?
プロンプトも同じです。
書式に沿って、書かれてあれば
少なくても、指示がわかる。
そこに詳細が、
書かれてあれば、
それを考慮しての
作業ができる。
一気に、ゴールはできなくても
育てることで、近付く。
ゴルフならば、
刻んでいく。
バスケやサッカーならば、
パスワークしていく。
営業マンならば、
アポ取り、足繁く通い、
契約をお願いする。
新人も、
育てていけば、
自分を助ける
手となってくれる。
プロンプトフレームワークとは、
そうした指示書なのです。
深津式汎用プロンプト
7Rプロンプト
七里式プロンプト
ほかにも、いろいろとあります。
でも、
見た目が
わかりやすくなることが
大切です。
シャープ(#)や
すみつき括弧(【】)でも
いいのです。
強いて言えば、
マークダウン記法を
用いるのが、
人間にもChatGPTにも
わかりやすいのでは
ないか、
と自分は思います。
マークダウン記法は、
ChatGPTも使用するものです。
覚えておいて、損はない、
かな。
このQiitaの記事も
マークダウン記法を
使っていますから、
本当に、損はないですw
フレームワークにこだわる必要はない!
なぜか?
簡単です。
無理に
覚える必要がないから。
プロンプトを育てていくと、
自然と、文章をまとめよう、と
するようになります。
文章が長い、と
感じたら、分割するでしょうし
箇条書きがいいかな、と
思うこともあるからです。
簡潔にする、
項目をまとめる、
たまには、断捨離も。
ここでChatGPTさんに聞いてみた
以下は、
ChatGPTさんとのやり取りです。
User
プロンプトの用途を教えてください。
ChatGPT
プロンプトの用途は非常に多岐にわたります。以下はいくつかの例です:
-
情報の検索: ユーザーは特定のトピックに関する情報を求め、プロンプトを使用して質問や要約を依頼します。
-
アイデアの生成: ユーザーは新しいアイデア、ストーリーのプロット、創造的なコンセプトを求めてプロンプトを提供します。
-
質問への回答: ユーザーは具体的な質問をプロンプトとして提示し、私はその質問に対する回答を提供します。
-
文章の生成: ユーザーはレポート、エッセイ、ブログ記事などの文章を作成するためのプロンプトを与え、私はそれに基づいてテキストを生成します。
-
会話のサポート: ユーザーは対話の一部としてプロンプトを使用し、私との対話を進行させます。
プロンプトは、ユーザーが私に対して何を求めているかを伝える手段であり、それに基づいて適切な情報や応答を提供します。
User
プロンプトの構成を教えてください。
ChatGPT
プロンプトの構成は、与えられたタスクや要求に応じて変化しますが、一般的に以下の要素を含みます:
-
キーワードまたはトピック: プロンプトの最初に、質問や要求の主題やキーワードを明示的に指定します。これにより、コンテキストが明確になります。
-
アクションまたは命令: プロンプトは何を達成したいか、何を求めているかを明確にします。たとえば、「以下の質問に答えてください」とか「要約してください」といった具体的な命令が含まれることがあります。
-
補足情報: 必要に応じて、プロンプトに追加の詳細情報を提供します。これは、質問の文脈を理解するのに役立ちます。
-
フォーマット: プロンプトが期待する回答やテキストのフォーマットについての指示が含まれることがあります。たとえば、要約の場合は短い文章でまとめるように指定されることがあります。
以下は例です:
プロンプト: "エルンスト・ヘーケルについての情報を提供してください。"
- キーワードまたはトピック: エルンスト・ヘーケル
- アクションまたは命令: 情報を提供してください。
- 補足情報: 特定の情報、生涯、業績、影響などが必要かもしれません。
プロンプト: "以下の文章を要約してください。"
- キーワードまたはトピック: 要約
- アクションまたは命令: 要約してください。
- フォーマット: 短い文章で要約してください。
プロンプトの構成はタスクに合わせて調整され、明確で具体的な指示を提供することが重要です。
User
具体的な指示は、どのようにすれば、いいですか?
ChatGPT
具体的な指示をプロンプトに含めるためには、以下の方法を試してみることが役立つでしょう:
-
具体的な質問または要求を明示: プロンプトの冒頭に、具体的な質問や要求を明確に記述します。たとえば、「次の質問に答えてください」とか「以下のテキストを要約してください」といった具体的な指示が含まれます。
-
キーワードの使用: タスクや要求に関連するキーワードをプロンプトに含めます。これにより、プロンプトがどのトピックに関連しているかが明確になります。
-
フォーマットの指定: 必要に応じて、プロンプトに回答やテキストのフォーマットに関する指示を含めます。たとえば、要約の場合は「短い文章で要約してください」と指定できます。
-
補足情報の提供: タスクの文脈を理解するのに役立つ追加情報を提供します。たとえば、特定の著者に関する情報を求める場合、その著者についての補足情報をプロンプトに含めます。
-
具体的な数量または要素の指定: 必要に応じて、具体的な数量、要素、詳細情報をプロンプトに組み込みます。たとえば、特定の日付、数値、場所を要求する場合、それらの情報を指示に含めます。
具体的な指示を含めることにより、モデルがユーザーの意図を正確に理解し、要求に適切に対応できるようになります。
User
それそれを区切る方法はありますか?
ChatGPT
文中で異なる指示や要素を区切るために、以下の方法が役立つことがあります:
-
句読点: コンマやピリオドなどの句読点を使用して、異なる指示や要素を区切ります。たとえば、"以下の質問に答えてください。質問1: ... 質問2: ..."といった形式が考えられます。
-
箇条書き: 指示や要素を箇条書きにすることで、明示的に区切ります。番号付きリストや箇条書きリストを使用できます。
-
改行または段落: 異なる指示や要素を新しい行または段落で始めることで、視覚的に区切ります。この方法は特に長い指示や要素の場合に有用です。
-
タイトルまたは見出し: 各指示や要素の前に見出しを付けることで、それらを明示的に区切ります。たとえば、"要約:"といった見出しを使用できます。
-
引用符または括弧: 特定の指示や要素を引用符または括弧で囲むことで、それらを強調し区切ります。
適切な区切り方法は、プロンプトの内容や形式によって異なります。指示が明確で、モデルが理解しやすい形式を選択することが重要です。
User
区切り記号を教えてください。
ChatGPT
指示や要素を区切るために一般的に使用される区切り記号にはいくつかの種類があります。以下はその一部です:
-
コンマ (,) - 異なる要素を列挙するのに使用されます。例: "項目1、項目2、項目3"
-
ピリオド (.) - 異なる文や要素を区切るために使用されます。例: "これは文1です。これは文2です。"
-
セミコロン (;) - 関連するが独立した要素を区切るのに使用されます。例: "タスク1を完了しました; タスク2に取り組みます。"
-
コロン (:) - 説明やタイトルの後に続く要素を示すのに使用されます。例: "次のステップ: 1. 準備 2. 実行 3. 結果"
-
ハイフン (-) またはエンダッシュ (–) - 範囲を示すために使用されることがあります。例: "1-10ページ"、"2020–2021"
-
スラッシュ (/) - 選択肢や代替要素を示すのに使用されます。例: "A/Bテスト"、"男性/女性"
-
クォートマーク (""または'') - 引用文や特定のテキストを示すために使用されます。例: "彼は言った: 'こんにちは!'"
-
丸括弧 () - 補足情報を示すために使用されることがあります。例: "彼女(Alice)はリーダーシップを発揮しました。"
これらの区切り記号は、テキストを整理し、理解しやすくするために役立ちます。プロンプト内で適切に使用することで、情報を明確に伝えることができます。
User
以下のプロンプトを解釈して、それそれに項目を用意して、マークダウン記法プロンプトで示してください。
====
あなたはプロの記者です。ChatGPTの記事の構成を考えてください。読者は女子高校生です。
ChatGPT
プロンプトを解釈して、それぞれの項目にマークダウン記法で示します:
## 記事構成プラン
- **ターゲット読者:** 女子高校生
### セクション1: イントロダクション
- ChatGPTの紹介
- 女子高校生へのアピール
### セクション2: ChatGPTの活用方法
- テキスト生成の基本
- 学業への応用例
- 創造性の刺激
### セクション3: 注意すべきポイント
- オンライン情報の信頼性
- プライバシーの重要性
- バイアスに気を付ける
### セクション4: フィードバックと質問
- リーダーからのフィードバックへの対応
- ChatGPTに関する質問への回答
- さらなるリソースの提供
### セクション5: 結びつけ
- ChatGPTの可能性を強調
- 女子高校生へのエンゲージメント
このマークダウン記法のプロンプトは、記事の構成を明示的に示し、各セクションとその内容を整理しています。記事を書く際のガイドとして使用できます。
ここまで。
最後に
私は、
You Tube動画を見て、
ChatGPTの勉強しています。
海外(特にアメリカ)のものも
見ています。
言葉がよくわからんけどw
ところが、
どのYouTuberも
入力枠に、ズラズラと
書き込んでいます。
改行すらしません。
フレームワークは、
日本独特なのかも
しれませんね。
今回は、ここまでにします。
以上。