プロンプトを理解する
プロンプトの要素
- 指示
- コンテキスト:モデルが指針として使用する外部情報
- 入力データ
- 出力インジケーター
ネガティブプロンプト
出力してほしくない情報を指定した方が、望ましい応答をすぐに返すようモデルをコントロールできる場合があります。言語モデルが生成するべきでない、誤った、または望ましくない出力の例です。
推論パラメータ(=機械学習モデルがテキストや画像を生成する際に、その振る舞いを制御する設定値)
- ランダム性と多様性
- 温度 : 出力のランダム性と創造性をコントロール。温度を高くするほど多様で予測不可能になる。
- トップP: 生成するテキストの候補となる単語の範囲を制限
- トップK: 単語の確率パーセンテージに関係なく、対象の単語を最も可能性の高い上位K個に制限します
- 長さ
- 最大長
- ストップシーケンス (出力をそれ以上生成しないようにモデルに指示する特別なトークン)
プロンプトのベストプラクティス
- 明確かつ簡潔にする
- 必要に応じてコンテキストを含める
- 適切な応答タイプの指示を活用する
- プロンプトsで出力について考慮する
- プロンプトを質問で始める
- 応答の例を指示する
- 複雑なタスクを分割する
- 試行錯誤して創造力を発揮する
- プロンプトのテンプレートを使用する
プロンプトエンジニアリング手法
ゼロショットプロンプティング
生成モデルに対してタスクの例示や明確なトレーニングを行わずに、特定のタスクを指示する手法です。これは、モデルが事前に同様のタスク (ショット) を行ったことがなくてもタスクを理解して実行できる機能を信頼するアプローチです。
フューショットプロンプティング(コンテキスト内学習)
文脈に応じた例を言語モデルに提供することでタスクへの理解を促し、期待される成果を導く手法です。
思考の連鎖プロンプティング
複雑な推論タスクを途中段階のより小さな手順に分割する手法です。
プロンプトの悪用とリスク
ポイズニング、ハイジャック、プロンプトインジェクション
ポイズニングとは、悪意のあるデータや偏ったデータをモデルのトレーニングデータセットに意図的に導入することです。
ハイジャックとプロンプトインジェクションは、プロンプト自体に特定の命令を埋め込むことで、生成モデルの出力に影響を与える手法です。
エクスポージャー
エクスポージャーとは、トレーニング中または推論中の生成モデルに機微情報や機密情報を提供するリスクを指します。その結果、FM がトレーニングコーパスからこの機密データを不用意に公開してしまい、データ漏えいやプライバシー侵害につながる可能性があります。
プロンプトリーク
プロンプトリークとは、モデルで使用されたプロンプトまたは入力 (保護されたデータであるかどうかに関係なく) が意図せずに公開されたり、漏えいしたりすることです。
ジェイルブレイク
ジェイルブレイクとは、生成モデルや AI アシスタントに実装されている制約や安全対策を変更または回避して、不正なアクセス権や機能を入手する手法です。
参考文献
Essentials of Prompt Engineering