プロンプトデザインまとめ。たまに見るといい。

GPTに聞いただけですが、無意識に下記のどれかを組み合わせていることを思い出させてくれます。
私は面倒くさがりなのでほとんどゼロショットでやってます。 しっかり質問する時は口頭でコンテキストを延々とダラダラ与えてお願いします。 繰り返し使うタイプのプロンプトのときにはしっかり構築するので、ワンショットかフューショットって感じです。
プロンプトデザインの技術を重要度の高い順に体系的に整理して紹介します。
1. インストラクションプロンプト(Instruction Prompting)
重要度: ★★★★★
概要: 具体的で明確な指示を提供し、モデルが正確に何をすべきかを明示します。
例: 「以下のテキストを英語から日本語に翻訳してください:'The weather is nice today.'」
理由: モデルがタスクを正確に理解しやすいため、基本的なプロンプト技術として非常に重要です。
2. ゼロショット(Zero-shot)
重要度: ★★★★☆
概要: 例を提供せずに直接的な指示のみでタスクを実行させる方法です。
例: 「映画『インセプション』のあらすじを教えてください。」
理由: モデルが特定のタスクについて事前に訓練されていなくても、直接指示で対応できるため、幅広い用途で便利です。
3. コンテキストプロンプト(Context Prompting)
重要度: ★★★★☆
概要: タスクの背景情報を提供してから質問や指示を与える方法です。
例: 「2020年のオリンピックは東京で開催されました。主要なイベントの1つについて教えてください。」
理由: 背景情報を提供することで、モデルがより関連性のある応答を生成できるため、精度が向上します。
4. サンプルプロンプト(Example Prompting) / フューショット(Few-shot)
重要度: ★★★★☆
概要: いくつかの例を提供してからタスクを実行させる方法です。モデルがタスクのパターンを理解しやすくなります。
例: 「以下のように文章を要約してください: • 原文: '太郎は毎朝6時に起きて、ジョギングをします。' • 要約: '太郎は毎朝ジョギングをします。'
次の文章を要約してください:'花子は毎日学校に行き、勉強をします。'」
理由: 具体的な例を提供することで、モデルが求められる応答の形式や内容を理解しやすくなります。
5. チェーンプロンプト(Chain Prompting)
重要度: ★★★☆☆
概要: 複数のプロンプトを順番に使用して、段階的に複雑なタスクを解決する方法です。
例:
- 「会社の主要なサービスを教えてください。」
- 「そのサービスに関連する主要な顧客層を教えてください。」
- 「その顧客層が抱える主な課題は何ですか?」
理由: 複雑なタスクを段階的に解決できるため、詳細な情報を引き出す際に有効です。
6. ワンショット(One-shot)
重要度: ★★★☆☆
概要: タスクに対して1つの例を提供してから実行させる方法です。
例: 「以下のようにテキストを要約してください: • テキスト: '今日は天気が良いです。私は公園に行きました。' • 要約: '天気が良いので公園に行きました。'
次のテキストを要約してください:'明日は雪が降る予報です。私はスキーに行きます。'」
理由: 一例を基にしてモデルがタスクを理解しやすくなるため、ゼロショットよりも精度が高くなります。
7. リフレームプロンプト(Reframing Prompting)
重要度: ★★☆☆☆
概要: 与えられた情報を異なる視点から見直すことを促すプロンプトです。
例: 「新しいテクノロジーが導入されたことについて、エンジニアと顧客の両方の視点から説明してください。」
理由: 多角的な視点を提供することが期待されるため、複雑な問題を深く理解する際に有効です。
8. エキスパートプロンプト(Expert Prompting)
重要度: ★★☆☆☆
概要: 特定の専門分野に関する質問や指示を与えるプロンプトです。
例: 「人工知能の最新のトレンドについて説明してください。」
理由: 専門的な知識や情報を引き出すために使用されますが、汎用性は低めです。
まとめ
- インストラクションプロンプト: 具体的な指示を提供する。
- ゼロショット: 例を提供せずに直接指示。
- コンテキストプロンプト: 背景情報を提供してから質問や指示。
- サンプルプロンプト / フューショット: いくつかの例を提供。
- チェーンプロンプト: 複数のプロンプトを順番に使用。
- ワンショット: 1つの例を提供。
- リフレームプロンプト: 異なる視点から見直す。
- エキスパートプロンプト: 専門分野に関する質問や指示。
これらの技術を理解し、適切に使用することで、より効果的なプロンプトデザインが可能になります。
次の文章を要約してください:'花子は毎日学校に行き、勉強をします。'
**理由**: 具体的な例を提供することで、モデルが求められる応答の形式や内容を理解しやすくなります。
### 5️⃣ チェーンプロンプト(Chain Prompting)
**重要度**: ★★★☆☆
**概要**: 複数のプロンプトを順番に使用して、段階的に複雑なタスクを解決する方法です。
**例**:
1. 「会社の主要なサービスを教えてください。」
2. 「そのサービスに関連する主要な顧客層を教えてください。」
3. 「その顧客層が抱える主な課題は何ですか?」
**理由**: 複雑なタスクを段階的に解決できるため、詳細な情報を引き出す際に有効です。
### 6️⃣ ワンショット(One-shot)
**重要度**: ★★★☆☆
**概要**: タスクに対して1つの例を提供してから実行させる方法です。
**例**:
以下のようにテキストを要約してください: • テキスト: '今日は天気が良いです。私は公園に行きました。' • 要約: '公園に行きました。'
次のテキストを要約してください:'明日は雨が降る予定です。傘を持参します。'
**理由**: 1つの例で十分にタスクのパターンを理解できる場合に効率的です。
## 🎨 個人的な使い分け
- **🎯 ゼロショット**: 普段の質問や簡単なタスクで多用
- **📝 コンテキストプロンプト**: しっかり質問したい時に口頭で背景情報をダラダラ説明
- **🔄 ワンショット・フューショット**: 繰り返し使うプロンプトをしっかり構築する時
## 💡 まとめ
これらの技術を意識せずに組み合わせていることが多いですが、体系的に整理することで、より効果的なプロンプトデザインができるようになります。特にインストラクションプロンプトとゼロショットは基本中の基本として押さえておきたいですね。