プロンプトとは、推論時にモデルへ渡される指示とコンテキストのことです。大規模モデルは文脈内学習を行うため(Brown ら、2020)、多くのユーザーにとって、モデルの振る舞いを方向づける主な手段は再学習ではなくプロンプトです。プロンプト手法の体系的な研究については、Liu ら(2023)のサーベイにまとめられています。
効果的なプロンプトは、タスクを明確に示し、関連するコンテキストや例を提供し、求める形式を指定します。言い回しを少し変えるだけで結果が大きく変わることもあります。だからこそ、プロンプトエンジニアリングが必要なのです。
プロンプトエンジニアリングとは?
プロンプトエンジニアリングとは、試行錯誤に頼るのではなく、意図をもってプロンプトを書き、テストし、改善を重ねるスキルです。モデルを変えるのではなく、入力を変えます。タスクを明示し、モデルに必要な背景情報を与え、良い回答の例を示し、結果をどのような構成にすべきかを伝えるのです。
これは API を使って開発する開発者だけでなく、日常のチャットにも当てはまります。アプリケーション開発では、モデルの役割やルールを設定するシステムプロンプトや、プロンプトインジェクションへの対策もプロンプトエンジニアリングに含まれます。OpenAI、Anthropic、Google は、それぞれ自社モデル向けのプロンプトガイドを公開しています(下記の参考文献を参照)。
効果的なプロンプトエンジニアリングのテクニック
同じ依頼を、あいまいに書いた場合と、各テクニックを適用した場合で比べてみましょう。
| テクニック | あいまいなプロンプト | 改善したプロンプト |
|---|---|---|
| 具体的に書く | 「これを要約して。」 | 「多忙な CFO 向けに、このレポートをコストに焦点を当てて5つの箇条書きで要約してください。」 |
| コンテキストを与える | 「このメールに返信して。」 | 「この会議の誘いを丁寧にお断りし、代わりに火曜日の午後を提案してください。メールは以下のとおりです:…」 |
| 例を示す | 「これらのレビューを分類して。」 | 「各レビューに「ポジティブ」「ネガティブ」「混在」のいずれかのラベルを付けてください。例:『配送は早いが、ふたが壊れていた』→ 混在。」 |
| 推論を求める | 「答えは?」 | 「ステップごとに順を追って考え、最後に最終的な答えだけを1行で示してください。」 |
| 形式を指定する | 「これらのプランを比較して。」 | 「3つのプランを、料金・上限・おすすめの用途で表にまとめて比較してください。」 |
解答例を加えることをFew-shot プロンプティングと呼びます。単純なタスクなら、明確な指示だけ(Zero-shot)で十分なことも少なくありません。ステップごとの推論を求める(Chain of Thought)と、複数ステップの計算や論理問題で効果が出やすくなります。どの手法を試すにしても、結果を確認し、うまくいかなかった点をもとにプロンプトを改善していきましょう。
MultipleChat でのプロンプトエンジニアリング
MultipleChat の Prompt Optimizer は、送信前に大まかなプロンプトを改善します。同じプロンプトを ChatGPT、Claude、Gemini、Grok、Perplexity で並べて実行できるので、言い回しを変えたときに各モデルの回答がどう変わるかも確認できます。