はじめに
こんにちは!突然ですが、プロンプトってご存じですか?
私事ですが、はじめてプロンプトを作る機会に出会えたのでこれを機にプロンプトについてブログを書かせていただきます。どうぞ宜しくお願い致します。
プロンプトって何?
一般的な意味として、プロンプトとはユーザーに対して入力や操作を促す指示のことを指します。
今回の意味に置き換えると、AIシステムに指示や情報を与えるための入力文や質問のことを指します。AIに「~について調べてくれませんか」「こういう機能があるんですけど、どう思いますか」と聞くことがプロンプトです。
プロンプトを使うために
一方で、ただ質問文や依頼文を書いただけではAIは適切な答えを返してくれません。
AIがユーザの要求や問いに対して適切な答えを生成するためには、具体的なプロンプトを書くことが大切です。
例を挙げてみましょう。
以下は有名な「桃太郎」という昔話の文章の一部です
むかしむかし、あるところに、おじいさんとおばあさんが住んでいました。おじいさんは山へしばかりに、おばあさんは川へせんたくに行きました。
おばあさんが川で洗濯をしていると、ドンブラコ、ドンブラコと、大きな桃が流れてきました。
「おや、これは良いおみやげになるわ」
おばあさんは大きな桃をひろいあげて、家に持ち帰りました。
そして、おじいさんとおばあさんが桃を食べようと桃を切ってみると、なんと、中から元気の良い男の赤ちゃんが飛び出してきました。「これはきっと、神さまがくださったにちがいない」
子どものいなかったおじいさんとおばあさんは、大喜びです。
桃から生まれた男の子を、おじいさんとおばあさんは桃太郎と名付けました。
桃太郎はスクスク育って、やがて強い男の子になりました。
そしてある日、桃太郎が言いました。「ぼく、鬼ヶ島(おにがしま)へ行って、わるい鬼を退治します」
そして、おばあさんにきび団子を作ってもらうと、鬼ヶ島へ出かけました。
旅の途中で、イヌに出会いました。「桃太郎さん、どこへ行くのですか?」「鬼ヶ島へ、鬼退治に行くんだ」「それでは、お腰に付けたきび団子を1つ下さいな。おともしますよ」
イヌはきび団子をもらい、桃太郎のおともになりました。
そして、こんどはサルに出会いました。「桃太郎さん、どこへ行くのですか?」「鬼ヶ島へ、鬼退治に行くんだ」「それでは、お腰に付けたきび団子を1つ下さいな。おともしますよ」
いかがでしょうか?お話の内容に馴染みがある方も多いと思います。
では、この文章の登場人物が行った物事をAIに出力させてみましょう。
入力して・・・
![入力文1](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2024-06-12-prompt-engineering-stepup-002_1.png)
いざ出力!
![出力結果1](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2024-06-12-prompt-engineering-stepup-003_0.png)
うーん、時系列に出してくれていますが少し分かりにくいので、もうひと手間加えてみましょう。
少しプロンプト文を追加して出力します。
![出力結果2](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2024-06-12-prompt-engineering-stepup-004_0.png)
これだと誰が何をしたのか、とても見やすいですよね。
この2つの違いはStepを明文化しているか、していないかにあります。
プロンプトを詳しく見ていきましょう。
プロンプト内容
最初に出力した結果に対するプロンプトはたった一行に対して
![プロンプト文](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2024-06-12-prompt-engineering-stepup-005_0.png)
このようにステップに分けてプロンプトを作成しています。
AIも人間と同じで、手順を追って作業をするとよりわかりやすいものを作れるんですね。
前例は簡潔な分量でしたが、複雑なタスクや、論理的な思考を要するタスクの処理が増えれば増えるほど、Stepの明文化が重要になってきます。
因みに、最後に書いている「# 注意」の部分も意外と重要で、この記述がないと見にくい文章になりがちなんです…
↓記述がない場合
![マークダウン無しテンプレート](https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/%5Bdate%3Acustom%3AY%5D/%5Bdate%3Acustom%3Am%5D/%5Bdate%3Acustom%3Ad%5D/articleimages/2024-06-12-prompt-engineering-stepup-006.png)
大文字や太文字があった方が見やすい文章に見えますよね。
知識がない人でも理解できるように説明する形で、AIに指示を投げるときに細かい部分まで書いてあげるととても分かりやすい文章が出力できます。
さいごに
以上、はじめてプロンプトに触れてみた際の気づきを纏めてみました。
わからないことがとても多く、プロンプトに必要な知識は他にも沢山あるので、まだまだ奥が深いなと感じています。
相手が人であれAIであれ、日常的にわかりやすく伝えることを心掛けていきたいですね。