クラウドとAIを愛する関西SEの備忘録

クラウドからAIにシフトしているこの頃を備忘録として残しています。

「生成AIのプロンプトエンジニアリング」を読んで!

こんにちは。ずっきです。

週末にリフレッシュして、少しは人間らしい感性を取り戻した私です。

しかし、休みが明ければやはり私はAIモードに戻ります。(笑)

先週、鉄板の前でプロ(職人)の広島焼を食べてなのか、改めて自分のプロンプトエンジニアリングを見つめ直したくなりました。

そこで手に取ったのが、『生成AIのプロンプトエンジニアリング』という書籍。
普段、職場で後輩とあーだこーだ言いながらAIを使っている私ですが、改めて体系的に学んでみると、「知っていること」と「意外とできていなかったこと」が浮き彫りになりました。

今回は、この本で紹介されていた「プロンプトの5つの原則」と、私にとって最大の気づきだった「品質評価(ブラインドプロンプティング)」について、備忘録を兼ねてまとめます。

 

プロンプトエンジニアリング「5つの基本原則」

本書では、生成AIから良質な回答を引き出すために、以下の5つの要素が重要だと説かれています。

せっかくなので、前回のブログで感動した「広島焼」を題材に、具体例を挙げて解説してみます。

kairada0212.hateblo.jp

① プロンプトの方向性を示す(Direction)

AIに「誰として」「どう振る舞ってほしいか」という役割(ペルソナ)を与えます。


悪い例:
お好み焼きの作り方を教えて」
良い例(方向性あり):
「あなたは大阪・肥後橋にある広島焼の名店『ながい』の店長です。家庭のホットプレート(フライパン)でも再現できる、キャベツの甘みを最大限に引き出した広島焼の焼き方を教えてください」

結果:Gemini Pro3

② 出力形式を指定する(Format)

人間が使いやすい形(CSV、表、コードなど)で出力させます。
具体例:
「必要な材料と分量を、買い出しリストとして使えるようにMarkdownチェックボックス形式で出力してください」

結果:Gemini Pro3

③ 例を示す(Examples / Few-shot)

具体的な「入力」と「理想の出力」のペアを見せることで、AIの精度を一気に高めます。
具体例:
「以下の食材の下処理方法を回答してください。
例)キャベツ → 千切りにする(太すぎると火が通りにくい)
例)豚バラ肉 → 鉄板に広げてカリッと焼く
本番)中華麺 → ?」

結果:Gemini Pro3

④ タスクを分解する(Task Decomposition)

いきなり答えを出させず、思考のプロセスを踏ませます(Chain of Thought)。


具体例:「いきなり完成形を教えるのではなく、『生地を敷く工程』『具材を重ねる工程』『ひっくり返す工程』の3ステップに分けて、それぞれのコツを解説してください」

結果:Gemini Pro3

⑤ 品質の評価をする(Quality Evaluation)

出力された回答が適切かどうかをテストし、評価するプロセスです。
……さて、これは、今まで読んだ本にはない基礎プロンプトです。
「品質評価……? やって自分の頭では?」と。

正直に言うと、①〜④の「方向性」「形式」「例示」「分解」については、業務上のやり取りや、これまでの経験則で「そりゃそうだよね」と理解していました。これらは、いわば「美味しい料理を作るためのレシピ」です。
しかし、5つ目の「品質評価」については、完全にアレでした。
これまでの私は、良さそうなプロンプトを書いて、それっぽい回答が返ってきたら「よし、OK!」と満足して工程を進めていました。

つまり、「料理を作って出しっぱなしで、味見をしていない」(マジか!)状態だったのです。

「ブラインドプロンプティング」という気付き

本書では、この品質評価の手法の一つとして「ブラインドプロンプティング(Blind Prompting)」が紹介されていました。


名前だけ聞くと難しそうですが、要するにこういうことです。
ブラインドプロンプティングとは:
作成したプロンプトに対して、テストデータを使って指示と応答確認を繰り返し、「本当にその成果物で大丈夫か?」をテストと改善を繰り返すこと。

例えば、「広島焼の焼き方」を教えるプロンプトを作ったとします。
ここで満足するのではなく、あえて「麺をパリパリにしたい場合は?」「キャベツが焦げやすい場合は?」といった様々な入力(テストケース)を投げかけ、プロンプトが正しく機能するかを検証する。そして、ダメならプロンプトで修正指示する。
この「作って終わりではなく、叩いて成果物を鍛える」プロセスこそが、エンジニアリングの本質だったのです。

前回の「ながい」の店長もそうでした。
私が「麺はパリパリが好き」と言えば、「じゃあ長めに焼きましょうか」と即座に対応(調整)してくれました。あれは、長年の経験による「焼き方を客の好みに合わせて修正」が頭の中に完成されているからこそできる神対応なんだと。

具体例:「麺をパリパリにしたい場合は?」「キャベツが焦げやすい場合は?」

結果:Gemini Pro3 

※店長は、コツ3で対応してました。が、せんべいを作る(笑)

 

結果:Gemini Pro3 

※店長は、コツ③フタを使っていました。

 

具体例:ながい焼にはオオバとからしが必要です。買い出しリストを見直してください。 

 

食べたときに感じた和(あっさり感)は確かに和からしだと思います。

オオバ 分量2~3枚であっていると思います。

まとめ:プロンプトは「対話」の積み重ね

今回の読書を通じて、私はプロンプトエンジニアリングを「指示(コンテキスト)で正しい成果物を一回で近づける技術」に意識が行き過ぎていたことに気づきました。

実際はもっと寄り添うような。ジャブ打つような。
「指示を出す → 結果を見る → 評価する → 指示を直す→ 評価する → 指示を直す」
という、地道なAIとの対話(殴り合い)の繰り返しこそが、最強のAIアシスタントを作る近道なのだと思います。
これからは、業務でAIを使う時も、週末に家で広島焼を焼く時も、「今の出力(焼き加減)、本当にこれでキャベツは蒸れてるか?」と確認(評価)するフェーズを大切にしていきたいです!広島焼はキャベツの蒸れ確認が本当に重要!

さて、今夜も後輩に負けないよう、夜更かしするか!!

Let’s stadying on book ! Yes, All Night AI!