Model Armor テンプレートの作成と管理

このページでは、Model Armor テンプレートを作成、表示、更新、削除する方法について説明します。

Model Armor テンプレートを作成する

コンソール

  1. Google Cloud コンソールで、[Model Armor] ページに移動します。

    [Model Armor] に移動

  2. Model Armor を有効にしたプロジェクトが表示されていることを確認します。

  3. [Model Armor ] ページで、[テンプレートを作成] をクリックします。[テンプレートの作成] ページが表示されます。

  4. テンプレート ID を指定します。テンプレート ID には、英字、数字、ハイフンを使用できます。63 文字以内で指定してください。スペースを含めたり、先頭をハイフンにしたりすることはできません。

  5. Model Armor テンプレートを実行するリージョンを選択します。リージョンは後で変更できません。

  6. 省略可: ラベルを追加します。ラベルは、関連するテンプレートをグループ化するために使用できる Key-Value ペアです。

  7. [検出] セクションで、次の検出設定を構成します。

    • 悪意のある URL の検出: ユーザーやシステムに害を及ぼすように設計されたウェブアドレス(URL)を特定します。これらの URL は、フィッシング サイト、マルウェアのダウンロード、その他のサイバー攻撃につながる可能性があります。詳細については、悪意のある URL の検出をご覧ください。

    • プロンプト インジェクションとジェイルブレイクの検出: プロンプト内の悪意のあるコンテンツとジェイルブレイクの試行を検出します。より厳格に適用するには、信頼度を低以上**に設定して、プロンプト インジェクションやジェイルブレイクの可能性が高いコンテンツのほとんどを検出できるようにします。詳細については、プロンプト インジェクションとジェイルブレイクの検出をご覧ください。

    • Sensitive Data Protection: 機密データを検出し、プロンプト インジェクションなどの攻撃で露出しないようにします。詳細については、Sensitive Data Protection をご覧ください。

      基本または高度な Sensitive Data Protection を設定できます。

      • 基本 - 事前定義された infoTypes を使用して、機密データの種類を検出します事前定義された infoType の詳細については、基本的な Sensitive Data Protection の構成をご覧ください。

      • 高度 - Sensitive Data Protection サービスで定義された検査テンプレートを機密データの infoTypes の単一ソースとして使用します。

        高度な Sensitive Data Protection を選択する場合は、次のパラメータを指定する必要があります。

        • 検査テンプレート: 検査スキャンジョブの構成情報(使用する定義済み検出機能またはカスタム検出機能など)を保存するためのテンプレート。テンプレート名を projects/projectName/locations/locationID/inspectTemplates/templateName の形式で入力します。

        • 省略可: 匿名化テンプレート: 匿名化ジョブの構成情報(infoType の変換と構造化データセットの変換の両方を含む)を保存するためのテンプレート。匿名化テンプレートの ID を projects/projectName/locations/locationID/deidentifyTemplates/templateName の形式で入力します。

          Sensitive Data Protection に検査テンプレート匿名化テンプレートが存在することを確認します。テンプレートが別のプロジェクトにある場合は、Model Armor サービス エージェントに、そのプロジェクトの DLP ユーザーロールroles/dlp.user)と DLP 読み取りロールroles/dlp.reader)を付与する必要があります。

  8. [責任ある AI] セクションで、コンテンツ フィルタごとに信頼度を設定できます。信頼度は、検出結果がコンテンツ フィルタ タイプと一致する可能性を表します。指定できる値は次のとおりです。

    • なし: コンテンツ タイプを検出しません。
    • 低以上: 信頼度が低、中、高のコンテンツを検出します。
    • 中以上: 信頼度が中または高のコンテンツを検出します。
    • : 信頼度が高のコンテンツを検出します

    より厳格な適用を行うには、信頼度を「低以上」に設定して、コンテンツ フィルタ タイプに該当するほとんどのコンテンツを検出できるようにします。すべてのコンテンツ タイプの信頼度を一度に選択することもできます。

  9. [作成] をクリックします。

gcloud

次のコマンドを実行します。

gcloud model-armor templates create TEMPLATE_ID --location LOCATION

次のように置き換えます。

  • LOCATION は、テンプレートのロケーションです。
  • TEMPLATE_ID はテンプレートの ID です。

すべてのフィルタを使用した例を次に示します。

 gcloud model-armor templates create --location LOCATION TEMPLATE_ID 
--rai-settings-filters='[{ "filterType": "HATE_SPEECH", "confidenceLevel": "MEDIUM_AND_ABOVE" },{ "filterType": "HARASSMENT", "confidenceLevel": "MEDIUM_AND_ABOVE" },{ "filterType": "SEXUALLY_EXPLICIT", "confidenceLevel": "MEDIUM_AND_ABOVE" }]'
--basic-config-filter-enforcement=enabled
--pi-and-jailbreak-filter-settings-enforcement=enabled
--pi-and-jailbreak-filter-settings-confidence-level=LOW_AND_ABOVE
--malicious-uri-filter-settings-enforcement=enabled
--template-metadata-custom-llm-response-safety-error-code=798
--template-metadata-custom-llm-response-safety-error-message="test template llm response evaluation failed"
--template-metadata-custom-prompt-safety-error-code=799
--template-metadata-custom-prompt-safety-error-message="test template prompt evaluation failed"
--template-metadata-ignore-partial-invocation-failures
--template-metadata-log-operations
--template-metadata-log-sanitize-operations

REST

このコマンドを使用して、新しい Model Armor テンプレートを作成します。

  curl -X POST \
    -d "{'FILTER_CONFIG': {} }" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates?template_id=TEMPLATE_ID"

次のように置き換えます。

  • FILTER_CONFIG は、テンプレートのフィルタ構成です。
  • PROJECT_ID は、テンプレートが属するプロジェクトの ID です。
  • TEMPLATE_ID は、作成するテンプレートの ID です。
  • LOCATION は、テンプレートのロケーションです。

このトークンを取得するには、こちらの手順に沿って操作します。

次の例は、Model Armor テンプレートの構成を示しています。

  1. Model Armor テンプレートでスクリーニングするフィルタと、該当する場合は信頼度の構成(この場合は FILTER_CONFIG)を作成します。
  2. 作成した構成を使用して、Model Armor テンプレート(この場合は ma-template-id-1234)を作成します。

LOW_AND_ABOVE は、LOW、MEDIUM、HIGH のいずれかの可能性を持つコンテンツがフラグ付けされることを意味します。

  export FILTER_CONFIG='{
   "filterConfig": {
    "raiSettings": {
     "raiFilters": [{
       "filterType": "HATE_SPEECH",
       "confidenceLevel": "MEDIUM_AND_ABOVE"
      }, {
      "filterType": "HARASSMENT",
      "confidenceLevel": "HIGH"
    }, {
      "filterType": "DANGEROUS",
      "confidenceLevel": "MEDIUM_AND_ABOVE"
    },{
      "filterType": "SEXUALLY_EXPLICIT",
      "confidenceLevel": "MEDIUM_AND_ABOVE"
    }]
  },

  "piAndJailbreakFilterSettings": {
    "filterEnforcement": "ENABLED",
    "confidenceLevel": "LOW_AND_ABOVE"
  },
  "maliciousUriFilterSettings": {
    "filterEnforcement": "ENABLED"
  }
 }
}'

curl -X POST \
 -d  $FILTER_CONFIG \
 -H "Content-Type: application/json" \
 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/templates?template_id=TEMPLATE_ID"

多言語検出が有効になっている Model Armor テンプレートを作成するには、コマンドで TEMPLATE_CONFIG パラメータを渡す必要があります。このパラメータは、言語検出設定の構成を定義します。

このコマンドを使用して、多言語検出が有効になっている新しい Model Armor テンプレートを作成します。

curl -X POST \
    -d "{'TEMPLATE_CONFIG': {} }" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates?template_id=TEMPLATE_ID"

次の例は、多言語検出が有効になっている Model Armor テンプレート構成を示しています。

  export TEMPLATE_CONFIG='{
   "filterConfig": {
    "raiSettings": {
     "raiFilters": [{
       "filterType": "HATE_SPEECH",
       "confidenceLevel": "MEDIUM_AND_ABOVE"
      }, {
      "filterType": "HARASSMENT",
      "confidenceLevel": "HIGH"
    }, {
      "filterType": "DANGEROUS",
      "confidenceLevel": "MEDIUM_AND_ABOVE"
    },{
      "filterType": "SEXUALLY_EXPLICIT",
      "confidenceLevel": "MEDIUM_AND_ABOVE"
    }]
  },

  "piAndJailbreakFilterSettings": {
    "filterEnforcement": "ENABLED",
    "confidenceLevel": "LOW_AND_ABOVE"
  },
  "maliciousUriFilterSettings": {
    "filterEnforcement": "ENABLED"
  }
 },
 "templateMetadata": {
    "multiLanguageDetection": {
      "enableMultiLanguageDetection": true
    }
  }
}'

curl -X POST \
 -d  $TEMPLATE_CONFIG  \
 -H "Content-Type: application/json" \
 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/templates?template_id=TEMPLATE_ID"

Python

このコマンドを実行するには、まず Python で Model Armor クライアントを初期化します。

  request = modelarmor_v1.CreateTemplateRequest(
    parent="projects/PROJECT_ID/locations/LOCATION",
    template_id="TEMPLATE_ID",
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID",
      "filter_config": FILTER_CONFIG
    }
  )
  response = client.create_template(request=request)
 

次のように置き換えます。

  • FILTER_CONFIG は、テンプレートのフィルタ構成です。
  • PROJECT_ID は、テンプレートが属するプロジェクトの ID です。
  • TEMPLATE_ID は、作成するテンプレートの ID です。
  • LOCATION は、テンプレートのロケーションです。

テンプレートで包括的なロギングを有効にするには、Model Armor の監査とプラットフォームのロギングをご覧ください。

Model Armor テンプレートを表示する

コンソール

  1. Google Cloud コンソールで、[Model Armor] ページに移動します。

    [Model Armor] に移動

  2. Model Armor を有効にしたプロジェクトが表示されていることを確認します。[Model Armor] ページが表示され、プロジェクト用に作成されたテンプレートが一覧表示されます。

  3. リストからテンプレートをクリックすると、その詳細が表示されます。

gcloud

次のコマンドを実行します。

gcloud model-armor templates describe TEMPLATE_ID --location LOCATION

次のように置き換えます。

  • LOCATION は、テンプレートのロケーションです。
  • TEMPLATE_ID はテンプレートの ID です。

REST

次のコマンドを実行します。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://modelarmor.LOCATION_ID.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID"

次のように置き換えます。

  • PROJECT_ID は、テンプレートが属するプロジェクトの ID です。
  • TEMPLATE_ID は、表示するテンプレートの ID です。
  • LOCATION は、テンプレートのロケーションです。

Python

このコマンドを実行するには、まず Python で Model Armor クライアントを初期化します。

  request = modelarmor_v1.GetTemplateRequest(
    name="projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID",
    )
  response = client.get_template(request=request)
 

次のように置き換えます。

  • PROJECT_ID は、テンプレートが属するプロジェクトの ID です。
  • TEMPLATE_ID は、表示するテンプレートの ID です。
  • LOCATION は、テンプレートのロケーションです。

Model Armor テンプレートを更新する

コンソール

  1. Google Cloud コンソールで、[Model Armor] ページに移動します。

    [Model Armor] に移動

  2. Model Armor を有効にしたプロジェクトが表示されていることを確認します。[Model Armor] ページが開き、組織用に作成されたテンプレートが一覧表示されます。

  3. リストから、更新するテンプレートをクリックします。[テンプレートの詳細] ページが表示されます。

  4. [編集] をクリックします。

  5. 必要なパラメータを入力し、[保存] をクリックします。

gcloud

次のコマンドを実行します。

gcloud model-armor templates update TEMPLATE_ID --location LOCATION

次のように置き換えます。

  • LOCATION は、テンプレートのロケーションです。
  • TEMPLATE_ID はテンプレートの ID です。

REST

次のコマンドを実行します。

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d $FILTER_CONFIG \
  "https://modelarmor.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID?update_mask=FILTER_CONFIG"

次のように置き換えます。

  • PROJECT_ID は、テンプレートが属するプロジェクトの ID です。
  • LOCATION は、テンプレートのロケーションです。
  • TEMPLATE_ID はテンプレートの ID です。
  • FILTER_CONFIG は、フィルタ構成の JSON 表現です。

他のフィールドはすべて変更できません。他のフィールドを更新しようとすると(テンプレート名を更新しようとするなど)、エラーが発生します。

Python

このコマンドを実行するには、まず Python で Model Armor クライアントを初期化します。

  request = modelarmor_v1.UpdateTemplateRequest(
    template={
      "name": "projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID",
      "filter_config": FILTER_CONFIG
    }
  )
  response = client.update_template(request=request)
 

次のように置き換えます。

  • FILTER_CONFIG は、テンプレートのフィルタ構成です。
  • PROJECT_ID は、テンプレートが属するプロジェクトの ID です。
  • TEMPLATE_ID は、更新するテンプレートの ID です。
  • LOCATION は、テンプレートのロケーションです。

Model Armor テンプレートを削除する

コンソール

  1. Google Cloud コンソールで、[Model Armor] ページに移動します。

    [Model Armor] に移動

  2. Model Armor を有効にしたプロジェクトが表示されていることを確認します。[Model Armor] ページが開き、組織用に作成されたテンプレートが一覧表示されます。

  3. リストから、削除するテンプレートをクリックします。[テンプレートの詳細] ページが表示されます。

  4. [削除] をクリックします。確認ダイアログが表示されます。

  5. 削除を確定するには、テンプレート名を入力して [削除] をクリックします。

gcloud

次のコマンドを実行します。

gcloud model-armor templates delete TEMPLATE_ID --location LOCATION

次のように置き換えます。

  • LOCATION は、テンプレートのロケーションです。
  • TEMPLATE_ID はテンプレートの ID です。

REST

次のコマンドを実行します。

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)"  \
  "https://modelarmor.LOCATION_ID.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID"

次のように置き換えます。

  • PROJECT_ID は、テンプレートが属するプロジェクトの ID です。
  • LOCATION は、テンプレートのロケーションです。
  • TEMPLATE_ID はテンプレートの ID です。

Python

このコマンドを実行するには、まず Python で Model Armor クライアントを初期化します。

  request = modelarmor_v1.DeleteTemplateRequest(
    name="projects/PROJECT_ID/locations/LOCATION/templates/TEMPLATE_ID",
  )
  response = client.delete_template(request=request)
 

次のように置き換えます。

  • PROJECT_ID は、テンプレートが属するプロジェクトの ID です。
  • TEMPLATE_ID は、削除するテンプレートの ID です。
  • LOCATION は、テンプレートのロケーションです。

テンプレート メタデータ

Model Armor テンプレートのメタデータは、安全性とセキュリティのチェック処理、エラー処理、ロギング動作など、Model Armor の動作を構成する際に役立ちます。

Model Armor のテンプレート メタデータには次のフィールドが含まれます。

メタデータ タイプ 説明
multi_language_detection ブール値 多言語検出を有効にします。
enforcement_type 列挙型

適用タイプを定義します。次の値のいずれかを使用できます。

  • INSPECT_ONLY: 構成された設定に違反するリクエストを検査しますが、ブロックはしません。
  • INSPECT_AND_BLOCK: 構成された設定に違反するリクエストをブロックします。
log_template_operations ブール値 テンプレート オペレーションのロギングを有効にします。
log_sanitize_operations ブール値 サニタイズ オペレーションのロギングを有効にします。

次のステップ