次の方法で共有


Docker を使用してコンテンツ安全性コンテナーをインストールして実行する (プレビュー)

コンテナーを使用して、独自の環境で Azure AI Content Safety 機能のサブセットを使用できます。 この記事では、コンテンツ安全性コンテナーをダウンロード、インストール、実行する方法について説明します。

Note

切断されたコンテナーの価格レベルとコミットメント レベルは、標準コンテナーとは異なります。 詳細については、「コンテンツ安全性サービスの価格」を参照してください。

前提条件

コンテンツ安全性コンテナーを使用する前に、次の前提条件を満たす必要があります。 Azure サブスクリプションをお持ちでない場合は、始める前に無料アカウントを作成してください。 必要なもの:

  • ホスト コンピューターに Docker がインストールされていること。 コンテナーが Azure に接続して課金データを送信できるように、Docker を構成する必要があります。
    • Windows では、Linux コンテナーをサポートするように Docker を構成することも必要です。
    • Docker の概念に関する基本的な知識が必要です。
  • Standard (S) 価格レベルコンテンツ安全性サービス リソース

課金引数

コンテンツ安全性コンテナーは、計測のために Azure に接続されていないと、実行のライセンスが許可されません。 お客様は、常に計測サービスと課金情報をやり取りするようにコンテナーを構成する必要があります。

すべての Azure AI コンテナーに対して 3 つの主要なパラメーターが必須です。 Microsoft ソフトウェア ライセンス条項について、値 accept が示される必要があります。 エンドポイント URI と API キーも必要です。

コンテナーへのクエリは、 ApiKeyパラメーターに使用される Azure リソースの価格レベルで課金 されます。

docker run コマンドは、次の 3 つのオプションのすべてで有効な値が指定されると、コンテナーを起動します。

オプション 説明
ApiKey 課金情報を追跡するために使用されるコンテンツ安全性リソースの API キー。
ApiKey の値はコンテナーを起動するために使用され、Azure portal の、対応するコンテンツ安全性リソースの [キー] ページで入手できます。 [キー] ページに移動し、[クリップボードにコピー] アイコンを選択します。
Billing 課金情報を追跡するために使用されるコンテンツ安全性リソースのエンドポイント。
エンドポイントは、Azure portal の、対応するコンテンツ安全性リソースの [概要] ページで入手できます。 [概要] ページに移動し、エンドポイントの上にマウス ポインターを合わせると、[クリップボードにコピー] アイコンが表示されます。 必要に応じて、エンドポイントをコピーして使用します。
Eula お客様がコンテナーのライセンスに同意したことを示します。
このオプションの値は accept に設定する必要があります。

重要

これらのサブスクリプション キーは、Azure AI サービス API にアクセスするために使用されます。 キーを共有しないでください。 安全に保管してください。 たとえば、Azure Key Vault を使用します。 また、これらのキーを定期的に再生成することをお勧めします。 API 呼び出しを行うために必要なキーは 1 つだけです。 最初のキーを再生成するときに、2 番目のキーを使用してサービスに継続的にアクセスすることができます。

コンテナーには、実行する課金引数の値が必要です。 これらの値により、コンテナーは課金エンドポイントに接続することができます。 コンテナーは、約 10 から 15 分ごとに使用状況を報告します。 許可された時間枠内でコンテナーが Azure に接続しなかった場合、コンテナーは引き続き実行されますが、課金エンドポイントが復元されるまでクエリには対応しません。 接続は、10 ~15 分の同じ時間間隔で、10 回試行されます。 10 回以内に課金エンドポイントに接続できなかった場合、コンテナーによる要求の処理は停止されます。 課金のために Microsoft に送信される情報の例については、Azure Cognitive Services ドキュメントの Azure AI サービス コンテナーに関する FAQ を参照してください。

ホスト コンピューターの要件と推奨事項

ホストとは、Docker コンテナーを実行する x64 ベースのコンピューターのことです。 お客様のオンプレミス上のコンピューターを使用できるほか、Azure 内の Docker ホスティング サービスを使用することもできます。

次の表で、コンテンツ安全性コンテナーの最小仕様と推奨仕様を説明します。 テキスト コンテナーとイメージ コンテナーの両方に適用されます。

CPU コアの推奨数 推奨されるメモリ メモ
4 16 GB NVIDIA CUDA が必要です。

コンテンツ安全性コンテナーでは、最適なパフォーマンスを得るために NVIDIA CUDA が必要です。 コンテナーは CUDA 11.8 および CUDA 12.6 でテストされています。

これらのコンテナーの最小 GPU 要件は NVIDIA の T4 ですが、最適なパフォーマンスを得るために A100 を使用することをお勧めします。

次の表は、NVIDIA の T4 および A100 GPU を使用して単一ノードの GPU 構成でコンテナーをテストしたときに取得された 1 秒あたりの要求数 (RPS) と待機時間のメトリックを示しています。

同じ GPU でも、GPU の負荷と環境固有の構成に基づいてパフォーマンスが変動する可能性があります。 提供するベンチマーク データは、環境内でコンテンツ安全性コンテナーのデプロイを検討する際の参照ポイントとして使用する必要があります。 最も正確な評価を行うために、固有の環境内でテストを実施することをお勧めします。

GPU 最大 RPS 平均待機時間 (最大 RPS)
T4 130 50.4 ms
A100 360 8.7

NVIDIA コンテナー ツールキットをインストールする

hostとは、Docker コンテナーを実行するコンピューターのことです。 ホストは、NVIDIA コンテナー ツールキットをサポートする必要があります。 次のガイダンスに従って、環境内にツールキットをインストールしてください。

NVIDIA コンテナー ツールキットをインストールする

コンテナーを実行する

コンテナーを実行するには、docker run コマンドを使用します。 コンテナーは一度実行すると、お客様が停止するまで動作し続けます。

docker run コマンドについての次のベスト プラクティスに注意してください。

  • 行連結文字: 以降のセクションの Docker コマンドには、行連結文字としてバック スラッシュ (\) が使用されています。 ホスト オペレーティング システムの要件に基づいて、この文字を置換または削除してください。
  • 引数の順序: Docker コンテナーについて知識がある場合を除き、引数の順序は変更しないでください。

docker images コマンドを使用して、ダウンロードしたコンテナー イメージを一覧表示できます。 次のコマンドでは、ダウンロードした各コンテナー イメージの ID、リポジトリ、およびタグが表として書式設定されて表示されます。

docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

次が結果の例です。

IMAGE ID         REPOSITORY                TAG
<image-id>       <repository-path/name>    <tag-name>

コンテナーが実行されていることを検証する

コンテナーが実行されていることを検証する方法は複数あります。 問題になっているコンテナーの外部 IP アドレスと公開ポートを特定し、優先する Web ブラウザーを開きます。 次の各種の要求 URL を使用して、コンテナーが実行中であることを確認します。

ここに示す要求例の URL は http://localhost:5000 ですが、実際のコンテナーは異なる可能性があります。 使用するコンテナーの外部 IP アドレスと公開ポートを基にしてください。

要求 URL 目的
http://localhost:5000/ready GET で要求することで、この URL により、コンテナーがモデルに対するクエリを受け取る準備ができていることを確認できます。 この要求は Kubernetes の liveness probe と readiness probe に対して使用できます。
http://localhost:5000/status これも GET で要求することで、この URL により、コンテナーを起動するために使用された API キーが有効であるかどうかを、エンドポイント クエリを発生させずに確認できます。 この要求は Kubernetes の liveness probe と readiness probe に対して使用できます。
http://localhost:5000/api-docs/index.html コンテナーには、エンドポイントの完全なドキュメント一式と、 [Try it out](試してみる) の機能が用意されています。 この機能を使用すると、コードを一切記述することなく、お客様の設定を Web ベースの HTML フォームに入力したりクエリを実行したりできます。 クエリから戻った後、HTTP ヘッダーと HTTP 本文の必要な形式を示すサンプル CURL コマンドが得られます。

コンテナーの停止

コンテナーをシャットダウンするには、コンテナーが実行されているコマンドライン環境で、Ctrl + C キーを押します。

同じホスト上で複数のコンテナーを実行する

公開されているポートを使って複数のコンテナーを実行する予定の場合、必ず各コンテナーを別の公開されているポートで実行してください。 たとえば、最初のコンテナーをポート 5000 上で、2 番目のコンテナーを 5001 上で実行します。

このコンテナーと、別の Azure AI コンテナーをホスト上で同時に実行することができます。 同じ Azure AI コンテナーの複数のインスタンスを実行することもできます。

ホスト URL

注意

複数のコンテナーを実行している場合は、一意のポート番号を使用します。

Protocol ホスト URL
WS ws://localhost:5000
HTTP http://localhost:5000

WSS プロトコルと HTTPS プロトコルの使用の詳細については、Azure AI サービス ドキュメントの コンテナーのセキュリティ に関する記事を参照してください。

トラブルシューティング

コンテナーを起動または実行したときに問題が発生することがあります。 出力マウントを使用し、ログ記録を有効にします。 こうすることにより、問題をトラブルシューティングするときに役立つログ ファイルをコンテナーで生成できます。

ヒント

トラブルシューティング情報とガイダンスの詳細については、Azure AI サービス ドキュメントの Azure AI コンテナーについてのよくあるご質問 (FAQ) に関する記事を参照してください。

Logging の設定

コンテンツ安全性コンテナーには、ASP.NET Core のログ記録のサポートが付属しています。 コンソールへの既定のログ記録で開始された neural-text-to-content safety container の例を次に示します。

docker run --rm -it -p 5000:5000 --memory 12g --cpus 6 \
mcr.microsoft.com/azure-cognitive-services/content safetyservices/neural-text-to-content safety \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY} \
Logging:Console:LogLevel:Default=Information

ログの詳細については、Azure AI サービス ドキュメントの「使用状況レコード」を参照してください。

Microsoft 診断コンテナー

Azure AI サービス コンテナーの実行で問題が発生している場合は、Microsoft 診断コンテナーを使用してみることができます。 このコンテナーを使用して、Azure AI コンテナーが想定どおりに機能しなくなる可能性がある、展開環境での一般的なエラーを診断します。

コンテナーを取得するには、次の docker pull コマンドを使用します。

docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic

その後で、コンテナーを実行します。 {ENDPOINT_URI} をエンドポイントに置き換え、{API_KEY} をリソースへのキーに置き換えます。

docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

課金エンドポイントへのネットワーク接続がコンテナーでテストされます。

切断されたコンテナーを実行する

切断された (インターネットに接続されていない) コンテナーを実行するには、こちらの要求フォームを送信し、承認を待つ必要があります。 切断された環境でコンテナーを使用するためのコミットメント プランの申請と購入の詳細については、Azure AI サービス ドキュメントの「切断された環境での Docker コンテナーの使用」を参照してください。

次のステップ