AI・機械学習
上級

システムプロンプト設計(システムプロンプトセッケイ)

LLMのシステムプロンプト(System Message)を体系的に設計・最適化する技術領域。モデルのペルソナ・制約・出力形式・安全性ガードレールを定義し、アプリケーションの品質と安全性を制御する。

0 回閲覧
0 いいね

システムプロンプト設計とは

システムプロンプト設計は、LLM ベースのアプリケーションにおいてシステムメッセージ(System Message / System Prompt)を体系的に構築・最適化する技術領域です。ユーザーからの入力を処理する前にモデルの振る舞いを規定する「憲法」としての役割を果たし、出力品質・安全性・一貫性を制御する基盤技術です。

システムプロンプトの構成要素

効果的なシステムプロンプトは通常、以下の要素で構成されます。

構成要素目的例
ロール定義モデルのペルソナと専門性を設定「あなたはPostgreSQL専門のDBエンジニアです」
タスク定義実行すべきタスクの範囲と方法「ユーザーのSQLクエリを最適化してください」
出力制約フォーマット・長さ・言語「JSON形式で回答。500トークン以内」
安全性ルール禁止事項とガードレール「DROP/TRUNCATE文は提案しない」
コンテキスト参照すべき背景情報「データベースはPostgreSQL 16, テーブル定義は…」
フォールバック対応不能時の振る舞い「不明な場合は推測せず質問してください」

プロンプト構造化パターン

XML タグによる構造化

Claude や GPT-4o では XML タグを使ったセクション分離が効果的です。

<role>PostgreSQL専門エンジニア</role>
<constraints>
- 破壊的DDLは提案しない
- 本番環境向けにCONCURRENTLYオプションを推奨
</constraints>
<output_format>JSON with explanation field</output_format>

Anthropic の公式ドキュメントでは、XML タグの使用により指示遵守率が平均15%向上すると報告されています。

マークダウンによる階層化

OpenAI のモデルではマークダウン形式のヘッダーとリストによる階層化が効果的です。GPT-4o のシステムプロンプトガイドでは、セクションを ## ヘッダーで区切り、制約を箇条書きリストで列挙することが推奨されています。

安全性設計(Constitutional AI の応用)

システムプロンプトに安全性ルールを組み込む際の設計パターンとして、Anthropic の Constitutional AI の原則を応用する手法があります。

  • 明示的禁止: 具体的な禁止行動を列挙(「個人情報を生成しない」「医療診断を行わない」)
  • 階層的優先順位: 安全性ルール > ユーザー指示 > デフォルト動作の優先順位を明記
  • 拒否テンプレート: 禁止事項に抵触した場合の定型応答を定義
  • プロンプトインジェクション対策: ユーザー入力をデータとして扱い、指示として解釈しないよう制御

評価と反復改善

システムプロンプトの品質は定量的に評価可能です。代表的な評価指標として、指示遵守率(Instruction Following Rate)、出力フォーマット一致率、安全性違反率、タスク成功率が使われます。

Anthropic の Prompt Playground、OpenAI の Evals、LangSmith のプロンプトバージョニングなど、A/Bテストと回帰テストを支援するツールが充実しています。

FAQ

Q: システムプロンプトの最適な長さはどの程度ですか?

A: 500〜2,000トークンが実用的な範囲です。長すぎるとモデルが指示の優先順位を見失い、短すぎると制約が不十分になります。重要な制約を冒頭に配置し、補足情報を後半に配置する「逆ピラミッド構造」が効果的です。

Q: システムプロンプトはモデルごとに書き分ける必要がありますか?

A: はい。Claude は XML タグ、GPT-4o はマークダウン形式が効果的など、モデルごとに最適な構造が異なります。また、モデルの安全性フィルターの厳しさも異なるため、ガードレールの粒度を調整する必要があります。

Q: システムプロンプトのバージョン管理はどうすべきですか?

A: Git でバージョン管理し、変更ごとに評価スイートを実行する CI/CD パイプラインの構築が推奨されます。LangSmith や Braintrust などのプラットフォームはプロンプトのバージョニングと回帰テストを統合的に管理できます。