目次
OpenAI公式プロンプトガイド6選を使い方を交えて詳しく解説
OpenAI社がChatGPTを使う上で重要な公式プロンプトガイド「より良い結果を得るための6つの戦略」を公開しました。
下記がその6つの戦略になります。
- 明確な指示を書く
- 言語モデルの限界を理解する
- 複雑なタスクをシンプルなサブタスクに分割する
- モデルに「考える」時間を与える
- 外部ツールを使用する
- 変更を体系的にテストする
この6つの戦略についてよりわかりやすく、どういった使い方をすればいいのか?という疑問も解決できるように実用可能な例文も交えて紹介していきます。
1. 明確な指示を書く
モデルが推測する必要が少なければ少ないほど、望んだ返答を出力することができるようになる。
戦術
1. より関連性の高い回答を得るために、クエリに詳細を含める
悪い例1:「エッセイの構成について教えてください。」
良い例1:「〇〇エッセイの構成について、導入、3つの主なポイント、結論を含む形式で教えてください。」
悪い例2:「旅行のアドバイスをください。」
良い例2:「2泊3日の家族旅行のためのアドバイスをください。予算は10万円以内で、国内のビーチリゾートを探しています。」
2. モデルにペルソナを採用するよう依頼する
例1:「エンジニアの視点でソフトウェア設計のベストプラクティスについて説明してください。」
例2:「初心者向けにプログラミングの基礎を説明してください。」
3. 区切り文字を使用して、入力の異なる部分を明確に示す
例1:「以下のセクションごとに回答を分けてください。1. 概要、2. 詳細、3. 結論」
例2:「以下の手順に従ってください。手順1:、手順2:、手順3:」
4. タスクを完了するために必要な手順を指定する
例1:「以下の手順に従ってください。1. データを収集する、2. データを分析する、3. 結果を報告する」
例2:「1. 問題を明確にする、2. 解決策を提案する、3. 結論を述べる という順番で説明してください。」
5. 例を挙げる
例:「以下の形式で回答してください。例:1. …、2. …、3. …」
6. 出力の希望の長さを指定する
「夏に関するキャッチコピーについて簡潔な返信を求めています。30文字以内でお願いします。」
「〇〇というシステムの構造について詳細な説明をお願いします。500文字以上で回答してください。」
7. 参照テキストを提供する
例:「以下の文章を参考にして回答してください:『データサイエンスの基礎』第3章」
2. 言語モデルの限界を理解する
より正確な情報源を提示することでモデルの回答の精度を高めることができます。
戦術
1. 参照テキストを使用してモデルに回答するよう指示する
例1:「次のテキストを参考にして、回答を作成してください:『Pythonプログラミング入門』第5章」
例2:「この論文を読んで、要約を作成してください。」
2. モデルに参考文献からの引用で回答するよう指示する
例1:「次の資料からの引用を使用して、説明してください:『マーケティング戦略』第2章」
例2:「この本の第3章を引用して、結論をまとめてください。」
3. 複雑なタスクをシンプルなサブタスクに分割する
複雑なタスクを小さいタスクに分けて指示することで、より正確な結果を得ることができます。
戦術
1. 意図分類を使用して、ユーザークエリに最も関連性の高い指示を特定する
例:「1. 〇〇についての説明、2. メリット、3. デメリットを説明してください。」
2. 非常に長い会話を必要とする対話アプリケーションの場合、以前の対話を要約またはフィルタリングする
例1:「過去の対話を要約して、重要なポイントを抽出してください。」
例2:「長い会話の要点を3つに絞ってください。」
3. 長い文書を部分的に要約し、再帰的に完全な要約を構築する
例:「この3段落を要約してください。その後に、続く3段落を要約してください。」
4. モデルに「考える」時間を与える
モデルに段階的な回答を求めることで、より正確な結果を得られることができます。
戦術
1. 結論を急ぐ前に、モデルに独自の解決策を導き出すよう指示する
例1:「この問題を分析して、その後に解決策を提案してください。」
例2:「複数の解決策を比較して、最適なものを選んでください。」
2. モデルの推論プロセスを隠すために、内なる独白や一連のクエリを使用する
例1:「この問題についての考えを述べてください。その後、最適な解決策を提案してください。」
例2:「問題を分解して、それぞれの部分についての考えを述べてください。」
3. 前回のパスで何か見逃したかどうかをモデルに尋ねる
例:「以前の回答を再評価して、追加できるポイントがあれば教えてください。」
外部ツールを使用する
テキスト検索システムやコード実行エンジンを使用して、より正確な回答を得ることができます。
戦術
1. 埋め込みベースの検索を使用して効率的な知識検索を実装する
例1:「埋め込みベースの検索ツールを使用して、関連ドキュメントを見つけてください。」
例2:「特定のトピックに関連する情報を埋め込みベースの検索システムで検索してください。」
2. コード実行を使用して、より正確な計算を実行したり、外部APIを呼び出したりします。
例1:「以下のPythonコードを実行して、結果を教えてください。」
例2:「指定したAPIを呼び出して、結果を取得してください。」
3. モデルに特定の機能へのアクセス権を与える
例1:「ファイルシステムへのアクセスを許可して、ファイルを読み込み、内容を分析してください。」
例2:「以下の外部データベースにアクセスして、必要なデータを取得してください。」
変更を体系的にテストする
プロンプトの変更で実際にパフォーマンスが向上するか評価します。
戦術
1. ゴールドスタンダードの回答を参照してモデル出力を評価する
例1:「以下の標準的な回答と比較して、モデルの出力を評価してください。」
例2:「複数の例を使用して、モデルの出力を標準的な回答と照らし合わせて評価してください。」
2. 戦略上の変更が実際にパフォーマンスを向上させることを確認するためのテストスイートを構築する
例1:「変更前後のプロンプトで生成された出力を比較して、パフォーマンスの違いを測定してください。」
例2:「以下の5つのケースを含むテストスイートを使用して、モデルのパフォーマンスを体系的に評価してください。」
まとめ
ChatGPTは抽象的な質問をあまり得意としておらず、ユーザーの要求近い回答を出力することができない場合があります。それを補うために上記の戦略や具体的な要求をすることを意識してみましょう。
