Anomaly Detector API 向けの Docker コンテナーをインストールし、実行する

重要

2023 年 9 月 20 日以降は、新しい Anomaly Detector リソースを作成できなくなります。 Anomaly Detector サービスは、2026 年 10 月 1 日に廃止されます。

Note

コンテナー イメージの場所が最近変更されました。 このコンテナーの更新された場所については、この記事をご覧ください。

コンテナーを使用すると、独自の環境で Anomaly Detector API を使用できます。 コンテナーは、特定のセキュリティ要件とデータ ガバナンス要件に適しています。 この記事では、Anomaly Detector コンテナーをダウンロード、インストール、実行する方法について説明します。

Anomaly Detector には、API をオンプレミスで使用するための 1 つの Docker コンテナーが用意されています。 このコンテナーを以下のために使用します。

  • データに対して Anomaly Detector アルゴリズムを使用する。
  • ストリーミング データを監視し、リアルタイムで発生した異常を検出する。
  • バッチとして設定されたデータ全体で異常を検出します。
  • データセット内の傾向変化点をバッチとして検出する。
  • 実際のデータに合うように異常検出アルゴリズムの感度を調整する。

API の詳細情報については、以下を参照してください。

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

前提条件

Anomaly Detector コンテナーを使用する前に、次の前提条件を満たす必要があります。

必須 目的
Docker エンジン ホスト コンピューターに Docker エンジンをインストールしておく必要があります。 Docker には、macOSWindowsLinux 上で Docker 環境の構成を行うパッケージが用意されています。 Docker やコンテナーの基礎に関する入門情報については、「Docker overview」(Docker の概要) を参照してください。

コンテナーが Azure に接続して課金データを送信できるように、Docker を構成する必要があります。

Windows では、Linux コンテナーをサポートするように Docker を構成することも必要です。

Docker に関する知識 レジストリ、リポジトリ、コンテナー、コンテナー イメージなど、Docker の概念の基本的な理解に加えて、基本的な docker コマンドの知識が必要です。
Anomaly Detector リソース これらのコンテナーを使用するためには、以下が必要です。

関連付けられている API キーとエンドポイント URI を取得するための Azure Anomaly Detector リソース。 どちらの値も、Azure portal の Anomaly Detector の概要ページとキー ページで使用でき、コンテナーを開始するために必要です。

{API_KEY} : [キー] ページにある 2 つの利用可能なリソース キーのどちらか

{ENDPOINT_URI} : [概要] ページに提示されているエンドポイント

必須パラメーターの収集

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

エンドポイント URL

{ENDPOINT_URI} の値は、Azure portal の対応する Azure AI サービス リソースの [概要] ページで入手できます。 [概要] ページに移動し、エンドポイントの上にマウス ポインターを合わせると、[クリップボードにコピー] アイコンが表示されます。 必要に応じて、エンドポイントをコピーして使用します。

後で使用するためのエンドポイント URI の収集を示すスクリーンショット。

キー

{API_KEY} の値はコンテナーを起動するために使用され、Azure portal で、対応する Azure AI サービス リソースの [キー] ページで入手できます。 [キー] ページに移動し、[クリップボードにコピー] アイコンを選択します。

後で使用するための 2 つのキーのいずれかの取得を示すスクリーンショット。

重要

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

ホスト コンピューター

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

コンテナーの要件と推奨事項

次の表に、Anomaly Detector コンテナーに割り当てる CPU コアとメモリの最小値と推奨値を示します。

QPS (秒間クエリ) 最小値 推奨
10 QPS 4 コア、1 GB メモリ 8 コア、2 GB メモリ
20 QPS 8 コア、2 GB メモリ 16 コア、4 GB メモリ

各コアは少なくとも 2.6 ギガヘルツ (GHz) 以上にする必要があります。

コアとメモリは、docker run コマンドの一部として使用される --cpus--memory の設定に対応します。

docker pull によるコンテナー イメージの取得

Anomaly Detector コンテナー イメージは mcr.microsoft.com コンテナー レジストリ シンジケートで見つけることができます。 azure-cognitive-services/decision リポジトリ内にあり、anomaly-detector という名前が付いています。 完全修飾コンテナー イメージ名は mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector です。

最新バージョンのコンテナーを使用するには、latest タグを使用できます。 また、MCR でイメージ タグの完全な一覧を確認することもできます。

docker pull コマンドを使用して、コンテナー イメージをダウンロードします。

コンテナー リポジトリ
cognitive-services-anomaly-detector mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector:latest

ヒント

docker pull を使用する場合、コンテナー レジストリ、リポジトリ、コンテナー イメージの名前と対応するタグの大文字/小文字の違いに注意してください。 バイナリ照合順序では大文字と小文字が区別されます。

ヒント

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

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

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

Anomaly Detector コンテナーの docker pull

docker pull mcr.microsoft.com/azure-cognitive-services/anomaly-detector:latest

コンテナーを使用する方法

コンテナーをホスト コンピューター上に用意できたら、次の手順を使用してコンテナーを操作します。

  1. 必要な課金設定を使用してコンテナーを実行します。 docker run コマンドの他のもご覧いただけます。
  2. コンテナーの予測エンドポイントに対するクエリを実行します

docker run によるコンテナーの実行

コンテナーを実行するには、docker run コマンドを使用します。 {ENDPOINT_URI}{API_KEY} の値を取得する方法の詳細については、「必須パラメーターの収集」を参照してください。

docker run コマンドのを利用できます。

docker run --rm -it -p 5000:5000 --memory 4g --cpus 1 \
mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector:latest \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

このコマンドは、次の操作を行います。

  • コンテナー イメージから Anomaly Detector コンテナーを実行します
  • 1 つの CPU コアと 4 ギガバイト (GB) のメモリを割り当てます
  • TCP ポート 5000 を公開し、コンテナーに pseudo-TTY を割り当てます
  • コンテナーの終了後にそれを自動的に削除します。 ホスト コンピューター上のコンテナー イメージは引き続き利用できます。

重要

コンテナーを実行するには、EulaBillingApiKey の各オプションを指定する必要があります。そうしないと、コンテナーが起動しません。 詳細については、「課金」を参照してください。

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

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

<container-registry> および <container-name> を、使用しているコンテナーの値に置き換えます。 これらを同一のコンテナーにする必要はありません。 HOST 上で実行している Anomaly Detector コンテナーと LUIS コンテナーを一緒に使用したり、複数の Anomaly Detector コンテナーを実行したりできます。

ホスト ポート 5000 で最初のコンテナーを実行します。

docker run --rm -it -p 5000:5000 --memory 4g --cpus 1 \
<container-registry>/microsoft/<container-name> \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

ホスト ポート 5001 で 2 つ目のコンテナーを実行します。

docker run --rm -it -p 5001:5000 --memory 4g --cpus 1 \
<container-registry>/microsoft/<container-name> \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

後続の各コンテナーは、別のポート上になっている必要があります。

コンテナーの予測エンドポイントに対するクエリの実行

コンテナーには、REST ベースのクエリ予測エンドポイント API が用意されています。

コンテナー API には、ホストの http://localhost:5000 を使用します。

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

コンテナーが実行されていることを検証する方法は複数あります。 問題になっているコンテナーの "外部 IP" アドレスと公開ポートを特定し、任意の Web ブラウザーを開きます。 次の各種の要求 URL を使用して、コンテナーが実行中であることを確認します。 ここに示す要求例の URL は http://localhost:5000 ですが、実際のコンテナーは異なる可能性があります。 使用するコンテナーの外部 IP アドレスと公開ポートを基にしてください。

要求 URL 目的
http://localhost:5000/ コンテナーには、ホーム ページが用意されています。
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/swagger コンテナーには、エンドポイントの完全なドキュメント一式と、 [Try it out](試してみる) の機能が用意されています。 この機能を使用すると、コードを一切記述することなく、お客様の設定を Web ベースの HTML フォームに入力したりクエリを実行したりできます。 クエリから戻った後、HTTP ヘッダーと HTTP 本文の必要な形式を示すサンプル CURL コマンドが得られます。

コンテナーのホーム ページ

コンテナーの停止

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

トラブルシューティング

出力マウントとログを有効にした状態でコンテナーを実行すると、コンテナーによってログ ファイルが生成されます。これらはコンテナーの起動時または実行時に発生した問題のトラブルシューティングに役立ちます。

ヒント

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

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}

コンテナーは、課金エンドポイントへのネットワーク接続をテストします。

課金

Anomaly Detector コンテナーは、Azure アカウントの Anomaly Detector リソースを使用して、Azure に課金情報を送信します。

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

Azure AI サービス コンテナーは、計測または課金エンドポイントに接続していないと、実行のライセンスが許可されません。 お客様は、コンテナーが常に課金エンドポイントに課金情報を伝えられるようにする必要があります。 Azure AI サービス コンテナーによって、お客様のデータ (解析対象の画像やテキストなど) が Microsoft に送信されることはありません。

Azure に接続する

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

課金引数

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

オプション 説明
ApiKey 課金情報を追跡するために使用される Azure AI サービス リソースの API キー。
このオプションの値には、Billing に指定されたプロビジョニング済みのリソースの API キーが設定されている必要があります。
Billing 課金情報を追跡するために使用される Azure AI サービス リソースのエンドポイント。
このオプションの値には、プロビジョニング済みの Azure リソースのエンドポイント URI が設定されている必要があります。
Eula お客様がコンテナーのライセンスに同意したことを示します。
このオプションの値は accept に設定する必要があります。

これらのオプションの詳細については、「コンテナーの構成」を参照してください。

まとめ

この記事では、Anomaly Detector コンテナーの概念とそのダウンロード、インストール、実行のワークフローについて説明しました。 要約すると:

  • Anomaly Detector には、Docker 用に 1 つの Linux コンテナーがあり、バッチ対ストリーミング、予想範囲推論、および感度調整を使用して異常検出をカプセル化します。
  • コンテナー イメージは、コンテナー専用のプライベート Azure Container Registry からダウンロードされます。
  • コンテナー イメージを Docker で実行します。
  • REST API または SDK のいずれかを使用して、コンテナーのホスト URI を指定することによって、Anomaly Detector コンテナーの操作を呼び出すことができます。
  • コンテナーをインスタンス化するときは、課金情報を指定する必要があります。

重要

Azure AI コンテナーは、計測のために Azure に接続していないと、実行のライセンスが許可されません。 お客様は、コンテナーが常に計測サービスに課金情報を伝えられるようにする必要があります。 Azure AI コンテナーでは、顧客データ (解析対象の時系列データなど) を Microsoft に送信することはありません。

次のステップ