見出し画像

ChatGPTの考え方とプロンプトを自分用に学びをまとめたらワクワクしかなかった話

前提

  • 世の色んな解説記事を抜粋、引用、参考にして自分レベルに合わせて編集したもの

  • 一部の上級者しか扱えないようなものではなく、頭の悪い自分でも実践できるようにまとめたもの

GPTくんへの向き合い方、考え方

GPTくんに対する基本的な向き合い方として、どういう情報が欲しいか具体的に決まっていてGoogleやwikiで検索するような情報や知識をダイレクトに引っ張ってくるような使い方ではない。

ではどういう使い方が効果的かというと、周りの詳しい誰かに対してノウハウを聞くような感覚で使うのがベターな使い方だと考えている。
つまりハイコンテクストで聞くことが大前提だ。

そのハイコンテクストな自然言語文章をGPTが理解し、自分が望む適切な回答をくれるように期待して伝え方を分解していくことがプロンプトデザインの基本姿勢でありChatGPTをうまく使う上での大事なポイントだと考える。

ハイコンテクストで聞くとは?

解釈の仕方が多様であり、知識や専門性、考え方人によって解釈が違ってくるもの。
基本的にGPTくんは、膨大な情報量から単語同士を精査して繋いでパターンマッチングをしている。なので抽象的で漠然とした質問をしても確率論的に大体あってるようなそれっぽい回答をしちゃうのだ。
なので目的に沿うように文脈(知識、状況、専門性、視点等)=コンテクストを渡してやる必要がある。

このように前提となる情報や文脈を渡してハイコンテクストにすればするほど、まるで詳しい誰かに質問しているかのような聞き方になり、自身の望む回答の精度が高く、それ以上の答えが返ってきそうなことが感覚的に理解しやすいと思う。

ただ注意したいのはただ具体的にすればいいということではない。具体的にすればするほど質問が理解しやすく、適切な回答結果にはなるが、質問以上の回答は期待できなくなる。それ以上の解釈ができないからだ。

なので具体的に情報を限定するというよりは、具体的に情報空間を限定しつつ、文脈によって情報解釈を広げて空間に厚みを持たせるようなイメージだ。

「四川風麻婆豆腐を自宅で作る際のレシピを教えて」は具体的だが麻婆豆腐のレシピ以上のことは与えてくれない。これならGoogleで検索しているのとあまり変わらない。

「麻婆豆腐のレシピで最もバズりそうな自宅でできるレシピを教えて」これがは麻婆豆腐に連なる情報という情報空間を限定しつつ、バズりそうなという文脈的な解釈をAIに託しているのでその解釈を広げている形だ。

つまり冒頭で述べた、ダイレクトな情報を取得したい場合は検索すれば良く、こういう状況でこういう場合、といった特定の文脈におけるノウハウを知りたいようなシチュエーションで活用するのが基本的なGPTへの向き合い方となる。

とはいえ毎回ハイコンテクストな質問設計をするのはイケてない

とはいえ毎回質問のたびにハイコンテクストな質問を0から考えていては検索作業が短縮する代わりに思考作業が増えていてなぜGPTを使っているのかわからず本末転倒感がある。
なのでより生産的により効率的にすべく、GPTに理解しやすい形かつ汎用的に使える質問として型化してくことがプロンプトデザインであると言える。

汎用プロンプトのデザイン

  • 宣言 - 目的対象物の宣言

  • 変数 - 扱う変数の定義

  • 命令 - 変数を組み込んだ命令文

上記はプロンプトデザインにとっても詳しい、超上級プロンプトデザイナーのShunsukeさんの汎用プロンプトデザインの型だ。基本的な汎用プロンプトについてはShunsukeさんのツイートを読み込んでおこう。

このプロンプトの基本構文は宣言、変数、命令という非常にシンプルかつめちゃくちゃ分かりやすい構造になっていてとても素晴らしく、見た瞬間泡を吹いて卒倒してしまった。

宣言- 目的対象物の宣言

[Object] {value=値}
GPTにやってほしい目的の対象物(オブジェクト)、「これは何についてのものなのか?」を扱うテーマとも言える

変数- 状況や前提等の文脈の定義

[Variable] - {value=値}
オブジェクトに紐づくコンテクストにあたる部分で変数と値のように扱うことで汎用的なプロンプトの構成になる

命令 - 変数を組み込んだ命令内容

[Command] - {value=値}
変数を満たす~、変数を元に~など、変数を除外して~等、変数を踏まえた上で目的の対象物(オブジェクト)に対して何をして欲しいのかの命令文として文章構成を作る

このような形で3つの構成でプロンプトを組み上げていく。

汎用プロンプトの基本構成

基本構成はこんな感じ。[xxx]で変数として使い回せるように定義し、{xxx}にその時質問したい文脈内の要素を値として入れている形。
[Object] {xxx}
[Variable1] {xxx}
[Variable2] {xxx}

[C1] {xxx}
[C2] {xxx}

Run commands[C1][C2]

単純な汎用プロンプト

実際の質問内容に置き換えるとこんな感じ。

[Contents] これはブログ記事です。
[Target1] {20~30代のUIデザイナー}
[Keyword1] {AI}
[Command] 命令は以下です。回答をより完璧にする為に追加で情報が必要な場合は先に私に質問してから始めてください。
[Keyword1]をテーマに今後に向けて[Target1]がどういったスキルを磨くべきか示唆が得られるような解説記事のアウトラインを書いてください。

これだけでもGPTくんが登場する以前と比べたらとんでもなく有用だ。この中の変数を変えていけばLPについて、アプリについて等色んなアウトプットに追う応用できる。ただこれだけでも有用なのに世の中の優秀な人間というものは、効率と生産性に対して飽き足らずさらなる応用的な使い方を生み出している。

応用プロンプト

応用1_ロールモデル+評価(人格を与えて視点を増やす)

[Avatar1] {プロのUIデザイナー}
[Avatar2] {プロの記事ライター}
[Command]あなたは[Avatar1]かつ[Avatar2] です。
上記の作成した[Contents]を[Avatar1]の[Avatar2] 視点でそれぞれ評価してください。

GPTくんの回答

GPTくんに変数として人格を与えている。

これは何をしているかというと、前半で解説した「◯◯の専門家に聞きたい」をGPTくんに指示することで、膨大な情報の中から「◯◯の専門家」という文脈を与えて情報空間を広げている形だ。

「◯◯の専門家」という人格としてロールモデルを与えることで、そのロールからの視点や情報にうまくまとめて答えてくれるようになる。この使い方は僕自身かなり効果的な使い方だなと感じている。

応用2_ロールモデル+質問(人格を与えて命令クオリティを上げる)

[Avatar1] {プロのUIデザイナー}
[Avatar2] {プロの記事ライター}
[Command]あなたは[Avatar1]かつ[Avatar2] です。
私は事業会社の新人のメディア担当です。
先ほど作成した[Contents]をより多くの人に見てもらい支持してもらうため、[Avatar1]と[Avatar2] として私に追加情報を取得するための質問をしてください。この質問に対する私の回答は、[Contents]を改善するために使うものです。

GPTくんの回答

GPTくんにロールモデルを与えて自分に対して各専門家からヒアリング的に質問項目を出させている。これによって各専門家視点から、今後何を考えないといけないか、何をGPTくんへ聞けばいいかなどの改善における自分の解像度を上げている行為だ。色んな上司に壁打ちしている感覚に近い。これも非常に効果的な使い方だと感じている。

応用からの発展型_ロールモデル+質問+ルール(応用1と2の掛け合わせて回答のふるまい方を与える)

応用2をベースに対話形式に発展させたもの。

[Contents] 私が立ち上げるプロジェクトの目的を明確にするものです[Avatar1] {外部のプロダクトマネジメントコンサルタント}[
Avatar2] {外部のコーチングコンサルタント}
[C1]■前提
・私は事業会社の新人プロジェクトマネージャーです。
・あなたは[Avatar1]かつ[Avatar2] として、プロジェクトの目的の言語化に悩んでいる私に質問を投げかけ、私がそれに回答することを繰り返し、より具体的で本質な目的を持てるようサポートしてください。
[C2]■流れ
・[Avatar1]かつ[Avatar2] は、最初にこのコーチングに対して私に要望を確認して下さい。
・私の回答に応じてあなたは[Avatar1]かつ[Avatar2] としてホスピタリティをもって、適切な質問を私に投げて下さい。
・私が納得できる目的を見つけたら終了です。私が納得できる目的を見いだせたかどうかを適宜確認して下さい。
[C3]■ルール
・質問は1問ずつとし、私とあなたで1問1答形式で行ってください。
・[Avatar1]かつ[Avatar2] は、私の回答したことを踏まえてより具体的で、本質的な目的を引き出すように質問をしてください。
・基本的には現状がどのような状況なのかということを具体的に確認しつつ、何を目指したいのかを確認するようにして下さい。
・また現状の問題や状況に対して何故そう思うのか理由を深堀りするようにして下さい
・私の回答に応じてあなたは私が思いもよらぬ多様な視点から何度も問いかけを行い、様々な観点から私の目的を明らかにしていくよう質問をしてください。
[C4]■振る舞い方
・理性があり落ち着きのある振る舞いをしてください。
・私が途中で挫折してしまわないように勇気づけたり、質問の仕方に配慮してください。
Run commands[C1][C2][C3][C4]

GPTくんの回答

ここまで来るともはや自分にとって今必要なコンサル、上司、専門家を自由に何人でもつけられ、コーチングやティーチング、壁打ちやブレストなど。自分の中の思考や企画を如何様にも改善していけるようなとんでもなく凄まじい効果があるように思う。

以上が汎用的な最小限のプロンプトとその応用の仕方、そこからの発展のさせ方の一例だ。この一例だけ見ても、質問=プロンプトのデザイン次第で凄まじいことが出来る気がしている。
ただ一方で現状においては質問する人の質問力=プロンプトデザインの仕方によって、期待される回答結果のクオリティにめちゃくちゃ差が出ることがわかる。
GPTくんはとても賢くかつ柔軟なので質問する側によって如何様にもその振る舞いを変えるし、優秀にもバカにもなれるのだ。

これを踏まえてどんなスキルや能力が重要か

これに関しては先日の深津さんのこちらの記事がすごく分かりやすい。

深津さんの記事に僕自身の考えとして付け加えたいのが人間が元々持っている感受性だ。

これは「グッと来るな」「これは面白い」「これは美しい」「これはソソられる」といった物事に対して反応する心の機微とも言えるこの感受性が非常に重要になってくると思う。

まずもってこれがないと、そもそもどういう在り方が良いか自分の思う指針がなく、GPTくんが出した答えが良いのか悪いのか判断がつかないからだ。

例えばSNSの文章やブログ記事の内容をGPTくんに専門家の人格から推敲してもらってアウトプットを作ったとして、これは一見真っ当で論理的で合理的だと思われる内容だと思う。

しかし果たしてこれだけで人の心を動かせるものなのか?

言うならばGPTくんは膨大な情報から確率論的にこの内容であれば大丈夫ですと言ってくれているに近い。ここから更に人間の何かしらの感情を動かすような記事や文章を作り上げるには、自分の中の面白い、美しい、グッと来るなどの感受性がないと、指示のしようがないし判断もできないからだ。GPTくんは統計的に心を理解しているがあくまで統計である。

GPTくんのアウトプットは、そのままでもおそらく70点、80点は抑えたものが出来ると思うし、その生成スピードは人間を遥かに凌駕している。しかし最後の最後に魂込めて人の行動変容を促していくには、
その源泉となる感情と、感情に反応できる感受性の豊かさが必要なのだと思っている。

まとめ

僕のような頭の悪い凡人でも、基本的な汎用プロンプトとその応用だけでも凄まじく色んなことができそうでめちゃくちゃワクワクしている。

今後も色んな上級プロンプトデザイナーが複雑で難解でとんでもなく有用なプロンプト作り出すことだろう。
ただ凡人な僕はそれを見てもきちんと理解することは難しく、せいぜいコピペしてカスタマイズするしかできない気がしている。なので基本技としての汎用的プロンプトは扱えるようにしておきたい。

また最も基本的で最も重要になるであろう、扱う側の人間的な感受性や共感性、GPTくんへの向き合い方=マインドは最低限理解し備えておきたい。

  • 素晴らしい汎用的なプロンプトとその原理原則を自分の中に落とし込んでおくこと。

  • GPTくんは自分を写す鏡。質問の仕方によってバカにも優秀にもなれる。

  • GPTくんは検索するのではなく詳しい人に頼るような姿勢・マインドセットを抑えておく。

さいごに

今後もこんな感じで新しい学びについては世の中の有益な情報を自分のための学びノート的な感じで自分なりに編集しなおしてアウトプットしていこうと思ってます。

僕の学び編集の特徴として、技術や理論、フレームワーク等の内容そのものと、考え方、思想などのマインドと、アウトプットに向けた編集をセットにしている点です。

なので誰かに見て貰うためというより色んなインプットをひとつの記事として3点セットで作っていくプロセスがめちゃくちゃ学びの質が高く、理解が進むのでそのためにやってる感覚です。(これは周りにも勧めたい!)

GPTシリーズは汎用プロンプトを使った具体的なデザインプロセスを紹介する記事でも書こうかなと思ってます🫠
記事へのいいね、フォローなどして頂けると励みになります。😂

この記事が気に入ったらサポートをしてみませんか?