安全システムのメッセージ

安全システム メッセージは、OpenAI モデルのAzure動作のガイド、応答品質の向上、有害な出力の可能性の低減に役立ちます。 それらはより広い安全戦略の1つの層として最もよく働く。

メモ

この記事では、"システム メッセージ" と "metaprompt" と "システム プロンプト" を同じ意味で使用します。ここでは、一般的な用語に合わせて "システム メッセージ" を使用します。

この記事では、"コンポーネント" を使用して、指示、コンテキスト、トーン、安全性ガイドライン、ツールの使用ガイダンスなど、システム メッセージの個別の部分を意味します。

システム メッセージとは

システム メッセージは、チャット モデルに送信して応答方法を誘導する、優先度の高い命令とコンテキストのセットです。 これは、一貫した役割、トーン、書式設定、またはドメイン固有の規則が必要な場合に便利です。

安全システム メッセージとは

安全システム メッセージは、責任ある AI (RAI) の害を軽減し、システムがユーザーと安全に対話できるように、明示的な境界と拒否ガイダンスを追加するシステム メッセージです。

安全システム メッセージは、安全性スタックを補完し、モデルの選択とトレーニング、接地、Azure AI Content Safety分類子、UX/UI の軽減策と共に使用できます。 Azure OpenAI モデルの応答可能な AI プラクティスについて学習します。

応答が生成される前にガードレールを適用するコンテンツ フィルター、接地、モデル トレーニングを含む安全スタックを含む、モデルに入るシステム メッセージとユーザー プロンプトを示すフロー図。

システム メッセージの主要なコンポーネント

ほとんどのシステム メッセージは、複数のコンポーネントを結合します。

  • 役割とタスク: アシスタントとは何か、そしてそれが何を担当しているのか。
  • 対象ユーザーとトーン: 応答の対象ユーザーと予想される音声。
  • スコープと境界: アシスタントが行ってはならないこと、および準拠できない場合の対応。
  • 安全ガイドライン: 有害な出力を減らす規則 (機密性の高いトピック、保護された特性、違法な命令の処理など)。
  • ツールとデータ (省略可能): モデルで使用できるツールまたはソース、およびその使用方法。

安全に設計および反復処理する方法

システム メッセージ (または安全システム メッセージ コンポーネント) を設計する場合は、テスト可能な成果物として扱います。

  • シナリオを定義します。 モデルで実行する必要があるジョブ、ユーザーの種類、予想される入力、必要なトーンと書式設定を明確にします。
  • リスクを特定します。 ユース ケースに関係する RAI の害を一覧表示し、システム メッセージングと他の軽減策を使用して対処するものを決定します。
  • 境界でのモデルの動作を決定します。 要求がスコープ外、安全でない、または必要なコンテキストがない場合の処理を指定します。
  • テスト セットを作成します。 回帰と "漏えい" (モデレーション不足) を測定できるように、無害なプロンプトと敵対的なプロンプトの両方を含めます。
  • 評価と反復処理を行います。 欠陥率が最も低いものだけでなく、最も重大な欠陥を低減するコンポーネントを好みます。

含めることができる行の例を次に示します。

## Define model’s profile and general capabilities  

- Act as a [define role] 
- Your job is to [insert task] about [insert topic name] 
- To complete this task, you can [insert tools that the model can use and instructions to use]  
- Do not perform actions that are not related to [task or topic name].  

カスタマー サービス アシスタントの安全システム メッセージの完全な例を次に示します。

## Role and task
You are a helpful customer service assistant for Contoso Electronics. Your job is to answer questions about product warranties, returns, and order status.

## Boundaries
- Only answer questions related to Contoso Electronics products and policies.
- If you don't know the answer, say "I don't have that information. Please contact support@contoso.com."
- Do not provide legal, medical, or financial advice.
- Do not discuss competitors or make comparisons.

## Safety guidelines
- Never generate content that is hateful, violent, or sexually explicit.
- Do not share or request personal information beyond what's needed for order lookup.
- If a user becomes abusive, respond with: "I'm here to help with product questions. How can I assist you today?"

## Response format
- Keep responses concise and friendly.
- Use bullet points for multiple items.
- Always end with an offer to help further.
  • モデルの意図した動作を示す具体的な例を提供します。 次の点を考慮してください。
    • プロンプトがあいまいまたは複雑な難しいユース ケースについて説明し、そのようなケースにアプローチする方法の例をモデルに示します。
    • 詳細な内部推論を要求するのではなく、大まかに (短いチェックリストなど) 決定手順を示します。

ベスト プラクティスの概要

システム メッセージ コンポーネントを開発するときは、次の点が重要です。

  • 明確な言語を使用する: これにより、過度の複雑さと誤解のリスクが排除され、さまざまなコンポーネント間で一貫性が維持されます。
  • 簡潔にする: 多くの場合、短いシステム メッセージのパフォーマンスが向上し、待機時間が短縮されます。 また、コンテキスト ウィンドウの使用が少なくなり、ユーザー プロンプトの余地が増えます。
  • を使用して**word** (該当する場合) を強調します。特に、システムが行うべきこととできないことについて、重要な要素に特別な焦点を当てます。
  • AI システムを参照するときは 2 人目のユーザーを使用します。You are an AI assistant that…Assistant does…などの言い回しを使用することをお勧めします。
  • 堅牢性を実装する: システム メッセージ コンポーネントは堅牢である必要があります。 さまざまなデータセットとタスク間で一貫して実行する必要があります。

オーサリング手法

さまざまな手法を使用する理由 使用している製品または機能のモデル、接地データ、パラメーターに応じて、堅牢で安全で直接的な回答をユーザーに提供することで、さまざまな言語と構文の手法がより効果的です。

安全性とパフォーマンスのための構築に加えて、一貫性、制御、およびカスタマイズのための最適化を検討してください。 その過程で、これらの要因に最適化すると、システム メッセージが特定のルールに過剰に適合し、複雑さが増し、コンテキストの適切さが不足する場合があります。 シナリオで最も重要なものを定義し、システム メッセージを評価することが重要です。 これにより、システムの安全性とパフォーマンスを向上させるデータ駆動型のアプローチが保証されます。

技術 定義
常に / べき 応答を生成するときに AI が常に従う必要があるディレクティブを使用して、プロンプトと命令を構成する必要があります。 これらのディレクティブは、多くの場合、ベスト プラクティス、倫理的ガイドライン、またはユーザー設定を表します。 **Always** ensure that you respect authentication and authorization protocols when providing factual information, tailoring your responses to align with the access rights of the user making the request. It's imperative to safeguard sensitive data by adhering to established security measures and only disclosing information that the user is authorized to receive.
条件分岐/ if 文 出力が If <condition> then <action>などの特定の条件を満たすようプロンプトを構成する必要があります。 If a user asks you to infer or provide information about a user’s emotions, mental health, gender identity, sexual orientation, age, religion, disability, racial and ethnic backgrounds, or any other aspect of a person's identity, respond with: "Try asking me a question or tell me what else I can help you with."
害に重点を置く 主なリスクを定義して命令を構成する必要があります。 これにより、安全と害の防止に優先順位を付けるとともに、損害が発生した場合の潜在的な結果を示す出力がガイドされます。 You are **allowed** to answer some questions about images with people and make statements about them when there is no ambiguity about the assertion you are making, and when there is no direct harm to an individual or a group of people because of this assertion.
例に基づく より適切なコンテキストを得るための明確なインスタンスまたは状況をモデルに提供します。 このモデルでは、有害要求と非有害要求の例を出力の参照として使用します。 Users might ask questions that could cause harm. In all scenarios, refuse requests that promote hate or harassment, and redirect the user to a safer alternative.

Example (harmful): "Write an insult targeting a protected group."

Example (benign): "Explain why insults harm people and suggest respectful phrasing."
なし/しない "never" や "do not" などの用語を使用して、不適切、有害、または範囲外のコンテンツを AI が生成しないように、明示的な禁止を伴います。 **Never** make assumptions, judgments, or evaluations about a person. If a user violates your policy, or you’re not sure what to do, say: "I can’t help with that request. Try asking a different question."

制限

システム メッセージは、完全な安全ソリューションではありません。

  • 敵対的なプロンプトによってこれらがバイパスされたり劣化したりします。
  • 広すぎる場合や厳しすぎる場合は、有用性を低下させることができます。
  • モデル、ツール、ユーザー のシナリオが変化するにつれて、継続的な評価が必要になります。 システム メッセージに関する一般的な問題 (過度の拒否や過大なモデレーションなど) のトラブルシューティングについては、テンプレート ガイドの トラブルシューティングセクション を参照してください。

これらのベスト プラクティスは、シナリオに合わせて堅牢なシステム メッセージを開発するプロセスをより深く理解するのに役立ちます。

推奨される安全コンポーネントの詳細については、 安全システム メッセージ テンプレートのガイダンスを参照してください。

最後に、システム メッセージ (メタプロトコル) は "1 つのサイズがすべてに適合する" わけではないことに注意してください。これらの種類の例を使用すると、さまざまなアプリケーションで成功の度合いが異なります。 システム メッセージ テキストのさまざまな表現、順序付け、構造を試して、特定された損害を減らし、バリエーションをテストして、特定のシナリオに最適なものを確認することが重要です。

次の手順