皆様、こんにちは。
4DLの荒巻智隼です。
生成AI(ChatGPT)まもなく広く話題になり始めて、一年半ほどになるのではないでしょうか。
その生成AIに入力する文をプロンプトと呼びます。ざっくりとしたイメージとしてはパソコンに指示する言葉がプログラミング言語と呼んでいるもののようなイメージです。
とはいえ上記比較は誤解を生みかねないので、この後の内容で違う点を把握しつつ、公式の勧めるプロンプトエンジニアリングについて前後編に分けてブログ記事にしようと思います。
・最後に
・プロンプトエンジニアリングとプログラミングの違い
まず、とても大枠の話として機械に指示をして、機械から出力する答えを意識するという目標はそれぞれ一緒です。
その要素の中で、それぞれが特にどこに注力しているのかというところでしょう。
プログラミングは主に変換・中間部分を作っていくものが多いです。最初の要件定義の中で、どんな入力・素材がある現場で、どんな結果が出るようにしたいのかというような整理をするかと思います。
一方でプロンプトエンジニアリングは入力のみに注力しています。それでは変換の部分を何が担っているのかというと、そこが生成AIとなります。
生成AIを作る過程でプログラミングも駆使されているでしょうし、決してそれがなくなるというつもりもありません。
そして今回パソコン語であるプログラミングではなく、人間語である自然言語で人間が操作できるという事で重宝したくなる技能となっています。
プロンプトエンジニアリングは、この後の話に出てこないように決まった文法というものや書き方の形式は存在しません(←ここ超大事)
・公式の勧めるとは
https://platform.openai.com/docs/guides/prompt-engineering
こちらのページからの引用です。
生成AIの話題の口火を切ったともいえるOpenAIが書いているドキュメントです。それはいいものでしょう。
とはいえ見ただけではなんのこっちゃです。とりあえずまずは試してみましょう!というのが大事。
また、この後の内容を考えるにあたって、ChatGPT(GPT-4)は、あなたの事を知らないけど、少し前までの世の中のたくさんの事を知っている、超有能な指示待ち人間、と頭の片隅において読んでいくとイメージがわきやすいです。
・質問に詳細な情報を加える
人同士の会話で想像してみると分かりやすいです。
例えば公式のページにある事例は
悪い例「大統領は誰ですか?」
良い例「2021時点のメキシコの大統領は誰ですか?またどれぐらいので頻度で選挙をしていますか?」
LINEで悪い例のような質問がきたらどう返事をしますか?
日本人の間でこの質問だったとしたら、日本に総理大臣がいても大統領はいないわけですから、答えようがなく推察するか、質問に質問に返す必要が出てきます。
ただし、この推察は人の間の会話であれば相手の事やこれまでの会話から出来る事もあるでしょう。しかし、最初は生成AIはあなたの事を知らないところから始まります。そのため、入力する質問に詳細な情報を加える必要があります。
例えば工務店の宣伝文句を考えてみたくて生成AIに案をさくっと出してもらったとしましょう。
数出したいときなんかもおすすめの使い方です。そこで詳細な内容の有無を試してみました。
この宣伝文句が有効かどうかはまた別の議論として、片方はシンプルに投げかけて、もう片方は事業対象とする地域と業務内容を前提に投げかけました。
がらっと出力される内容は変わりましたね。ビジネスにおいて前提条件は色々と出てくることは多々あって、それを形にするのに苦労する部分もあります。そういった時に出てきた前提条件を投げかけることで形にしてくれる支援をしてくれる良きパートナーです。
まずは量を出せるのでそこから焦点を当てていくという活用もよいでしょう。
・モデルに特定の役割を演じてもらう
これは対人のコミュニケーションとは異なる生成AIならではのコツです。
基本的に生成AIというのはある程度の人間の平均値的対応を行います。それが広くて薄いような当たりまえの内容しか返答してこないよねといわれるポイントだったりします。
なんでも知ってるとはいえ、なにを引き出せばいいのかは知らないわけです。そのためなんでも知っている中で、話す振る舞いや内容の焦点を定めていくために特定の役割を演じさせることで対話の相手としてもとても良いものがでてきます。
また、生成AIがいつでも対応してくれる仕事パートナーだとして。今この瞬間あなたが相談をしたい人物がいたとして、すぐに連絡をとってディスカッションが出来ますか?また、それは逆も然り。あなたはいつでも社内の人とディスカッションが出来る準備が整えられていますか。
心構えはともかくとして、実務上は打合せや今取り組まないといけない業務が存在する事があります。
そこでChatGPTの活用となります。先ほどは前提的に情報を付け加えるというものでしたが、今度は出力を意識しての役割をつけるものです。
ここでいう役割をおおよそ2つあります。
1つは定性的な部分。対話や壁打ちに際して、機械的な反応が相手ではなく求めるキャラクター性との対話でより生産性も高まっていきます。
2つ目は定量的な部分。どうしても定性的な部分では生成AIが学習した範囲でのキャラクターとしてしか答える事ができません。一個前の話との合わせ技とも言えますが、そのキャラクター性の所作を補完するために大事です。
まだ堅いかな?キャラクターとしては物足りなさを感じる部分ですが、まずは回答の仕方が大きく変わりましたね。
こういった形で回答相手の性質・役割を変えることで、良いパートナーとして活用できます。
・内容の異なる部分は明確に書き分ける
これは出力の仕方を、特に形式的に意識してプロンプトを書くというものです。
例えば、ここまでのお試しのキャプチャはヒトっぽい回答としてはおおよそいい感じにつらつらと話し言葉と想定すると、わかるよう内容です。
一方で業務的に使う場合にはタイトルや見出しのような切り分けがあるとより読みやすくなるようになります。
そこで指定が重要になります
元のやつもなかなかに悪くないですが、出力形式を指示することで業務的に活用しやすくなりましたね。
ここにhtmlのタグなども入れるようにするとコピペでつかいやすくなったりします。
・最後に
まずは3つ試してみました。どうでしたか?
実際にはそれぞれ単品で使っていくものではなく複合的に生かしていくとは思います。テクニックとしてというよりはコツとして意識しつつ、なんども打ち込みながら癖的に意識していきましょう!
ChatGPTこんな使い方ができる?という雑談やディスカッションなど、XのDMやメール・お問い合わせなどお気軽にご連絡ください!
X: https://twitter.com/tomo_4dl
mail: tomo@4dlt.com