ある企業がコードレビューアシスタントに Amazon Bedrock の基盤モデルを採用している。モデルに「セキュリティ観点でのコードレビュー専門家」として振る舞わせたい。最も効果的なプロンプトエンジニアリング手法はどれか。
- A. ファインチューニングを実施してセキュリティレビューの会話ペアを学習させる
- B. temperature を 0.9 に設定して多様なレビューコメントを生成させる
- C. システムプロンプトにロールと行動指針(「あなたはシニアセキュリティエンジニアです。コードを審査する際は必ず SQL インジェクション・認証バイパス・シークレット漏洩の 3 観点から分析してください」等)を詳細に定義する
- D. ユーザーターン(Human: の部分)に「セキュリティ専門家としてレビューしてください」と毎回追加する
解答と解説を見る
正解: C
システムプロンプトはモデルの動作基盤を定義するもので、ロール(役割)・タスクの制約・評価軸・出力フォーマットを事前に詳細に定義することで、すべての会話ターンにわたって一貫した専門家としての振る舞いを実現できる。具体的な評価軸(SQL インジェクション・認証バイパス・シークレット漏洩等)を列挙することで、モデルの注意を特定の観点に向けることができる。Dのユーザーターンへの追加も効果はあるが、毎回手動で追加する必要があり、システムプロンプトで一度設定するほうが運用として優れている。また会話の文脈によっては指示が薄れる場合がある。Bの temperature=0.9 はセキュリティレビューのように一貫性・再現性が求められるタスクでは高すぎる。多様性よりも正確性が重要。Aのファインチューニングはより根本的なカスタマイズだが、コストと工数が大きく、システムプロンプトで対応できる要件に対しては過剰。