![Editor profile](/_next/image?url=https%3A%2F%2Fres.cloudinary.com%2Fdqg1kabie%2Fimage%2Fupload%2Fv1693592191%2Findex%2Fprofile_xflqkd.jpg&w=640&q=75)
プロンプトエンジニアリングとは?
生成AIを使いこなすためプロンプトエンジニアリングが注目されています。プロンプトエンジニアリングとは?という切り口から詳しく解説します。
AIに効率的に指示を出す技術
プロンプトエンジニアリングとは、生成AIを効果的に使用するためプロンプトを開発する技術です。日本ではプロンプト工学という使われ方もします。
近年、生成AIの台頭によりプロンプトエンジニアという新しい職種も注目されるようになりました。アメリカでは年収4,000万円のオファーも..(実際はプロンプトスキルの他にAIに対する幅広い知識が必要なオファーだった)
プロンプトって...ただテキストを書くだけじゃないの?
生成AIを初めて触った時はプロンプトエンジニアリングなんて大袈裟な..と思っていました。会話するようにテキストを書けば、あとはAIがうまく処理してくれるだろうと。
しかし、複雑な指示や正確性が求められるケースではプロンプトがとても重要になってくるんですね。
情報を収集するだけのプロンプトであれば「⚪︎を教えて」と指示すれば事足ります。
しかし、人間の作業をAIに移管するようなプロンプトだと話しが変わってきます。
例えば、Eコマース担当者のタスクに商品のレビュー分析をする作業があったとします。
![EC review task](/_next/image?url=https%3A%2F%2Fres.cloudinary.com%2Fdqg1kabie%2Fimage%2Fupload%2Fv1693558729%2Fpost%2Fabout-prompt-engineering%2Fec-review_wxbjg7.jpg&w=1200&q=75)
これをAIに任せるにはどのようなプロンプトを書けばよいでしょうか?
- レビューを年齢、性別ごとに読み込ませる
- 文字数の多いレビューは要約する
- レビューから感情分析し、positive / negativeのラベル付けをする
- 結果はJSON形式で出力
AIに上記のタスクを任せる場合、どのようなプロンプトで指示を出しますか?
この時に考えているのが、まさにプロンプトエンジニアリングというわけです。
プロンプトエンジニアリングはプログラミングに似ている
「ある目的をもって機械に処理を実行させる」
プログラミングの経験がある人ならピンときたかもしれません。
プロンプトを考える作業は、コードを書いている感覚に近いものがあります。
![programming](/_next/image?url=https%3A%2F%2Fres.cloudinary.com%2Fdqg1kabie%2Fimage%2Fupload%2Fv1693552161%2Fpost%2Fabout-prompt-engineering%2Fprogramming_arrfkl.jpg&w=1200&q=75)
プロンプトを書いてテストを繰り返し、目的を達成するために修正していく。
プログラミングは厳格に決められた規則の中で動作するものですが、プロンプトは自然言語で動作するプログラムと言い換えてもよいかもしれません。
もっともプログラミングとは違い、エラーを吐き出すことはありませんが。プロンプトを書いているとコードを書いているような不思議な感覚に陥ります。
開発サイクルもプログラミングに似ている
専門家でも1発で動作するプロンプトを書くのは稀です。(簡単なプロンプトは除く)
プロンプトを書く→実行して検証→修正する
このサイクルを繰り返してプロンプトを洗練させます。トライ&エラーを繰り返す手法もプログラミングに似ていますね。
プロンプトエンジニアリングの手法
プロンプトエンジニアリングと言うと非常に難しいように感じますが、基本的に抑えるべき原則はシンプルです。
- AIへの指示は明確に
- AIへの指示はステップバイステップで
- AIに考える時間を与える
「AI」の部分を「人間」に読み替えても通ずるものがありますね。
その他にも様々な手法、アプローチがあります。プロンプトエンジニアリングの一例を紹介します。
Few shot prompt
事前にAIへ回答を提示し学習させる手法です。ここでいう「shot」は例示を意味します。
![few shot prompt](/_next/image?url=https%3A%2F%2Fres.cloudinary.com%2Fdqg1kabie%2Fimage%2Fupload%2Fv1693552162%2Fpost%2Fabout-prompt-engineering%2Ffewshot_pjphol.jpg&w=1200&q=75)
AIが提示された回答から推論し処理を実行しています。
例示が複数の場合はFew shot prompt、例示が1つの場合はOne shot promptと呼ばれます。例示なしはZero shot promptと言います。
例えばOne shot promptは出力は一言一句、この並びで出力してほしい場面で活躍します。
Chain of Thought
直訳すると「思考の連鎖」 問題を解くまでの過程をプロンプトに含める手法です。
![Chain of Thought](/_next/image?url=https%3A%2F%2Fres.cloudinary.com%2Fdqg1kabie%2Fimage%2Fupload%2Fv1693552160%2Fpost%2Fabout-prompt-engineering%2Fcot_lxxxuo.jpg&w=1200&q=75)
Chain of ThoughtはFew shot promptと組み合わせて使います。
Googleの公式ブログではChain of Thoughtを使うと性能が向上することが報告されています。
ここで紹介したものは一例に過ぎず、多くのプロンプトテクニックが生み出されています。
プロンプトエンジニアリングを学べるリソース
XではAIの最新ニュースやプロンプト、活用アイデアを発信しています。フォローよろしくお願いします!(@robothink_jp)
無料で学べるAIスキル、ロボシンク
ロボシンクは4,000名超が学ぶAI学習サービス。無料のコースで生成AIを学べます。AIの学習を開始しましょう🚀