昨今では多くのプロンプトが出回るようになり、コピペすれば使える有用なプロンプトも増えてきました。そのような中で優れたプロンプトを探し出し使うことは確かに重要ですが、プロンプトは自然言語で書かれていますので、自分が自分自身で使いやすくカスタマイズできるところにも大きな楽しみがあると感じています。
本記事では、自分なりのやり方でプロンプトを作成したい方向けにブログ記事作成プロンプトを作ることを例として手動でプロンプトを作成したり、カスタマイズしていく方法をお伝えいたします。
まず、基本原則は知っておきましょう。
ざっくりいうと、生成AIの以下のような性質を利用します。
- 確率的に次に来る言葉や文章を予測する。
- 言語空間を絞ることによって、得たい回答を得やすくなる
- 会話をしながら時系列的に空間を絞ることも有効
詳しくは以下の記事もご参考ください。
今回は対話型にプロンプトを進めていくのではなくて、何度も使えるような汎用的なプロンプトを作りたいので、プロンプトをもう1つの視点から見てみましょう。
プロンプトをプログラミングとしてとらえる
自然言語モデルであるChatGPTやClaudeなどは、会話をすることでいろいろな作業を指示したりすることもできますが、同時に1つのプログラムでもあります。
プログラムも、プログラミング言語と呼ばれるように1つの言語ですからね。ただ、プログラミングをやったことがないという人も安心してください。
生成AIは自然言語で指示を出すので、プログラミング言語を覚える必要はありません。ただ、ちょっとしたプログラミングの簡単な概念を理解すると構造化されたプロンプトの理解は早いかと思います。
プログラムには、変数、コマンド(命令)、関数などがあり、その概念を自然言語を使って表した方が応用が利かせやすいと思います。
例えば以下のような例だとわかりやすいかもしれません。
上記の例で[地域]=横浜、[スポーツ]=サッカーとして、コマンドを実行すれば横浜F・マリノスや横浜FCが表示されるだとうということがお分かりになるのではないでしょうか。
上記のように自然言語を使いながらも変数や関数といった概念を使っていくことで応用が利くプロンプトを作っていこうというのが今回の記事となります。
ブログ記事作成のプロンプトを作ろう
先に説明した自然言語のプログラミングのような形でブログ記事作成のプロンプトを作っていきます。変数とコマンドを並べて、最後に実行をするという流れになります。
変数
今回は、[テーマ]と[ターゲットオーディエンス]からブログの記事を決めて書いていく形にしました。
[テーマ]については、実際ブログを書き続けていれば決まったテーマがあると思い、そのテーマの中で記事を決めていくことになるのが自然だと考えたからです。[テーマ]は、例えば「転職」、「旅行」、「ダイエット」などといったものです。
[ターゲットオーディエンス]は、[想定読者]や[ペルソナ]といった名前でもいいと思いますが、要はこのブログ記事を読んでくれる読者のことです。
[ターゲットオーディエンス]を生成AIが決める流れを作ってもいいと思いますが、今回は最初に与える変数として定義しておきました。
コマンド
ここからは、与えられた2つの変数[テーマ]と[ターゲットオーディエンス]を使ってブログの記事を書かせていくコマンド(命令)を書き込んでいきます。
まず、ブログを書くにあたって、大きく2つの工程に分けました。
・構成を決める
・執筆する
ここまでの流れをマインドマップで表すとこのような形になります。
そして、それぞれの工程をより細かく指示を決めるという流れでプロンプトを作成しております。
構成を決める
私が作成してほしい記事構成とは、具体的には以下のような内容になります。ゴールの形が明確に定まるとそこまでたどり着く道も見えてきます。
例えばここでChatGPTを使って構成を決めるまでの流れを書いてもらってもいいでしょう。今回は、自分の決めた方法でやってほしかったのでコマンドは自分で決めました。
文章全体でタイトルが1つ、また大見出しが複数あって、それぞれの大見出しに対して小見出しが1~3個程度を想定しています。
「記事構成」というのは範囲が広くあいまいな言葉なので、このように具体的にどのような出力のものなのかがわかっていると、人でもChatGPTでも理解しやすいですね。
構成を決めるまでの流れ
最初の与えられた変数から最終的な「記事構成」という目的にたどりつく過程を考えてきます。
[テーマ]の中で、[ターゲットオーディエンス]が抱えているだろう悩みを選び出し、その悩みを解決する方法を提示するブログ記事を書くという流れを決めました。
その中で、健在ニーズやキーワード、ストーリーなどを決め、そこから記事構成を決めるようにしています。最初から最後までの流れが一貫したストーリーになっていないと読者はなかなかついてこないのでここは結構重要です。
ChatGPTは一度の命令で最高の結果を出してこないことが多く、ストーリーについては、評価をしながらChatGPT自身で練り直す指示も入れています。
この流れに沿って、構成が決まります。
執筆する
構成が決まってしまえばあとは、執筆するだけですのであまり難しくないかなと思いきや実際に実行してみると意外にもうまくいかないことが多いです。
ステップバイステップで
見出しから、本文を順次書いていく際にステップバイステップという言葉を入れると丁寧に書いてくれやすいです。これはプロンプトエンジニアリングでもCoTと呼ばれている技術で、ステップバイステップでと加えるだけで精度が上がることがあるので覚えておいて損はないです。とはいえ、CoTで実行させても文字数を満たさずに書き終えてしまうことは多々あります。
見出しと本文の内容が一致しているかを確認させる。
見出しに対して本文を書いているのに、見出しから想定される本文とは違う内容を書いてくることがありました。そういうこともあり、ChatGPT自身が確認して修正する作業を追加しています。
プロンプトの精度をさらに上げる方法
それはFew-Shot Promptと呼ばれる技術で、具体的に出してほしい出力の例をいくつかプロンプトに与えておくことです。
今回作成したプロンプトには記入してませんが、ストーリーの文章、タイトル、リード文など具体的にこういった内容が欲しいという例を2~3個プロンプトに書いておくことでより性能を高めることができますので、チャレンジしてみてください。
ということで、全体的なプロンプトは以下のようになります。
使ってみた結果
以下は、[テーマ]をストレス対策、[ターゲットオーディエンス]を20~30代の若手の社会人として、ChatGPT-4に作成してもらった記事になります。
途中に手直しを入れながらも最初のプロンプトを使って仕上げました。手直しは、「読者の悩みが浅すぎるので、範囲を絞って考え直して」などのようなことや、出来上がった本文に対して、「考えた修正案を使って、再度本文を書き直してください」などのようなものです。
まとめ
プロンプト作成にプログラミングの概念を応用することで、通常の作業プロセスを再構築し、より明確で効率的な作業が可能になります。この方法では、GPTとの対話を通じて得られる回答をそのままブログ記事として使うことは難しいですが、GPTからの応答を基にしてさらに内容を練り上げることで、ブログ記事作成の効率と質を向上させることができでしょう。
また、自分の仕事に関する思考の流れを明文化することは、作業の効率化だけでなく、自己の業務プロセスを理解し改善するための重要なステップです。少し面倒ではありますが、このプロセスを行うことによって、より自分の思考に沿ったプロンプトを構築することができるので、ぜひご自身のプロンプトにご活用ください。
いいね!やフォローで、ぜひ応援よろしくお願いします!
励みになります!
また、X(旧Twitter)でAIについての雑談を不定期に行っておりますのでフォローをお願いいたします。