このドキュメントでは、Gemini Enterprise で Model Armor を有効にする方法について説明します。Model Armor は、Gemini Enterprise アシスタントから提供されるプロンプトとレスポンスを事前にスクリーニングすることで、AI アプリケーションのセキュリティと安全性を強化する Google Cloud サービスです。これにより、さまざまなリスクから保護し、責任ある AI の実践を確保できます。Model Armor は、すべての Gemini Enterprise エディションで追加費用なしでサポートされています。
ユーザーのクエリや Gemini Enterprise アシスタントからのレスポンスで発生する可能性のある問題に対する Model Armor のレスポンスは、テンプレートの適用タイプによって制御されます。詳細については、適用タイプを定義するをご覧ください。
適用タイプが [検査してブロック] の場合、Gemini Enterprise はリクエストをブロックし、エラー メッセージを表示します。これは、コンソールを使用して Model Armor テンプレートを作成する場合のデフォルトの適用タイプです。
適用タイプが [検査のみ] の場合、Gemini Enterprise はリクエストやレスポンスをブロックしません。
Model Armor スクリーニング サービスが利用できない場合は、Gemini Enterprise が次のいずれかの動作をするように構成できます。
モード | 説明 |
---|---|
ユーザーの操作を許可 | このモードでは、Model Armor スクリーニング サービスが利用できない場合、Gemini Enterprise はリクエストとレスポンスを事前スクリーニングなしで通過させ、エンドユーザーとの継続的な通信を確保します。ただし、この方法では、スクリーニングされていないメッセージが公開されたり、スクリーニングされていないクエリに対する回答が提供されたりする可能性があります。 |
ユーザーの操作をすべてブロックする | このモードでは、Model Armor スクリーニング サービスが利用できない場合、Gemini Enterprise は正当なリクエストとレスポンスを含むすべてのリクエストとレスポンスをブロックします。 |
始める前に
自分と Gemini Enterprise サービス アカウントに必要なロールが割り当てられていることを確認します。
Gemini Enterprise で Model Armor を有効にするには、Discovery Engine 管理者(
roles/discoveryengine.admin
)ロールが必要です。Model Armor テンプレートを作成するには、Model Armor 管理者ロール(
roles/modelarmor.admin
)が必要です。Model Armor API を呼び出すには、Model Armor ユーザー ロール(
roles/modelarmor.user
)が必要です。
Gemini Enterprise アプリが作成されていることを確認します。作成するには、アプリを作成するをご覧ください。
Model Armor テンプレートを作成する
ユーザー プロンプトとアシスタントからのレスポンスに同じ Model Armor テンプレートを作成して使用することも、2 つの別々の Model Armor テンプレートを作成することもできます。詳細については、Model Armor テンプレートを作成するをご覧ください。
Gemini Enterprise アプリ用の Model Armor テンプレートを作成する場合は、次の構成を検討してください。
[リージョン] フィールドで [マルチリージョン] を選択します。次の表に、Model Armor テンプレートのリージョンを Gemini Enterprise アプリのリージョンにマッピングする方法を示します。
Gemini Enterprise アプリのマルチリージョン Model Armor マルチリージョン グローバル - us(米国の複数のリージョン)
- EU(EU の複数のリージョン)
us(米国の複数のリージョン) us(米国の複数のリージョン) EU(EU の複数のリージョン) EU(EU の複数のリージョン) Gemini Enterprise アプリの Model Armor テンプレートでクラウド ロギングを構成することはおすすめしません。この構成では、プライベート ログ閲覧者(
roles/logging.privateLogViewer
)の IAM ロールを持つユーザーに機密データが公開される可能性があります。代わりに、次のオプションを検討してください。Model Armor テンプレートを通過するデータをロギングする必要がある場合は、より厳格なアクセス制御を提供する BigQuery などの安全なストレージにログを転送できます。詳細については、サポートされている宛先にログをルーティングするをご覧ください。
データアクセス監査ログを構成して、Model Armor によって生成されたリクエストとレスポンスのスクリーニング判定を分析してレポートできます。詳細については、監査ログを構成するをご覧ください。
Model Armor テンプレートを使用して Gemini Enterprise アプリを構成する
次の手順では、Model Armor テンプレートを Gemini Enterprise アプリに追加する方法について説明します。
コンソール
Google Cloud コンソールで、[Gemini Enterprise] ページに移動します。
設定するアプリの名前をクリックします。
[構成] > [アシスタント] をクリックします。
Model Armor を有効にするには、[Model Armor を有効にする] をクリックします。
ユーザー プロンプト用の Model Armor テンプレートとレスポンス出力用の Model Armor テンプレートには、作成した Model Armor テンプレートのリソース名を入力します。
Model Armor の処理が失敗した場合にユーザー インタラクションをブロックするには、[Model Armor の処理が失敗した場合にユーザー インタラクションを許可する] 切り替えボタンをオフにします。詳細については、Model Armor が使用できない場合に Gemini Enterprise でサポートされる 2 つのモードをご覧ください。
[保存して公開] をクリックします。
REST
Model Armor テンプレートを Gemini Enterprise アプリに追加するには、次のコマンドを実行します。
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: PROJECT_ID" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant?update_mask=customerPolicy" \
-d '{
"customerPolicy": {
"modelArmorConfig": {
"userPromptTemplate": "QUERY_PROMPT_TEMPLATE",
"responseTemplate": "RESPONSE_PROMPT_TEMPLATE",
"failureMode": "FAIL_MODE"
}
}
}'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。ENDPOINT_LOCATION
: API リクエストのマルチリージョン。次のいずれかの値を割り当てます。- 米国のマルチリージョンの
us-
- EU マルチリージョンの場合:
eu-
- グローバル ロケーションの場合は
global-
- 米国のマルチリージョンの
LOCATION
: データストアのマルチリージョン(global
、us
、eu
)APP_ID
: 構成するアプリの ID。QUERY_PROMPT_TEMPLATE
: 作成した Model Armor テンプレートのリソース名。
リソース名を取得するには、Model Armor テンプレートを表示するの手順に沿って、リソース名の値をコピーします。RESPONSE_PROMPT_TEMPLATE
: 作成した Model Armor テンプレートのリソース名。FAIL_MODE
: Model Armor が使用できない場合のオペレーション モード(FAIL_CLOSED
またはFAIL_OPEN
)。FAIL_MODE
が定義されていない場合、FAIL_CLOSE
はデフォルト モードです。このモードでは、Model Armor の処理が失敗すると、Gemini Enterprise アシスタントとのすべてのやり取りがブロックされます。詳細については、Model Armor が使用できない場合に Gemini Enterprise でサポートされる 2 つのモードをご覧ください。
Model Armor テンプレートが有効になっているかどうかをテストする
Model Armor テンプレートを構成したら、Model Armor フィルタで設定された信頼度レベルに従って、Gemini Enterprise アプリが Gemini Enterprise アシスタントからのユーザー プロンプトとレスポンスを事前にスクリーニングしてブロックするかどうかをテストします。
Model Armor テンプレートがポリシーに違反するリクエストを検査してブロックするように構成されている場合、次のポリシー違反メッセージが表示されます。
コンソール
たとえば、次のようなポリシー違反のメッセージが表示されます。
REST
次の情報を含む JSON レスポンス。
answer.state = SKIPPED
answer.assist_skipped_reasons: [CUSTOMER_POLICY_VIOLATION]
Gemini Enterprise アプリから Model Armor テンプレートを削除する
Gemini Enterprise アプリから Model Armor テンプレートを削除するには、Google Cloud コンソールまたは REST API を使用します。
コンソール
Gemini Enterprise アプリから Model Armor テンプレートを削除する手順は次のとおりです。
Google Cloud コンソールで、[Gemini Enterprise] ページに移動します。
設定するアプリの名前をクリックします。
[構成] > [アシスタント] をクリックします。
Model Armor を無効にするには、[Model Armor を有効にする] をクリックしてオフにします。
[保存して公開] をクリックします。
REST
Gemini Enterprise アプリから Model Armor テンプレートを削除するには、次のコマンドを実行します。
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: PROJECT_ID" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant?update_mask=customerPolicy" \
-d '{
"customerPolicy": {
"modelArmorConfig": {
}
}
}'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。PROJECT_NUMBER
: Google Cloud プロジェクトの番号。ENDPOINT_LOCATION
: API リクエストのマルチリージョン。次のいずれかの値を割り当てます。- 米国のマルチリージョンの
us-
- EU マルチリージョンの場合:
eu-
- グローバル ロケーションの場合は
global-
- 米国のマルチリージョンの
LOCATION
: データストアのマルチリージョン(global
、us
、eu
)。APP_ID
: 構成するアプリの ID。
監査ログの構成
Model Armor はデータアクセス監査ログを書き込むことができます。このログを使用して、Model Armor によって生成されたリクエストとレスポンスのスクリーニング結果を分析し、レポートを作成できます。これらのログには、ユーザーのクエリや Gemini Enterprise アシスタントからのレスポンスは含まれていないため、レポートや分析に安全に使用できます。詳細については、Model Armor の監査ロギングをご覧ください。
これらのログにアクセスするには、プライベート ログ閲覧者(roles/logging.privateLogViewer
)の IAM ロールが必要です。
データアクセス監査ログを有効にする
データアクセス監査ログを有効にするには、次の操作を行います。
Google Cloud コンソールで、[IAM と管理] > [監査ログ] に移動します。
[Model Armor API] を選択します。
[権限タイプ] セクションで、[データ読み取り] 権限タイプを選択します。
[保存] をクリックします。
データアクセス監査ログを調べる
データアクセス監査ログを調べる手順は次のとおりです。
Google Cloud コンソールで、[ログ エクスプローラ] に移動します。
ログで次のメソッド名を検索します。
methodName: "google.cloud.modelarmor.v1.ModelArmor.SanitizeUserPrompt"
をクリックして、審査されたユーザー リクエストを表示します。google.cloud.modelarmor.v1.ModelArmor.SanitizeModelResponse
で、スクリーニングされた回答を表示します。
Model Armor を使用する際の考慮事項
Gemini Enterprise で Model Armor を使用する場合は、次の点を考慮してください。
トークン数 | Model Armor を使用する Gemini Enterprise アプリのトークン上限は、Model Armor で構成された特定のフィルタによって決まります。これらの上限の詳細については、Model Armor のドキュメントの該当するトークン上限をご覧ください。 |
---|---|
サービス レベル契約 | Gemini Enterprise にはサービスレベル契約が用意されています。Gemini Enterprise が Model Armor を使用するように構成されている場合、フェイル オープン モードとフェイル クローズ モードのどちらが使用されているかに関係なく、ブロックされたクエリは SLA 違反としてカウントされません。 |
コンプライアンス | Gemini Enterprise と Model Armor はどちらも、さまざまなコンプライアンス認証を提供しています。両方を組み合わせて使用する場合、有効なコンプライアンス認証は両方のプロダクトの共通サブセットになります。両方のプロダクトのコンプライアンス認証を確認し、規制要件を満たしていることを確認することをおすすめします。 |
ドキュメントの審査 | Model Armor テンプレートがユーザー リクエストをスクリーニングするように構成されている場合、リクエストに含まれるドキュメントがスクリーニングされます。審査は、リクエストにドキュメントを追加したときに行われます。ドキュメントが構成されたテンプレートのポリシーに違反している場合、ドキュメントは破棄され、リクエストに含まれません。サポートされているドキュメント タイプの一覧については、ドキュメントの審査をご覧ください。 |