生成AI に、知りたいことを質問する、文章要約などのタスクを実行させるために、プロンプト(Prompt)と呼ばれる命令文を生成AIに入力します。
生成AIの使用目的によってプロンプトの形式と複雑さが異なります。
プロンプトエンジニアリング(Prompt Engineering)とは、「目的別に最適な命令文」を見つけるまたは設計するために研究です。生成AIからできるだけ望ましい回答が得られるために、その応答の形式と品質を制御する手法です。生成AIを生活や業務に取り入れる動きが加速化している中で、プロンプトエンジニアとそれが出来る人材の需要が拡大することが予想されています。
プロンプトの構造と形式を意識することで、苦なく効果的なプロンプトを書きやすくなります。以下は、プロンプトを構成する基本要素です。必ずしも全ての要素が必要ではなく、目命令だけの時もあれば、この中から複数組み合わせる時もあります。
- 命令 (instruction): 質問 or 特定のタスクに関する指示
- 文脈(context):望む返答に導くための背景情報や文脈情報
- 出力指示子 :出力の形式を指定する
- 入力データ:正確な応答を行うために必要なデータ、実行して欲しいことに関する入力データ
次に、効果的なプロンプト、つまり、期待する出力を生成AIから引き出すためのプロンプトを書く上での基本的なポイントを挙げておきます。
1.最初はシンプルに(慣れている方以外)
- 最適な応答を得るためには試行錯誤が必要
- まずシンプルなプロンプトから始め、より良い結果を求めて段階的に改善していく
2.要求を明確で具体的に記述する
- 望む回答の形式や情報の範囲を限定する
- 曖昧な表現を使わずに、できれば定量的な表現を使う
(例)「以下の質問に答えてください」
△「以下の質問に短く答えてください」 ◎「以下の質問に30字以内で答えてください」
3.タスクから逸脱しないようにプロンプトを構造化する
4.複雑なタスクは幾つかのタスクに分割する
5. 事例を交えながら指示する(Few-shotプロンプティング)
(例) 白いシャツ/悪い 洗濯できない服/悪い ジャージ/良い
現在の大規模言語モデルはよく学習されて汎用性が高いので、命令だけ、つまりZero-shotだけでも良い出力が得られることも多いです。一方で、複雑なタスクを指示したい場合に、Zero-shotでは意図する応答をもらえないことがaあります。その時は複数の比較的高度なテクニックを組み合わせると、有効な出力が得られる確率が上がります。
以下にて代表的なプロンプトのテクニックを数個挙げておきます。
●Zero-shot prompting:回答例を一切含めず、命令(質問)だけのプロンプト
● Few-shot prompting:1つ以上の正解例を与えた上で命令する
● Chain-of-Thought (CoT) prompting:回答に至るまでの中間の思考プロセスを与える
● 知識生成prompting:プロンプトの一部に、知識や情報を組み込む
●方向性刺激prompting:正しい方向に誘導するためのヒントを与える
この中でよく使われるのは、「いくつかの正解例」を与えるFew-shotプロンプティングです(※ Few shot = いくつかの例)。これらの正解例で「文脈」をAIに伝え、文脈の中で追加学習させることで適切な結果を導き出す手法です。1つの例(one shot)だけで十分な時もあれば、難しい要求では例の数を増やすことでタスクを正確に実行できます。
もちろんfew-shot promptingにも限界があり、より複雑な推論タスクの実行やパーソナライズされたタスクには、 Chain-of-Thought(CoT)などのより高度なプロンプトが必要です。
下図に、few shot プロンプティングの例を示します。この図では7-shotプロンプトから学習し、「ステーキ」に対して「好き」という結論にたどり着いています。このようにプロンプトの例として、記号「/」や「//」などを使って「ポジティブorネガティブ」「良いor悪い」といった区別の手がかりとなる状態を入力します。
生成AIが日常に浸透してきている中で、プロンプト記法の基礎(用件を明確に伝える、命令と入力データを切り分けるなど)を身につけることを推奨します。一方で、今まで開発されてきた高度なプロンプトのテクニックを暗記する努力は不要です。なぜなら、それらの多くはGPTの進化によって不要になるからです。代わりに、自分自身にとって生活や仕事に使いやすい「プロンプトの定型」を何パターンか見つけ、それを常にアップデートし、業務にLLMをどう活用できるかについて考えることが重要です。
最後に、業務の中でプロンプトを実践する例を示したいと思います。
【例#1:文章の校正】
文章の校正は、誰かに「全て」を「満遍なく」読んでもらうことを必要とします。その辛い作業をChatGPTに任せられたら便利ですね。
(注意点)
- どこに着目して校正するのかを明確に指定すること(表現が自然かどうか、誤字脱字、漢字・送り仮名の間違いなど)
- 口調を指定しないと、文末は「です・ます」に全て直されてしまうことがある
- GPT-4はGPT-3.5より日本語がずっと上手
###命令書
以下の文章をチェックし、間違いがあれば指摘してください。
###条件
・漢字の間違いを直してください。
・より自然な表現に変更できる場合も提案してください。
・不適切な句読点の使い方があれば直してください。
###入力
今日はおじかんを頂きありがとうございました。
表だいの件は週明けに上司に確認しご連絡します。
【実際の出力】
【例#2:ダミーデータの作成】
決定木など分析モデルを作るために、データには特徴量となりそうな列が必要です。予測の手がかりとなりそうな特徴量の列を何個か入れた上で、売り上げデータを10行作ってください。
【実際の出力】
この記事の内容から、皆さんがChatGPTを仕事や生活に活用するためのアイデアが得られ、ご自身のひらめきが促進されることを願っております。
ちなみに、生成AIは常に新しいデータで微小なアップデートが行われており、確率的な出力をしているため、同じプロンプトを入れても毎回同じ出力が得られるわけではありません。
【生成AIに関する記事を読みたい方はこちらから『ChatGPTビジネスレポート』に無料登録してください】
執筆担当者:ヤン ジャクリン